Skip to content

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.yml to 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.

⚠ Multiple bridges/sidecars must be added by hand: The configurator publishes one BLE Bridge, one Serial Bridge, and one MQTT Proxy. If you need a second BLE/Serial node or a second sidecar instance, hand-edit the generated 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

πŸ†• 4.0 Breaking Change β€” Virtual Node is now per-source

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

  1. Copy the docker-compose.yml content above and save it to a file named docker-compose.yml
  2. Copy the .env content above and save it to a file named .env in the same directory
  3. Run docker compose up -d to start MeshMonitor
  4. Access MeshMonitor at http://localhost:8080
  5. πŸ†• 4.0 β€” Finish setup in the UI. The MESHTASTIC_NODE_IP / MESHTASTIC_TCP_PORT values 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 port 4404 to match the published host port. See Multi-Source for details.
  6. Additional bridges & sidecars are manual. If a second node also needs BLE Bridge, Serial Bridge, or MQTT Proxy, hand-edit this docker-compose.yml to 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:

What's Next? ​

After deploying with the generated configuration:

  1. Configure your node: Make sure your Meshtastic device is properly configured
  2. Set up notifications: Configure push notifications for alerts
  3. Security: Review security best practices
  4. Backups: Set up automated backups
  5. 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_COMMANDS environment 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:

Last updated: