MeshDash Docs
R2.0
/
Home Getting Started Configuration Reference

Configuration Reference

Getting Started config environment .mesh-dash_config settings jwt secret serial tcp ble history community c2 scheduler
Every key in .mesh-dash_config with defaults, types, and descriptions sourced from the code.

MeshDash reads its configuration from .mesh-dash_config in the install directory on startup. The format is KEY=VALUE — one per line. Comments start with #. All values are coerced to their correct types at load time.

After editing the file, restart the service: sudo systemctl restart mesh-dash. Some keys (AUTH_SECRET_KEY, LOG_LEVEL, etc.) can also be changed via the System Config API and take effect immediately without a full restart.

Authentication

AUTH_SECRET_KEY
64-character hex string used to sign JWT session tokens. Never share this value. Changing it invalidates all active sessions. Defaults to a random value generated at startup if not set.
AUTH_TOKEN_EXPIRE_MINUTES
Session lifetime in minutes. Default: 10080 (7 days). Tokens are silently refreshed at the /api/status endpoint when less than half their life remains.

Radio Connection

MESHTASTIC_CONNECTION_TYPE
SERIAL | TCP | BLE | WEBSERIAL. Default: SERIAL.
MESHTASTIC_SERIAL_PORT
Serial device path. Example: /dev/ttyACM0. Only used when type is SERIAL.
MESHTASTIC_HOST
IP address for TCP mode. Default: 192.168.0.0.
MESHTASTIC_PORT
TCP port. Default: 4403 (standard Meshtastic port).
MESHTASTIC_BLE_MAC
Bluetooth MAC address for BLE mode. Example: AA:BB:CC:DD:EE:FF.

Web Server

WEBSERVER_HOST
0.0.0.0 (accessible on LAN) or 127.0.0.1 (local only). Default: 0.0.0.0.
WEBSERVER_PORT
Port number. Default: 8000.
NETWORK_WEBSERVER_PORT
Port for the optional network analyzer sub-app. Default: same as WEBSERVER_PORT.

Data Storage

DB_PATH
Path to the main SQLite database. Default: meshtastic_data.db.
TASK_DB_PATH
Path to the tasks/scheduler database. Default: tasks.db.
NETWORK_DB_PATH
Path to the optional network analyzer database. Default: meshtastic_network_data.db.
MAX_PACKETS_MEMORY
Number of packets held in the in-memory deque for the live feed. Default: 200. Increasing this uses more RAM.
HISTORY_DAYS
Days of data retained. Records older than this are pruned hourly. Default: 1. Set to 30, 90, etc. for longer retention.
LOG_LEVEL
INFO | DEBUG | WARNING. Default: INFO. Use DEBUG for troubleshooting — very verbose.
PUBLIC_MODE
true | false. When true, authentication is bypassed and databases are ephemeral (in-memory). Intended for demo or public-display deployments only. Default: true until setup is completed.

Community API & Remote Access

COMMUNITY_API
true | false. Enables community map heartbeat and C2 remote access. Default: false.
COMMUNITY_API_KEY
Your unique node API key. Generated by the Setup Wizard. Treat as a password.
HEARTBEAT_INTERVAL_MINUTES
How often (minutes) the C2 worker syncs with the community server. Default: 1.
C2_ACCESS_LEVEL
off | heartbeat | monitor | read | operator | full. Controls what can be accessed remotely. Default: read. See Remote Access for tier details.
C2_EXTRA_ENDPOINTS
Pipe-separated list of additional endpoints to allow remotely. E.g. /api/nodes|/api/status.
C2_BLOCKED_ENDPOINTS
Pipe-separated endpoints to always block, overriding tier settings.
C2_MAX_REQUESTS_PER_SYNC
Maximum proxy requests processed per sync cycle. Default: 10.
C2_MAX_RESPONSE_KB
Maximum size (KB) of any single proxied response. Default: 512.
C2_SYNC_INTERVAL_SECONDS
How often (seconds) to poll for pending remote requests. Default: 15.
C2_UPLOAD_INTERVAL_SECONDS
Bulk data upload frequency (seconds). Default: 60.

Location Privacy

SEND_LOCAL_NODE_LOCATION
true | false. Share your own node's GPS position on the community map. Default: true.
SEND_OTHER_NODES_LOCATION
true | false. Share positions of other nodes your radio hears. Default: true.
LOCATION_OFFSET_ENABLED
true | false. Add a random offset to all reported positions for privacy. Default: false.
LOCATION_OFFSET_METERS
Maximum fuzzing radius in metres. Only used when LOCATION_OFFSET_ENABLED=true. Default: 0.0.

Connection Scheduler / Tuning

SCHEDULER_MAX_RETRIES
Number of reconnection attempts before backing off. Default: 3.
SCHEDULER_RETRY_DELAY_SECONDS
Wait time between retries. Default: 10.
SCHEDULER_CONNECT_TIMEOUT
Seconds to wait when establishing a connection. Default: 10.0.
SCHEDULER_RW_TIMEOUT
Seconds to wait for a read/write operation on an active connection. Default: 30.0.

Initial Admin (One-time, Auto-removed)

INITIAL_ADMIN_USERNAME
Used during first-boot setup only. Written by the setup wizard, consumed on startup to create the admin account, then removed from the config file automatically.
INITIAL_ADMIN_PASSWORD
Same as above — plaintext password consumed once on startup, hashed with bcrypt and stored in the database, then removed from config.

Example Config

# ---------------------------------------------------------
# MeshDash Configuration
# ---------------------------------------------------------

AUTH_SECRET_KEY=a1b2c3d4e5f6...64chars
AUTH_TOKEN_EXPIRE_MINUTES=10080

MESHTASTIC_CONNECTION_TYPE=SERIAL
MESHTASTIC_SERIAL_PORT=/dev/ttyACM0

WEBSERVER_HOST=0.0.0.0
WEBSERVER_PORT=8000

DB_PATH=meshtastic_data.db
TASK_DB_PATH=tasks.db
MAX_PACKETS_MEMORY=200
HISTORY_DAYS=30
LOG_LEVEL=INFO

COMMUNITY_API=false
COMMUNITY_API_KEY=
C2_ACCESS_LEVEL=read
HEARTBEAT_INTERVAL_MINUTES=1
C2_SYNC_INTERVAL_SECONDS=15

SEND_LOCAL_NODE_LOCATION=true
SEND_OTHER_NODES_LOCATION=true
LOCATION_OFFSET_ENABLED=false
LOCATION_OFFSET_METERS=0

SCHEDULER_MAX_RETRIES=3
SCHEDULER_RETRY_DELAY_SECONDS=10
SCHEDULER_CONNECT_TIMEOUT=10
SCHEDULER_RW_TIMEOUT=30