Getting Started
Get meshcore-bot running on your machine in a few minutes.
Requirements
- Python 3.10+
- MeshCore-compatible device (Heltec V3, RAK Wireless, etc.)
- Connection: USB cable, BLE, or TCP/IP to the device
Quick start (development)
- Clone and install
- Configure
Interactive (recommended): make config — ncurses editor for config.ini.
Or copy an example config and edit with your connection and bot settings:
- Full config (all commands and options):
- Minimal config (core commands only: ping, test, path, prefix, multitest):
Edit config.ini: set at least [Connection] (serial/BLE/TCP) and [Bot] (e.g. bot_name).
- Run
Inspect effective config safely
Use these commands to inspect the resolved config with sensitive keys redacted:
.venv/bin/python meshcore_bot.py --show-config --config config.ini
.venv/bin/python meshcore_bot.py --show-config-json --config config.ini
Also available in the web UI at /admin/config.
Production deployment
Systemd service
Run the bot as a system service on Linux:
sudo ./install-service.sh
sudo nano /opt/meshcore-bot/config.ini # configure
sudo systemctl start meshcore-bot
sudo systemctl status meshcore-bot
See Service installation for full steps.
Docker
Run in a container with Docker Compose:
mkdir -p data/{config,databases,logs,backups}
cp config.ini.example data/config/config.ini
# Edit data/config/config.ini and set paths to /data/... (see [Docker](docker.md))
docker compose up -d --build
See Docker deployment for paths, serial access, and troubleshooting.
NixOS
Use the flake:
Next steps
- Command Reference — Full command reference (wx, aqi, sun, path, prefix, etc.)
- Upgrade guide — Migrating to v0.9 from older releases
- Config validation — Validate
config.inibefore first run - Data retention — Database cleanup defaults
- README — Features, keywords, configuration overview
- Guides (sidebar) — Path command, repeater commands, feeds, weather service, Discord bridge, map uploader, packet capture