meshtastic: expose embedded mqtt broker
Some checks failed
secret-guardrails / artifact-secret-scan (push) Has been cancelled
secret-guardrails / gitleaks (push) Has been cancelled

This commit is contained in:
Fizzlepoof
2026-07-03 02:41:58 +00:00
parent 43b94813ca
commit 1eb4bb9981
3 changed files with 13 additions and 6 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -5,6 +5,7 @@ services:
ports:
- "8081:3001"
- "4404:4404"
- "1883:1883"
restart: unless-stopped
volumes:
- /mnt/tank/docker/appdata/meshmonitor/data:/data