mirror of
https://github.com/ipnet-mesh/meshcore-hub.git
synced 2026-03-28 17:42:56 +01:00
181 lines
4.7 KiB
Plaintext
181 lines
4.7 KiB
Plaintext
# MeshCore Hub - Docker Compose Environment Configuration
|
|
# Copy this file to .env and customize values
|
|
|
|
# ===================
|
|
# Docker Image
|
|
# ===================
|
|
|
|
# Docker image version tag to use
|
|
# Options: latest, main, v1.0.0, etc.
|
|
IMAGE_VERSION=latest
|
|
|
|
# ===================
|
|
# Data & Seed Directories
|
|
# ===================
|
|
|
|
# Base directory for runtime data (database, etc.)
|
|
# Default: ./data (relative to docker-compose.yml location)
|
|
# Inside containers this is mapped to /data
|
|
#
|
|
# Structure:
|
|
# ${DATA_HOME}/
|
|
# └── meshcore.db # SQLite database
|
|
DATA_HOME=./data
|
|
|
|
# Directory containing seed data files for import
|
|
# Default: ./seed (relative to docker-compose.yml location)
|
|
# Inside containers this is mapped to /seed
|
|
#
|
|
# Structure:
|
|
# ${SEED_HOME}/
|
|
# ├── node_tags.yaml # Node tags for import
|
|
# └── members.yaml # Network members for import
|
|
SEED_HOME=./seed
|
|
|
|
# ===================
|
|
# Common Settings
|
|
# ===================
|
|
|
|
# Logging level (DEBUG, INFO, WARNING, ERROR, CRITICAL)
|
|
LOG_LEVEL=INFO
|
|
|
|
# ===================
|
|
# MQTT Settings
|
|
# ===================
|
|
|
|
# MQTT Broker connection (for interface/collector/api services)
|
|
# When using the local MQTT broker (--profile mqtt), use "mqtt" as host
|
|
# When using an external broker, set the hostname/IP
|
|
MQTT_HOST=mqtt
|
|
MQTT_PORT=1883
|
|
MQTT_USERNAME=
|
|
MQTT_PASSWORD=
|
|
MQTT_PREFIX=meshcore
|
|
|
|
# Enable TLS/SSL for MQTT connection (default: false)
|
|
# When enabled, uses TLS with system CA certificates (e.g., for Let's Encrypt)
|
|
# Set to true for secure MQTT connections (port 8883)
|
|
MQTT_TLS=false
|
|
|
|
# External port mappings for local MQTT broker (--profile mqtt only)
|
|
MQTT_EXTERNAL_PORT=1883
|
|
MQTT_WS_PORT=9001
|
|
|
|
# ===================
|
|
# Interface Settings
|
|
# ===================
|
|
|
|
# Serial port for receiver device
|
|
SERIAL_PORT=/dev/ttyUSB0
|
|
|
|
# Serial port for sender device (if separate)
|
|
SERIAL_PORT_SENDER=/dev/ttyUSB1
|
|
|
|
# Baud rate for serial communication
|
|
SERIAL_BAUD=115200
|
|
|
|
# Optional device/node name to set on startup
|
|
# This name is broadcast to the mesh network in advertisements
|
|
MESHCORE_DEVICE_NAME=
|
|
|
|
# Optional node address override (64-char hex string)
|
|
# Only set if you need to override the device's public key
|
|
NODE_ADDRESS=
|
|
NODE_ADDRESS_SENDER=
|
|
|
|
# ===================
|
|
# API Settings
|
|
# ===================
|
|
|
|
# External API port
|
|
API_PORT=8000
|
|
|
|
# API Keys for authentication (generate secure keys for production!)
|
|
# Example: openssl rand -hex 32
|
|
API_READ_KEY=
|
|
API_ADMIN_KEY=
|
|
|
|
# ===================
|
|
# Web Dashboard Settings
|
|
# ===================
|
|
|
|
# External web port
|
|
WEB_PORT=8080
|
|
|
|
# Network Information (displayed on web dashboard)
|
|
NETWORK_NAME=MeshCore Network
|
|
NETWORK_CITY=
|
|
NETWORK_COUNTRY=
|
|
|
|
# Radio configuration (comma-delimited)
|
|
# Format: <profile>,<frequency>,<bandwidth>,<spreading_factor>,<coding_rate>,<tx_power>
|
|
# Example: EU/UK Narrow,869.618MHz,62.5kHz,8,8,22dBm
|
|
NETWORK_RADIO_CONFIG=
|
|
|
|
# Contact information
|
|
NETWORK_CONTACT_EMAIL=
|
|
NETWORK_CONTACT_DISCORD=
|
|
NETWORK_CONTACT_GITHUB=
|
|
|
|
# Welcome text displayed on the homepage (plain text, optional)
|
|
# If not set, a default welcome message is shown
|
|
NETWORK_WELCOME_TEXT=
|
|
|
|
# ===================
|
|
# Webhook Settings
|
|
# ===================
|
|
|
|
# Webhook for advertisement events (node discovery)
|
|
# Events are sent as POST requests with JSON payload
|
|
WEBHOOK_ADVERTISEMENT_URL=
|
|
WEBHOOK_ADVERTISEMENT_SECRET=
|
|
|
|
# Webhook for all message events (channel and direct messages)
|
|
# Use this for a single endpoint handling all messages
|
|
WEBHOOK_MESSAGE_URL=
|
|
WEBHOOK_MESSAGE_SECRET=
|
|
|
|
# Optional: Separate URLs for channel vs direct messages
|
|
# These override WEBHOOK_MESSAGE_URL if set
|
|
# WEBHOOK_CHANNEL_MESSAGE_URL=
|
|
# WEBHOOK_CHANNEL_MESSAGE_SECRET=
|
|
# WEBHOOK_DIRECT_MESSAGE_URL=
|
|
# WEBHOOK_DIRECT_MESSAGE_SECRET=
|
|
|
|
# Webhook behavior settings
|
|
WEBHOOK_TIMEOUT=10.0
|
|
WEBHOOK_MAX_RETRIES=3
|
|
WEBHOOK_RETRY_BACKOFF=2.0
|
|
|
|
# ===================
|
|
# Data Retention Settings
|
|
# ===================
|
|
|
|
# Enable automatic cleanup of old event data
|
|
# When enabled, the collector runs periodic cleanup to delete old events
|
|
# Default: true
|
|
DATA_RETENTION_ENABLED=true
|
|
|
|
# Number of days to retain event data (advertisements, messages, telemetry, etc.)
|
|
# Events older than this are deleted during cleanup
|
|
# Default: 30 days
|
|
DATA_RETENTION_DAYS=30
|
|
|
|
# Hours between automatic cleanup runs (applies to both events and nodes)
|
|
# Default: 24 hours (once per day)
|
|
DATA_RETENTION_INTERVAL_HOURS=24
|
|
|
|
# ===================
|
|
# Node Cleanup Settings
|
|
# ===================
|
|
|
|
# Enable automatic cleanup of inactive nodes
|
|
# Nodes that haven't been seen (last_seen) for the specified period are removed
|
|
# Nodes with last_seen=NULL (never seen on network) are NOT removed
|
|
# Default: true
|
|
NODE_CLEANUP_ENABLED=true
|
|
|
|
# Remove nodes not seen for this many days (based on last_seen field)
|
|
# Default: 7 days
|
|
NODE_CLEANUP_DAYS=7
|