A production-ready Docker Compose stack for self-hosting MeshCentral — a full web-based remote monitoring and management platform.
With MeshCentral you can remotely access, control, and manage Windows, Linux, macOS, FreeBSD, and Android devices from any browser, with no plugins required. Once the server is running and an agent is installed on a target device, that device appears in the portal within seconds and you can open a remote desktop, terminal, or file manager session.
Official image: ghcr.io/ylianst/meshcentral — source: Ylianst/MeshCentral
| File | Purpose |
|---|---|
docker-compose.yml |
MeshCentral and MongoDB services, volumes, networks, and healthchecks |
meshcentral_env |
Environment variable template — copy to .env and fill in before starting |
docs/installation.md |
Step-by-step guide from zero to first login |
docs/meshcentral.md |
Full reference for ports, volumes, env vars, NPM settings, and troubleshooting |
- Official MeshCentral image from
ghcr.io/ylianst/meshcentral:latest-mongodb - MongoDB 7.0 backend — supports unlimited devices
- MongoDB isolated on an internal Docker network, never exposed to the host
- Healthchecks on both services so MeshCentral only starts after MongoDB is ready
- All data persisted in named Docker volumes
- Ready to sit behind Nginx Proxy Manager with a single proxy host entry
- Full
.envtemplate covering every configuration variable from the official docs - Critical NPM notes included (WebSocket required, HTTP/2 must be disabled)
- Docker CE and the Docker Compose plugin installed and running
- A user account with
sudoprivileges - A domain name or public IP for the server
- Ports 80 and 443 reachable from the internet (for remote access outside your LAN)
- Nginx Proxy Manager already running (if using a reverse proxy)
If you do not have Docker installed, the docker_installs script sets it up in one command.
# 1. Clone this repository
git clone https://github.com/aiagentaut0mati0n2026/meshcentral_docker.git
cd meshcentral_docker
# 2. Copy the environment template and fill in your values
cp meshcentral_env .env
nano .env # set HOSTNAME, MONGO_PASS, and REVERSE_PROXY
# 3. Start the stack
sudo docker compose up -d
# 4. Open your browser and create your admin account
# https://<your-server-ip>:4430For the full step-by-step setup including Nginx Proxy Manager configuration, agent installation, and post-install hardening, see docs/installation.md.
| Port | Purpose |
|---|---|
| 4430 | MeshCentral HTTPS (maps from container port 443) |
| 8080 | HTTP redirect (maps from container port 80) |
| 4433 | Intel AMT — commented out by default, uncomment if needed |
When running behind Nginx Proxy Manager, only the proxy host entry on port 443 needs to be open externally. NPM forwards to MeshCentral's internal port 443 by container name.
All data is stored in named Docker volumes.
| Volume | Purpose |
|---|---|
meshcentral-data |
config.json, TLS certificates, session keys — back this up |
meshcentral-files |
User file uploads and device file transfers |
meshcentral-web |
Custom themes and branding |
meshcentral-backups |
Automated MeshCentral backups |
meshcentral-db |
MongoDB data directory |
Choose the tag that matches your database setup. Default in this stack is latest-mongodb.
| Tag | Database | Use case |
|---|---|---|
latest |
All backends | Full flexibility, largest image |
latest-slim |
None (NeDB local) | Under 100 devices only |
latest-mongodb |
MongoDB | Recommended for most self-hosted installs |
latest-postgresql |
PostgreSQL | If you already run PostgreSQL |
latest-mysql |
MariaDB/MySQL | If you already run MariaDB/MySQL |
1.1.59-mongodb |
MongoDB | Pinned version for production stability |
To pin to a specific version, edit the image: line in docker-compose.yml.
- Step-by-step installation guide
- Full reference guide
- Upgrade and migration guide
- Database conversion guide (MongoDB and PostgreSQL)
- Official MeshCentral repository
- Official Install Guide PDF
- Official User Guide PDF
- Set
ALLOW_NEW_ACCOUNTS=falsein.envafter creating your admin account. - MongoDB has no exposed host port. It is only reachable from within the internal Docker network.
- Back up the
meshcentral-datavolume regularly. It contains your TLS certificates and server configuration. - Never commit your
.envfile to a public repository — it contains your database password. - Enable two-factor authentication for your admin account after first login.
MeshCentral is licensed under Apache 2.0 by Ylian Saint-Hilaire and the MeshCentral community.
This Docker Compose configuration is offered free of charge and without warranty. You are free to use and modify it in any way.