mirror of
https://github.com/jorijn/meshcore-stats.git
synced 2026-03-28 17:42:55 +01:00
Simplify setup by having Python automatically load configuration from meshcore.conf at module import time. This eliminates the need to source config files in cron jobs or use direnv. - Add _load_config_file() to env.py that parses shell-style config - Environment variables always take precedence (Docker-friendly) - Rename .envrc.example to meshcore.conf.example (no direnv dependency) - Update cron examples to use flock for USB serial locking - Simplify documentation to use traditional .venv/ virtualenv BREAKING CHANGE: Configuration file renamed from .envrc to meshcore.conf. Users must copy meshcore.conf.example to meshcore.conf and migrate their settings. The new file format is the same (shell-style exports) but without the direnv-specific "layout python3" command. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
117 lines
5.3 KiB
Plaintext
117 lines
5.3 KiB
Plaintext
# MeshCore Stats Configuration
|
|
# Copy this file to meshcore.conf and customize for your setup:
|
|
# cp meshcore.conf.example meshcore.conf
|
|
#
|
|
# This file is automatically loaded by the scripts. No need to source it manually.
|
|
# Environment variables always take precedence over this file (useful for Docker).
|
|
|
|
# =============================================================================
|
|
# Connection Settings
|
|
# =============================================================================
|
|
|
|
export MESH_TRANSPORT=serial
|
|
export MESH_SERIAL_PORT=/dev/ttyUSB0 # Adjust for your system (e.g., /dev/ttyACM0, /dev/cu.usbserial-*)
|
|
export MESH_SERIAL_BAUD=115200
|
|
export MESH_DEBUG=0 # Set to 1 for verbose meshcore debug output
|
|
|
|
# =============================================================================
|
|
# Remote Repeater Identity
|
|
# =============================================================================
|
|
# At least REPEATER_NAME or REPEATER_KEY_PREFIX is required to identify your repeater
|
|
|
|
export REPEATER_NAME="Your Repeater Name" # Advertised name shown in contacts
|
|
# export REPEATER_KEY_PREFIX="a1b2c3" # Alternative: hex prefix of public key
|
|
export REPEATER_PASSWORD="your-password" # Admin password for repeater login
|
|
|
|
# =============================================================================
|
|
# Display Names (shown in UI)
|
|
# =============================================================================
|
|
|
|
export REPEATER_DISPLAY_NAME="My Repeater"
|
|
export COMPANION_DISPLAY_NAME="My Companion"
|
|
|
|
# Public key prefixes (shown below node name in sidebar, e.g., "!a1b2c3d4")
|
|
# export REPEATER_PUBKEY_PREFIX="!a1b2c3d4"
|
|
# export COMPANION_PUBKEY_PREFIX="!e5f6g7h8"
|
|
|
|
# =============================================================================
|
|
# Location Metadata (for reports and sidebar display)
|
|
# =============================================================================
|
|
|
|
export REPORT_LOCATION_NAME="City, Country" # Full location name for reports
|
|
export REPORT_LOCATION_SHORT="City, XX" # Short version for sidebar/meta
|
|
export REPORT_LAT=0.0 # Latitude in decimal degrees
|
|
export REPORT_LON=0.0 # Longitude in decimal degrees
|
|
export REPORT_ELEV=0 # Elevation
|
|
export REPORT_ELEV_UNIT=m # "m" for meters, "ft" for feet
|
|
|
|
# =============================================================================
|
|
# Hardware Info (shown in sidebar)
|
|
# =============================================================================
|
|
|
|
export REPEATER_HARDWARE="Your Repeater Model" # e.g., "SenseCAP P1-Pro", "LILYGO T-Beam"
|
|
export COMPANION_HARDWARE="Your Companion Model" # e.g., "Elecrow ThinkNode-M1", "Heltec V3"
|
|
|
|
# =============================================================================
|
|
# Radio Configuration Presets
|
|
# =============================================================================
|
|
# Uncomment ONE preset below that matches your MeshCore configuration,
|
|
# or set custom values. These are for display purposes only.
|
|
|
|
# MeshCore EU/UK Narrow (default)
|
|
export RADIO_FREQUENCY="869.618 MHz"
|
|
export RADIO_BANDWIDTH="62.5 kHz"
|
|
export RADIO_SPREAD_FACTOR="SF8"
|
|
export RADIO_CODING_RATE="CR8"
|
|
|
|
# # MeshCore EU/UK Wide
|
|
# export RADIO_FREQUENCY="869.525 MHz"
|
|
# export RADIO_BANDWIDTH="250 kHz"
|
|
# export RADIO_SPREAD_FACTOR="SF10"
|
|
# export RADIO_CODING_RATE="CR5"
|
|
|
|
# # MeshCore US Standard
|
|
# export RADIO_FREQUENCY="906.875 MHz"
|
|
# export RADIO_BANDWIDTH="250 kHz"
|
|
# export RADIO_SPREAD_FACTOR="SF10"
|
|
# export RADIO_CODING_RATE="CR5"
|
|
|
|
# # MeshCore US Fast
|
|
# export RADIO_FREQUENCY="906.875 MHz"
|
|
# export RADIO_BANDWIDTH="500 kHz"
|
|
# export RADIO_SPREAD_FACTOR="SF7"
|
|
# export RADIO_CODING_RATE="CR5"
|
|
|
|
# # MeshCore ANZ (Australia/New Zealand)
|
|
# export RADIO_FREQUENCY="917.0 MHz"
|
|
# export RADIO_BANDWIDTH="250 kHz"
|
|
# export RADIO_SPREAD_FACTOR="SF10"
|
|
# export RADIO_CODING_RATE="CR5"
|
|
|
|
# =============================================================================
|
|
# Intervals and Timeouts
|
|
# =============================================================================
|
|
|
|
export COMPANION_STEP=60 # Collection interval for companion (seconds)
|
|
export REPEATER_STEP=900 # Collection interval for repeater (seconds, 15min default)
|
|
export REMOTE_TIMEOUT_S=10 # Minimum timeout for LoRa requests
|
|
export REMOTE_RETRY_ATTEMPTS=2 # Number of retry attempts
|
|
export REMOTE_RETRY_BACKOFF_S=4 # Seconds between retries
|
|
|
|
# Circuit breaker settings (prevents spamming LoRa when repeater is unreachable)
|
|
export REMOTE_CB_FAILS=6 # Failures before circuit breaker opens
|
|
export REMOTE_CB_COOLDOWN_S=3600 # Cooldown period in seconds (1 hour)
|
|
|
|
# =============================================================================
|
|
# Paths
|
|
# =============================================================================
|
|
|
|
export STATE_DIR=./data/state # SQLite database and circuit breaker state
|
|
export OUT_DIR=./out # Generated static site output
|
|
|
|
# =============================================================================
|
|
# Optional
|
|
# =============================================================================
|
|
|
|
export REPEATER_FETCH_ACL=0 # Set to 1 to fetch ACL from repeater
|