Docker Compose Configurator β
4.0 Multi-Source
This configurator sets up your first / primary node only. The MESHTASTIC_NODE_IP / MESHTASTIC_TCP_PORT values seed MeshMonitor's first source on initial boot.
- Add more Meshtastic nodes β once running, use Dashboard β Sources β Add Source in the UI. No container restart, no compose edits.
- Virtual Node β enable per-source from Dashboard β Edit Source β Virtual Node.
- Additional bridges or sidecars (extra BLE Bridge, extra Serial Bridge, a second MQTT Proxy, etc.) β the configurator publishes one of each. If you need a second instance for a second node, you'll need to hand-edit the generated
docker-compose.ymlto add another bridge/sidecar service with its own container name, device mapping, and port.
See Multi-Source for the full source model.
MeshMonitor Docker Compose Configurator
Configure your MeshMonitor deployment by selecting your options below. This tool will generate a ready-to-use docker-compose.yml and .env file for your setup.
1. Connection Type (Primary Node)
How is your first / primary Meshtastic node connected? This configurator bootstraps a single node β once MeshMonitor is running, add more nodes from Dashboard β Sources β Add Source in the web UI.
docker-compose.yml to add another container with its own name, device mapping, and port β then point it at MeshMonitor as an additional source. 2. Connection Details
The IP address of your Meshtastic node
Default is 4403
3. Deployment Mode
How will you access MeshMonitor?
4. Port Configuration
Port to access MeshMonitor web interface
5. Security & Virtual Node
The old ENABLE_VIRTUAL_NODE, VIRTUAL_NODE_PORT, and VIRTUAL_NODE_ALLOW_ADMIN_COMMANDS environment variables were removed and are not emitted below. Enable Virtual Node per source in Dashboard β Edit Source β Virtual Node after your container starts. See Multi-Source: Virtual Node.
Host port to publish. Match this value to the in-container port you set in the Virtual Node section of the source's edit dialog (default: 4404).
6. Database
Choose your database backend
7. Additional Settings
Your timezone (e.g., America/New_York, Europe/London, Asia/Tokyo) See list
Adds a watchdog sidecar container that allows one-click upgrades through the web UI. Learn more
Adds a TileServer GL Light container for serving offline map tiles. Supports both vector (.pbf) and raster (.png) tiles for full offline operation.
Mounts ./scripts to /data/scripts for easy management of Auto Responder scripts. Learn more
Adds an MQTT proxy container that routes MQTT traffic through MeshMonitor instead of directly from your node. Useful when your node has unreliable WiFi or when you want MQTT without running mobile apps. Learn more
8. Generated Configuration
docker-compose.yml
services:
meshmonitor:
image: ghcr.io/yeraze/meshmonitor:latest
container_name: meshmonitor
ports:
- "8080:3001"
- "4404:4404"
restart: unless-stopped
volumes:
- meshmonitor-data:/data
env_file: .env
environment:
- NODE_ENV=development
- TZ=America/New_York
- MESHTASTIC_NODE_IP=192.168.1.100
- ALLOWED_ORIGINS=http://localhost:8080
volumes:
meshmonitor-data:
driver: local.env
# MeshMonitor Configuration
# Generated by MeshMonitor Docker Compose Configurator
Deployment Instructions
- Copy the
docker-compose.ymlcontent above and save it to a file nameddocker-compose.yml - Copy the
.envcontent above and save it to a file named.envin the same directory - Run
docker compose up -dto start MeshMonitor - Access MeshMonitor at http://localhost:8080
- π 4.0 β Finish setup in the UI. The
MESHTASTIC_NODE_IP/MESHTASTIC_TCP_PORTvalues above bootstrap the first / primary source only. To add more nodes, rename the source, or change connection details, use Dashboard β Sources β no container restart required. Enable Virtual Node on the source in Dashboard β Edit Source β Virtual Node using port4404to match the published host port. See Multi-Source for details. - Additional bridges & sidecars are manual. If a second node also needs BLE Bridge, Serial Bridge, or MQTT Proxy, hand-edit this
docker-compose.ymlto add another container (unique name, unique device mapping, unique port), then add it as a source in the UI.
Need Help? β
If you encounter any issues with your configuration:
- Connection issues: See our troubleshooting guides
- BLE setup: Check the BLE Bridge documentation
- Serial/USB setup: Check the Serial Bridge documentation
- MQTT Proxy setup: Check the MQTT Client Proxy documentation
- Production deployment: Review the Production Deployment guide
- Reverse proxy: See Reverse Proxy Configuration
What's Next? β
After deploying with the generated configuration:
- Configure your node: Make sure your Meshtastic device is properly configured
- Set up notifications: Configure push notifications for alerts
- Security: Review security best practices
- Backups: Set up automated backups
- Monitoring: Configure health checks and monitoring
Configuration Options Explained β
Connection Types β
- TCP/Network: For devices with WiFi or Ethernet connectivity. This is the most straightforward option and provides the best performance.
- Bluetooth (BLE): For devices that only have Bluetooth connectivity. Requires the BLE Bridge and a system with Bluetooth hardware.
- USB/Serial: For devices connected via USB or serial port. Requires the Serial Bridge and the device to be physically connected to your server.
Deployment Modes β
- Development (HTTP): Best for local testing and home use. Simple HTTP access without SSL/TLS.
- Production with Reverse Proxy: Recommended for production deployments. Uses HTTPS via a reverse proxy like nginx, Caddy, or Traefik.
- Production without Reverse Proxy: Direct HTTP access in production. Not recommended due to lack of encryption.
Security Options β
- Plan to use Virtual Node: Publishes a host port so mobile apps (and the optional MQTT Proxy) can reach MeshMonitor's Virtual Node once you enable it. In 4.0 the Virtual Node is a per-source setting β enable it and choose an in-container port in Dashboard β Edit Source β Virtual Node after startup. The legacy
ENABLE_VIRTUAL_NODE/VIRTUAL_NODE_PORT/VIRTUAL_NODE_ALLOW_ADMIN_COMMANDSenvironment variables were removed. - Disable Anonymous Access: When enabled, users must authenticate before accessing MeshMonitor. Useful for deployments accessible from the internet.
Additional Settings β
- Automatic Self-Upgrade: Enable one-click upgrades through the web UI with the upgrade watchdog sidecar.
- Offline Map Tiles: Add TileServer GL for serving offline map tiles when internet connectivity is limited.
- Auto Responder Scripts: Mount a scripts directory for custom automation scripts.
- MQTT Client Proxy: Route MQTT traffic through MeshMonitor instead of your node's WiFi. Useful for nodes with unreliable connectivity or when using Serial/BLE connections. See MQTT Client Proxy documentation.
Advanced Topics β
For more complex deployments, check out these resources:
- Kubernetes/Helm Deployment
- High Availability Setup
- SSO/OIDC Authentication
- Custom SSL Certificates
- Database Optimization
- MQTT Client Proxy - Reliable MQTT for nodes with unreliable WiFi