Static web app for direct Meshtastic config work:
- connect over USB serial, Web Bluetooth, or HTTP(S)
- download the node's writable config as YAML
- compare live config to a desired YAML document
- upload the desired config back to the node
Serve this directory from a static web server:
python3 -m http.server 8420Then open:
http://localhost:8420
Or use the launcher script:
./scripts/launch.shBuild and run the container (nginx, non-root, plain HTTP on 8420):
docker compose up -d --buildThen open http://localhost:8420. The container serves plain HTTP and is meant to
sit behind a TLS-terminating proxy (e.g. cloudflared); the proxy's HTTPS hostname
provides the secure context Web Serial / Web Bluetooth need.
The build file is named Containerfile (the OCI/Podman standard). docker compose
picks it up automatically. For a raw build, name it explicitly:
docker build -f Containerfile -t meshconfig .A sample systemd unit is included at systemd/meshconfig.service.
It assumes the app is installed at /opt/meshconfig and uses a dynamic service user, so you only need to adjust the install path if yours is different.
- Web Serial and Web Bluetooth require a Chromium-based browser and a secure context.
- The app accepts YAML or JSON in the desired editor. Snake-case top-level keys from the Meshtastic Python config format are supported.
- The desired-config dropdown loads preset files from this repo, and
MeshOregonis the default preset on startup.
Meshtastic® is a registered trademark of Meshtastic LLC. Meshtastic software components are released under various licenses, see GitHub for details. No warranty is provided - use at your own risk.