@@ -108,29 +108,46 @@ Someone would think the server is rather simple when taking a look at the MeshCe
### Code files
```
- amtevents.js | Used to scan a local network for Intel AMT machines.
- amtscanner.js | Used to run Intel AMT scripts from MeshCommander.
- amtscript.js | Used to generate and perform certificate operations.
- certoperations.js | Various commonly used methods.
- common.js | Used to access the MongoDB or NeDB database.
- db.js | Used to modify windows executables.
- exeHandler.js | Used to insert credentials in an HTTP stream.
- interceptor.js | Used to obtain and use a Let’s Encrypt certificate.
- letsencrypt.js | Used to offload RSA sign to other CPU cores.
- meshaccelerator.js | Used to communicate to agents.
- meshagent.js | The is the main module, gets the server started.
- meshcentral.js | Used to send SMTP mails.
- meshmail.js | Used to relay agent and browser web socket connections.
- meshrelay.js | MeshCentral server discovery when in LAN mode.
- meshscanner.js | Used to communicate with browsers.
- meshuser.js | Used to communicate to Intel® AMT CIRA.
- mpsserver.js | Used for server-to-server communication.
- multiserver.js | Performs password hash + salt.
- pass.js | Used to handle HTTP traffic.
- redirserver.js | Used to upgrade legacy MeshCentralv1 agents.
- swarmserver.js | Handles HTTPS traffic.
- webserver.js | Server background install on Windows.
- winservice.js | Server background install on Windows.
+ amtevents.js | Used to decode Intel AMT WSMAN events.
+ amtmanager.js | Used to handle Intel AMT/CIRA things.
+ amtprovisioningserver.js | Used to Provision Intel AMT on a Local Network.
+ amtscanner.js | Used to scan a local network for Intel AMT machines.
+ amtscript.js | Used to run Intel AMT scripts from MeshCommander.
+ certoperations.js | Used to generate and perform certificate operations.
+ common.js | Various commonly used methods.
+ crowdsec.js | Used to handle all crowdsec security features
+ db.js | Used to access the MongoDB or NeDB database.
+ exeHandler.js | Used to modify windows executables.
+ firebase.js | Used to handle Google Firebase things.
+ interceptor.js | Used to insert credentials in an HTTP stream.
+ letsencrypt.js | Used to obtain and use a Let’s Encrypt certificate.
+ mcrec.js | Standalone Session Recording Indexer.
+ meshaccelerator.js | Used to offload RSA sign to other CPU cores.
+ meshagent.js | Used to communicate to agents.
+ meshbot.js | Sample bot to connect to meshcentral and preform various tasks
+ meshcentral.js | The is the main module, gets the server started.
+ meshctrl.js | MeshCtrl performs command line actions on a MeshCentral server.
+ meshcore.js | Main Agent Code that runs on your remote devices.
+ meshdesktopmultiplex.js | Used to handle remote desktop multiplexing.
+ meshdevicefile.js | Used to handle file download requests.
+ meshipkvm.js | Used to handle IP KVM integration
+ meshmail.js | Used to send SMTP mails.
+ meshmessaging.js | Used to handle all users messaging methods like 2FA.
+ meshrelay.js | Used to relay agent and browser web socket connections.
+ meshscanner.js | MeshCentral server discovery when in LAN mode.
+ meshsms.js | Used to handle all users sms methods.
+ meshuser.js | Used to communicate with browsers.
+ mpsserver.js | Used to communicate to Intel® AMT CIRA.
+ mqttbroker.js | Used to create/handle an MQTT broker (beta)
+ multiserver.js | Used for server-to-server communication.
+ pass.js | Performs password hash + salt.
+ redirserver.js | Used to handle HTTP traffic.
+ swarmserver.js | Used to upgrade legacy MeshCentralv1 agents.
+ webauthn.js | Handles all WebAuthN things.
+ webrelayserver.js | Used for all HTTP/HTTPS web relaying from agents.
+ webserver.js | Handles HTTPS traffic.
+ winservice.js | Server background install on Windows.
+
```
At a high level, the MeshCentral.js file will get the server started. By default, it will start the webserver.js on port 443, redirectserver.js on port 80 and mpssrver.js on port 4433. The webserver.js file will create a meshuser.js or meshagent.js instance each time a user or agent connects. The other files support various usages, but this is the basic working on the server.
diff --git a/docs/docs/how-to-contribute/images/translation-msg-output.png b/docs/docs/how-to-contribute/images/translation-msg-output.png
new file mode 100644
index 00000000..ab94a484
Binary files /dev/null and b/docs/docs/how-to-contribute/images/translation-msg-output.png differ
diff --git a/docs/docs/how-to-contribute/index.md b/docs/docs/how-to-contribute/index.md
new file mode 100644
index 00000000..ed3d87aa
--- /dev/null
+++ b/docs/docs/how-to-contribute/index.md
@@ -0,0 +1,56 @@
+# Contribute to MeshCentral
+
+## Contributing to MeshCentral via GitHub Pull Request
+
+If you're looking to contribute beyond translations, such as updating documentation or enhancing the software by adding features or fixing bugs, the process involves several key steps:
+
+1. **Fork the Repository:** Start by forking the [MeshCentral](https://github.com/Ylianst/MeshCentral) repository on GitHub. This creates a copy of the repository under your own GitHub account, allowing you to make changes without affecting the original project.
+
+2. **Make Your Changes**
+ - In your forked repository, create a new branch to keep your changes organized. This helps in managing different contributions separately.
+ - Make the necessary changes in your repository. This could involve updating documentation files or modifying code to add new features or fix bugs.
+
+3. **Review Your Changes:** Before submitting your work, carefully review the changes you’ve made. Check the "Files Changed" section on GitHub to ensure that all modifications are intended and correctly implemented.
+
+4. **Submit a Pull Request**
+ - Once your changes are ready and reviewed, submit a pull request (PR) from your branch to the `master` branch of the main MeshCentral repository.
+ - When creating the pull request, provide a clear and detailed description of what changes have been made and why. This helps maintainers understand the purpose of your contributions.
+
+5. **Wait for Review:** After submitting your pull request, wait for a project maintainer to review your contribution. Review time can vary depending on the complexity of the changes and the availability of the maintainers.
+
+6. **Respond to Feedback:** The maintainer may request further modifications or provide feedback on your pull request. Be prepared to make additional changes based on their suggestions to ensure that your contribution meets the project’s standards and requirements.
+
+7. **Final Steps:** Once your pull request is approved and merged by a maintainer, your contributions will be incorporated into the MeshCentral project. Congratulations, and thank you for helping improve MeshCentral!
+
+---
+
+## Contribute to MeshCentral's Multilingual Support
+
+To make MeshCentral multilingual, your contributions are crucial. Follow these steps to translate the interface into various languages.
+
+1. **Remove Local Translations:** Delete `translate.json` from your `meshcentral-data` folder. This file contains your local copy of translations, which may become outdated as new features and texts are added.
+
+2. **Access MeshCentral:** Ensure you are logged into MeshCentral.
+3. **Open Translation Tool:** Visit `https://YOURMESHCENTRALSERVER.COM/translator.htm` to access the translation interface.
+4. **Choose a Language:** Select the language you wish to translate from the list provided.
+
+5. **Translate Text:** Use the search function or scroll through the list to find text segments you want to translate. Utilize the "show no translations only" checkbox to filter untranslated texts.
+6. **Enter Translations:** For each text segment, enter your translation in the bottom box (not the top one) and click `SET (F1)`.
+7. **Repeat Translation:** Continue translating by repeating steps 5 and 6 for other texts as desired.
+
+8. **Save and Apply Translations**
+ - Click `SAVE TO SERVER (F3)` to save your translations to `meshcentral-data/translate.json` locally in your MeshCentral server.
+ - Optionally, click `SAVE TO FILE (F4)` to download the `translate.json` file for offline review or sharing.
+
+9. **Deploy Translations:** Click `TRANSLATE SERVER` and allow some time for the process to complete (approximately 5-15 minutes depending on server specifications). This command line output will indicate when the translation is complete.
+
+
+10. **Finalize Changes:** It’s crucial to restart MeshCentral to ensure that the translated files are picked up correctly.
+11. **Share your translations:** Once a language translation is complete, take the latest `translation.json` and share it by emailing it to the maintainer (Ylianst, `ylianst@gmail.com`) or by submitting it to the MeshCentral GitHub repository via a pull request.
+
+---
+
+#### Additional Information:
+ - If you make any changes to `default.handlebars`, run the translate server to propagate these modifications to the language-specific handlebar files located in `node_modules/meshcentral/views/translations`.
+
+By following these steps, you help MeshCentral support any language you choose, making it more accessible worldwide. By sharing your translations with us, you also help make these languages available to other users, improving the community and extending the software's reach.
diff --git a/docs/docs/index.md b/docs/docs/index.md
index 2f82ffdb..fabdc903 100644
--- a/docs/docs/index.md
+++ b/docs/docs/index.md
@@ -4,8 +4,6 @@
MeshCentral is a full computer management web site. With MeshCentral, you can run your own web server to remotely manage and control computers on a local network or anywhere on the internet. Once you get the server started, create device group and download and install an agent on each computer you want to manage. A minute later, the new computer will show up on the web site and you can take control of it. MeshCentral includes full web-based remote desktop, terminal and file management capability.
-To try out this software on the public server, please visit [MeshCentral.com/login](https://meshcentral.com/login). Be mindful that the public MeshCentral server comes with no guaranties, most should setup their own server.
-
For more information, [visit MeshCentral.com](https://www.meshcentral.com/).
## Social Media
@@ -14,17 +12,17 @@ For more information, [visit MeshCentral.com](https://www.meshcentral.com/).
[Reddit](https://www.reddit.com/r/MeshCentral/)
-[Twitter](https://twitter.com/MeshCentral)
+[BlueSky](https://bsky.app/profile/meshcentral.bsky.social)
[BlogSpot](https://meshcentral2.blogspot.com/)
## Documentation
-The [User's Guide](https://meshcentral.com/info/docs/MeshCentral2UserGuide.pdf) contains information every adminstrator should know including usage, the server configuration file, databases, TLS offloading, Lets Encrypt, IP Filtering, Email setup, embedding, server port aliasing, reverse proxy setup, multi factor authentication, branding & terms of use, HashiCorp Vault support, and SSO.
+The [User's Guide](meshcentral) contains information every administrator should know including usage, the server configuration file, databases, TLS offloading, Lets Encrypt, IP Filtering, Email setup, embedding, server port aliasing, reverse proxy setup, multi factor authentication, branding & terms of use, HashiCorp Vault support, and SSO.
-The [Installation Guide](https://meshcentral.com/info/docs/MeshCentral2InstallGuide.pdf) has detailed instructions for installing the MeshCentral Server on Windows 8.1, Windows 10, Windows 2012 R2, Amazon Linux 2, Raspberry Pi, Microsoft Azure, Google Cloud, Ubuntu 18, Ubuntu 16 and OpenBSD.
+The [Installation Guide](install/install2.md) has detailed instructions for installing the MeshCentral Server on Windows 8.1, Windows 10, Windows 2012 R2, Amazon Linux 2, Raspberry Pi, Microsoft Azure, Google Cloud, Ubuntu 18, Ubuntu 16 and OpenBSD.
-The [Design and Architecture Guide](https://meshcentral.com/info/docs/MeshCentral2DesignArchitecture.pdf) is a short document that includes information on the design overview, dependencies, source code descriptions of each file, certificates, TLS security, the agent to server handshake, browser to agent relay and WebRTC and the messenger service.
+The [Design and Architecture Guide](design) is a short document that includes information on the design overview, dependencies, source code descriptions of each file, certificates, TLS security, the agent to server handshake, browser to agent relay and WebRTC and the messenger service.
## Video Tutorials
diff --git a/docs/docs/install/index.md b/docs/docs/install/index.md
index 59e7b8da..988cf099 100644
--- a/docs/docs/install/index.md
+++ b/docs/docs/install/index.md
@@ -13,7 +13,7 @@ That's it. MeshCentral will set itself up and start managing computers on your l
For Windows users, you can download the MeshCentral Installer that will automate installation of NodeJS and provide basic configuration of the server. This option is not recommended for advanced users.
-[Win32 MeshCentral Installer](https://meshcentral.com/info/tools/MeshCentralInstaller.exe)
+[Win32 MeshCentral Installer](https://meshcentral.com/tools/MeshCentralInstaller.exe)
By default, MeshCentral will use NeDB as this is the built-in database. For more advanced users, it's recommended to switch to using MongoDB. MeshCentral can be installed on a very small server. A [Raspberry Pi](https://www.raspberrypi.org/) or [AWS t3.nano running Amazon Linux 2 instance](https://aws.amazon.com/ec2/pricing/on-demand/) for 5$ a month will do just fine for managing up to a few hundred devices.
@@ -23,10 +23,10 @@ You can run the MeshCentral Server with --help to get options for background ins
Once you get MeshCentral installed, the first user account that is created will be the server administrator. So, don't delay and navigate to the login page and create a new account. You can then start using your server right away. A lot of the fun with MeshCentral is the 100's of configuration options that are available in the config.json file. You can put your own branding on the web pages, setup a SMTP email server, SMS services and much more.
-You can look [here for simple config.json](https://raw.githubusercontent.com/Ylianst/MeshCentral/master/sample-config.json), [here for a more advanced configuration](https://raw.githubusercontent.com/Ylianst/MeshCentral/master/sample-config-advanced.json) and [here for all possible configuration options](https://raw.githubusercontent.com/Ylianst/MeshCentral/master/meshcentral-config-schema.json). You can also take a look at the [MeshCentral User's Guide](https://meshcentral.com/info/docs/MeshCentral2InstallGuide.pdf) and [tutorial videos](https://meshcentral.com/info/tutorials.html) for additional help.
+You can look [here for simple config.json](https://raw.githubusercontent.com/Ylianst/MeshCentral/master/sample-config.json), [here for a more advanced configuration](https://raw.githubusercontent.com/Ylianst/MeshCentral/master/sample-config-advanced.json) and [here for all possible configuration options](https://raw.githubusercontent.com/Ylianst/MeshCentral/master/meshcentral-config-schema.json). You can also take a look at the [tutorial videos](https://www.youtube.com/@MeshCentral/videos) for additional help.
## Video Walkthru
-
\ No newline at end of file
+
diff --git a/docs/docs/install/install2.md b/docs/docs/install/install2.md
index c00f20bc..39312467 100644
--- a/docs/docs/install/install2.md
+++ b/docs/docs/install/install2.md
@@ -4,6 +4,45 @@
This guide is specifically intended to help users install MeshCentral from start to finish. Once installed, you can take a look at the MeshCentral user’s guide for information on how to configure MeshCentral for your specific use. In this document, we will look at installing MeshCentral on AWS Linux, Raspberry Pi and Ubuntu.
+## Docker
+
+