Categories
self-hosted network-monitoring meshtastic meshcore lora reticulum mesh-networking community-networkStars
Forks
Watchers
Developer links
PotatoMesh
When your community asks what its LoRa mesh is doing right now, PotatoMesh answers with a live map, chat log, and node table built from the traffic your own radios hear. It is a self-hosted dashboard for Meshtastic, Meshcore, and Reticulum networks, with no MQTT clutter. Each node gets a detail page charting battery, voltage, channel utilization, temperature, humidity, and air quality over the past week, plus the neighbors it hears with signal strength and the trace routes it appears in. New nodes and telemetry reports pop up in the chat as they arrive, and a charts page follows telemetry and packets per hour across the whole network. Federation finds other PotatoMesh communities automatically and plots them on a world map with active-node counts per protocol. Ingestors feed the dashboard from radios over serial, TCP, Bluetooth, or passive UDP, and several can report to one instance. Open browsers update live, a Prometheus endpoint exports metrics, and Markdown pages publish your rules, contact details, or legal notice. Add a stop-sign emoji to a node's name to hide it, or switch on private mode to drop the chat entirely. Running on a dedicated VPS on RepoCloud with guaranteed CPU, RAM, and SSD, full root SSH access, and a browser serial console. Apache-2.0 licensed.
Benefits
- Local Mesh Without MQTT Clutter
- The dashboard shows only what your own radios hear, fed by ingestors on serial, TCP, or Bluetooth links, so the map stays local instead of mirroring a worldwide MQTT firehose.
- One Dashboard For Three Protocols
- Meshtastic and Meshcore nodes share one map and node table, Reticulum nodes join as experimental announce-only entries, and a per-protocol activity chart shows how busy each network is.
- Federation Connects Neighboring Communities
- Instances announce themselves and crawl peers every eight hours, so your community appears on a shared world map with preset, frequency, and active-node counts, and you see theirs.
- Privacy Controls For Node Owners
- A stop-sign emoji in a node's name hides it and its data from pages, API, metrics, and federation counts; rows idle for 365 days are deleted daily, and private mode removes chat.
Features
- Live Map And Node Table
- A Leaflet map using OpenStreetMap HOT and CARTO tiles, plus a searchable node table, shows positions and node relationships; tiles are the only third-party requests.
- Per-Node Telemetry Pages
- Each node page charts battery, voltage, channel utilization, temperature, humidity, and air quality for seven days, lists neighbors with SNR in dB, and shows traceroute paths.
- Python Ingestors And API
- Python ingestors read LoRa nodes over serial, TCP, BLE, or passive UDP multicast and POST to a Bearer-token API with GET routes for nodes, messages, telemetry, and traces.
- Prometheus And Live Updates
- A /metrics Prometheus exporter supports scrape-based monitoring, while a Server-Sent Events stream at /api/events pushes collection changes to open browsers, with polling as the fallback.
- Federation And Directory
- Instances announce and crawl peers every eight hours via signed /.well-known/potato-mesh records, publishing a directory of communities with presets, frequencies, and 24-hour active node counts per protocol.
- Docker And Nix Deployment
- Release images for amd64, arm64, and armv7 publish to GHCR, a configure.sh script prepares Compose settings, and a NixOS module runs web and ingestor services.