A self-hosted dashboard and API for Meshtastic mesh networks.
Connect a device via USB, and get a live map, node list, analytics, and messaging — all from your browser.
| Nodes | Map | Analytics |
|---|---|---|
![]() |
![]() |
![]() |
MeshtasticForeman is a Node.js daemon that maintains a persistent serial connection to a Meshtastic device, stores everything in a local PostgreSQL-compatible database, and serves a React frontend for exploring your mesh. It is a full alternative to client.meshtastic.org that you run yourself.
It also acts as an MQTT gateway — if you set a broker in .env, it re-encrypts and publishes mesh traffic so nRF52-based devices (no built-in WiFi) can appear on the public map.
Beta software and built with AI. Goals are clear, but it is still evolving. Built in partnership with AI — if that bothers you, this probably isn't for you.
cp .env.example .env # set MESHTASTIC_PORT at minimum
pnpm install
./start-both.sh # or start-both.ps1 on WindowsThen open http://localhost:3173 in your browser.
Pre-built installers for Windows and Linux are on the Releases page.
| Setup & configuration | Full env vars, installer options, production build |
| Architecture | How the daemon, frontend, and MQTT gateway fit together |
| API reference | Every REST endpoint and WebSocket command with inputs and return shapes |
| Roadmap | What works today and what's being explored |
Patches, bug reports, and feature suggestions are welcome. Fork the repo, make your change on a branch, and open a pull request with a clear description. Not sure where to start? Open an issue first — no PR required to start a conversation.
See CONTRIBUTING.md for setup, workflow, and PR expectations.
None of this would exist without the Meshtastic team and community — they built the firmware, protocol, and client libraries this project builds on top of.
Setup instructions for this project are maintained in SETUP.md. The setup documentation above may be outdated — please refer to SETUP.md for the current process.


