From 1eb4bb9981ef154f20d78a3cac5c2871a34ac2e2 Mon Sep 17 00:00:00 2001 From: Fizzlepoof Date: Fri, 3 Jul 2026 02:41:58 +0000 Subject: [PATCH] meshtastic: expose embedded mqtt broker --- docs/reference/MESHTASTIC.md | 13 +++++++++---- docs/servers/NOMAD.md | 5 +++-- meshtastic/docker-compose.yaml | 1 + 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/docs/reference/MESHTASTIC.md b/docs/reference/MESHTASTIC.md index 6af4aad..38366c0 100644 --- a/docs/reference/MESHTASTIC.md +++ b/docs/reference/MESHTASTIC.md @@ -17,14 +17,17 @@ Important split: | Container | Image | Port | Purpose | |-----------|-------|------|---------| -| meshmonitor | ghcr.io/yeraze/meshmonitor:latest | 8081→3001, 4404→4404 | Main UI + backend; live compose publishes the virtual-node port directly from this container | +| meshmonitor | ghcr.io/yeraze/meshmonitor:latest | 8081→3001, 4404→4404, 1883→1883 | Main UI + backend; live compose publishes both the virtual-node port and the embedded MQTT broker directly from this container | | meshmonitor (virtual node) | — | 4404 | TCP virtual node server exposed directly by the meshmonitor container | +| meshmonitor (embedded MQTT broker) | — | 1883 | Embedded Aedes-based MQTT broker exposed directly by the meshmonitor container | | meshmonitor-tileserver | maptiler/tileserver-gl-light:latest | 8082→8080 | Offline map tiles | | meshmonitor-upgrader | docker:latest | — | Auto-upgrade watchdog | -Live runtime verified on 2026-06-13: +Live runtime verified on 2026-07-03: - `docker compose ps` on PD showed `meshmonitor`, `meshmonitor-tileserver`, and `meshmonitor-upgrader` running. - Repo compose and live runtime now agree that there is no separate `meshmonitor-mqtt-proxy` sidecar in the active stack. +- The embedded MQTT broker source `Meshcore Peachtree Observer` is configured in MeshMonitor and logs `MQTT broker listening on 0.0.0.0:1883`. +- NOMAD `meshcore-capture.service` was reconfigured to add PD MeshMonitor as `MQTT4`, and logs showed `Connected to 4 MQTT broker(s)`. ## Architecture ``` @@ -36,12 +39,14 @@ PostgreSQL (shared-postgres, db: meshmonitor) Separate path: NOMAD Heltec companion observer (`meshcore-capture.service`) - ↓ upstream MQTT brokers (LetsMesh US / EU + NashMe) + ↓ upstream MQTT brokers (LetsMesh US / EU + NashMe + PD MeshMonitor embedded broker) ``` +Note: the embedded MeshMonitor broker now accepts the NOMAD connection on `10.5.30.6:1883`, but current MeshMonitor logs still show protobuf decode warnings for MeshCore packet payloads. Treat this as confirmed broker fanout connectivity, not yet confirmed first-class MeshCore ingestion. + ## Node Connection - PD MeshMonitor compose is currently configured with `MESHTASTIC_NODE_IP=10.5.1.120` -- MeshMonitor itself publishes port `4404` for the virtual-node path; there is no separate `meshmonitor-mqtt-proxy` service in the active stack +- MeshMonitor itself publishes port `4404` for the virtual-node path and `1883` for the embedded MQTT broker; there is no separate `meshmonitor-mqtt-proxy` service in the active stack - NOMAD's companion observer is a different ingest path and should not be documented as a MeshMonitor sidecar ## Storage diff --git a/docs/servers/NOMAD.md b/docs/servers/NOMAD.md index 62277fa..43fd78f 100644 --- a/docs/servers/NOMAD.md +++ b/docs/servers/NOMAD.md @@ -235,10 +235,11 @@ These are expected to be managed by Wings/Pelican rather than a local compose fi - Observer role: - NOMAD now uses the LetsMesh companion observer flow instead of the legacy `mctomqtt` relay - The companion process connects to the Heltec locally, signs JWTs on-device, and publishes packet capture data upstream to MQTT brokers -- Service health observed on 2026-06-13: +- Service health observed on 2026-07-03: - `systemctl status meshcore-capture` shows the service active/running - Logs confirm successful serial connection to device name `Peachtree Mesh Monitor` - - Logs confirm MQTT connectivity to LetsMesh US, LetsMesh EU, and NashMe + - Logs confirm MQTT connectivity to LetsMesh US, LetsMesh EU, NashMe, and PD MeshMonitor embedded MQTT (`10.5.30.6:1883`) + - Startup logs show `Connected to 4 MQTT broker(s)` - Packet capture mode is enabled and waiting for packets - Initial-start caveat: - One installer-start attempt failed with `No such file or directory` for the `/dev/serial/by-id/...` path diff --git a/meshtastic/docker-compose.yaml b/meshtastic/docker-compose.yaml index f256d6b..cc931cd 100644 --- a/meshtastic/docker-compose.yaml +++ b/meshtastic/docker-compose.yaml @@ -5,6 +5,7 @@ services: ports: - "8081:3001" - "4404:4404" + - "1883:1883" restart: unless-stopped volumes: - /mnt/tank/docker/appdata/meshmonitor/data:/data