// the find
Yeraze/meshmonitor
Web tool for monitoring Mesh Node Deployment over TCP/HTTP
MeshMonitor is a self-hosted dashboard for monitoring off-grid mesh networks — Meshtastic, MeshCore, and MQTT — from one place, built on React/Express/TypeScript with Drizzle ORM for storage. It's aimed at people running their own mesh nodes (ham radio, prepper, off-grid community networks) who want node tracking, mapping, and alerting instead of SSHing into a device to check status.
Multi-protocol support is real, not just marketing — Meshtastic over TCP/Serial/BLE, MeshCore over USB/TCP, and MQTT bridging all unify into one node/message model with per-source permissions and schedulers, which is a genuinely hard integration problem to get right. The proxy-auth implementation goes further than most self-hosted apps bother to: it handles JWT groups-claim normalization across different IdP shapes (string arrays, role objects) and documents the Cloudflare Access JWT subset-claims gotcha explicitly, which means someone wrote this after actually debugging it in production. Multi-database support (SQLite/Postgres/MySQL via Drizzle) plus a Helm chart, self-upgrade with rollback, and automated backup/restore shows this is being run for real, not just demoed.
Email uniqueness isn't enforced at the schema level — the README itself flags that duplicate emails silently pick 'the first match,' which is the kind of thing that turns into an account-takeover footgun once proxy auto-provisioning is in play. The feature list has sprawled hard (3D terrain rendering, solar battery forecasting, geofence automation, a virtual node TCP server, an embedded MQTT broker) for what reads like a small maintainer team, and that breadth is a maintenance and attack-surface risk more than a selling point. The proxy-auth security model leans entirely on the operator getting TRUST_PROXY and network isolation right — get either wrong and you've got header-spoofable auth, and the docs warn about it rather than the app refusing to boot in an unsafe config. Local dev requires git submodules (`--recurse-submodules`), which is a small but real source of 'why is my build broken' issues for new contributors.