Skip to content

Configuration Overview ​

MeshMonitor is designed to be flexible and adaptable to various deployment scenarios. This section covers all configuration options and deployment strategies.

Configuration Topics ​

Using meshtasticd ​

Learn how to configure MeshMonitor to work with meshtasticd, the virtual Meshtastic node daemon, perfect for testing and development without physical hardware.

SSO Setup ​

Configure Single Sign-On (SSO) authentication using OpenID Connect (OIDC) for enterprise deployments and centralized identity management.

Reverse Proxy ​

Set up NGINX, Apache, or other reverse proxies to handle SSL termination, load balancing, and secure external access to MeshMonitor.

HTTP vs HTTPS ​

Understand the differences between HTTP and HTTPS deployments, security considerations, and how to configure SSL/TLS certificates.

Production Deployment ​

Best practices and recommendations for deploying MeshMonitor in production environments, including high availability and monitoring.

Push Notifications ​

Configure push notifications for iOS, Android, and desktop browsers. Learn about HTTPS requirements, VAPID keys, and step-by-step setup guides for all platforms.

Environment Variables ​

MeshMonitor can be configured using environment variables. Here are the most important ones:

Required Variables ​

VariableDescriptionExample
MESHTASTIC_NODE_IPIP address of your Meshtastic node192.168.1.100

Optional Variables ​

VariableDescriptionDefault
PORTBackend server port3001
SESSION_SECRETSecret key for session encryption (REQUIRED in production)Auto-generated
NODE_ENVEnvironment mode (development or production)development
DATABASE_PATHSQLite database file path/data/meshmonitor.db
BASE_URLBase path if serving from subfolder (e.g., /meshmonitor)/ (root)

Security & Reverse Proxy Variables ​

VariableDescriptionDefault
TRUST_PROXYTrust reverse proxy headers (required for HTTPS behind proxy)1 in production
COOKIE_SECURERequire HTTPS for cookiestrue in production
COOKIE_SAMESITECookie SameSite policy (strict, lax, or none)strict in production
SESSION_MAX_AGESession cookie lifetime in milliseconds86400000 (24 hours)
ALLOWED_ORIGINSREQUIRED for HTTPS/reverse proxy: Comma-separated list of allowed CORS originslocalhost URLs in development

Authentication Variables ​

VariableDescriptionDefault
DISABLE_ANONYMOUSDisable anonymous access - require login for all featuresfalse
DISABLE_LOCAL_AUTHDisable local username/password authentication (OIDC only)false
ADMIN_USERNAMEOverride default admin username on first runadmin

Rate Limiting Variables ​

VariableDescriptionDefault (Production)Default (Development)
RATE_LIMIT_APIMax API requests per 15 minutes1000 (~1 req/sec)10000
RATE_LIMIT_AUTHMax auth attempts per 15 minutes5100
RATE_LIMIT_MESSAGESMax messages per minute30100

Note: Rate limit violations are logged with IP address and path for troubleshooting. Adjust these values based on your usage patterns.

SSO Variables (OIDC) ​

VariableDescription
OIDC_ISSUEROIDC issuer URL
OIDC_CLIENT_IDOIDC client ID
OIDC_CLIENT_SECRETOIDC client secret
OIDC_REDIRECT_URICallback URL for OIDC

See the SSO Setup guide for detailed OIDC configuration.

Configuration Files ​

Docker Compose ​

For Docker deployments, configuration is typically done through environment variables in docker-compose.yml:

yaml
services:
  meshmonitor:
    image: meshmonitor:latest
    environment:
      - MESHTASTIC_NODE_IP=192.168.1.100
      - PORT=3000
      - SESSION_SECRET=your-secret-key-here
    ports:
      - "8080:8080"
    volumes:
      - meshmonitor_data:/app/data

Kubernetes (Helm) ​

For Kubernetes deployments, use the Helm chart values file:

yaml
# values.yaml
meshmonitor:
  nodeIp: "192.168.1.100"
  port: 3000

ingress:
  enabled: true
  host: meshmonitor.example.com
  tls:
    enabled: true

See the Production Deployment guide for complete Helm configuration.

Database Configuration ​

MeshMonitor uses SQLite for data storage by default. The database file is stored in the data/ directory.

Database Location ​

  • Docker: /app/data/meshmonitor.db (mounted as a volume)
  • Bare Metal: ./data/meshmonitor.db (relative to project root)

Backup and Migration ​

To backup your database:

bash
# Docker
docker cp meshmonitor:/app/data/meshmonitor.db ./backup.db

# Bare Metal
cp data/meshmonitor.db backup.db

Security Considerations ​

Session Secret ​

Always set a strong SESSION_SECRET in production:

bash
# Generate a secure random string
openssl rand -base64 32

Database Encryption ​

The database stores password hashes using bcrypt. User passwords are never stored in plain text.

HTTPS ​

Always use HTTPS in production environments. See the HTTP vs HTTPS guide for setup instructions.

Logging ​

MeshMonitor logs to stdout/stderr by default. Configure log aggregation in your deployment platform:

  • Docker: Use docker logs or configure a logging driver
  • Kubernetes: Logs are available via kubectl logs
  • Bare Metal: Redirect output to log files or use a process manager like systemd

Next Steps ​