meshtastic: map usb meshcore companion into meshmonitor
This commit is contained in:
@@ -17,7 +17,7 @@ Important split:
|
|||||||
|
|
||||||
| Container | Image | Port | Purpose |
|
| Container | Image | Port | Purpose |
|
||||||
|-----------|-------|------|---------|
|
|-----------|-------|------|---------|
|
||||||
| 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 | ghcr.io/yeraze/meshmonitor:latest | 8081→3001, 4404→4404, 1883→1883 | Main UI + backend; live compose publishes the virtual-node port and embedded MQTT broker directly from this container, and now maps `/dev/ttyACM0` into the container for native MeshCore USB sources |
|
||||||
| meshmonitor (virtual node) | — | 4404 | TCP virtual node server exposed directly by the meshmonitor 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 (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-tileserver | maptiler/tileserver-gl-light:latest | 8082→8080 | Offline map tiles |
|
||||||
@@ -27,7 +27,8 @@ Live runtime verified on 2026-07-03:
|
|||||||
- `docker compose ps` on PD showed `meshmonitor`, `meshmonitor-tileserver`, and `meshmonitor-upgrader` running.
|
- `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.
|
- 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`.
|
- 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)`.
|
- A native MeshCore USB source `PT Meshcore` is now auto-connected in MeshMonitor via `/dev/ttyACM0` after the compose file was updated to map the device into the container.
|
||||||
|
- NOMAD `meshcore-capture.service` was later returned to its three upstream brokers after the embedded-broker test path proved unnecessary for real MeshCore ingestion.
|
||||||
|
|
||||||
## Architecture
|
## Architecture
|
||||||
```
|
```
|
||||||
@@ -39,7 +40,11 @@ PostgreSQL (shared-postgres, db: meshmonitor)
|
|||||||
|
|
||||||
Separate path:
|
Separate path:
|
||||||
NOMAD Heltec companion observer (`meshcore-capture.service`)
|
NOMAD Heltec companion observer (`meshcore-capture.service`)
|
||||||
↓ upstream MQTT brokers (LetsMesh US / EU + NashMe + PD MeshMonitor embedded broker)
|
↓ upstream MQTT brokers (LetsMesh US / EU + NashMe)
|
||||||
|
|
||||||
|
PD native MeshCore USB source (`PT Meshcore`)
|
||||||
|
↓ `/dev/ttyACM0` mapped into the meshmonitor container
|
||||||
|
↓ meshcore.js native companion backend
|
||||||
```
|
```
|
||||||
|
|
||||||
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.
|
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.
|
||||||
@@ -47,6 +52,7 @@ Note: the embedded MeshMonitor broker now accepts the NOMAD connection on `10.5.
|
|||||||
## Node Connection
|
## Node Connection
|
||||||
- PD MeshMonitor compose is currently configured with `MESHTASTIC_NODE_IP=10.5.1.120`
|
- PD MeshMonitor compose is currently configured with `MESHTASTIC_NODE_IP=10.5.1.120`
|
||||||
- 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
|
- 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
|
||||||
|
- For native MeshCore USB sources on PD, the live compose now maps `/dev/ttyACM0` directly into the `meshmonitor` container
|
||||||
- NOMAD's companion observer is a different ingest path and should not be documented as a MeshMonitor sidecar
|
- NOMAD's companion observer is a different ingest path and should not be documented as a MeshMonitor sidecar
|
||||||
|
|
||||||
## Storage
|
## Storage
|
||||||
|
|||||||
@@ -238,8 +238,8 @@ These are expected to be managed by Wings/Pelican rather than a local compose fi
|
|||||||
- Service health observed on 2026-07-03:
|
- Service health observed on 2026-07-03:
|
||||||
- `systemctl status meshcore-capture` shows the service active/running
|
- `systemctl status meshcore-capture` shows the service active/running
|
||||||
- Logs confirm successful serial connection to device name `Peachtree Mesh Monitor`
|
- Logs confirm successful serial connection to device name `Peachtree Mesh Monitor`
|
||||||
- Logs confirm MQTT connectivity to LetsMesh US, LetsMesh EU, NashMe, and PD MeshMonitor embedded MQTT (`10.5.30.6:1883`)
|
- Logs confirm MQTT connectivity to LetsMesh US, LetsMesh EU, and NashMe
|
||||||
- Startup logs show `Connected to 4 MQTT broker(s)`
|
- After removing the temporary PD embedded-broker test target, startup logs now show `Connected to 3 MQTT broker(s)`
|
||||||
- Packet capture mode is enabled and waiting for packets
|
- Packet capture mode is enabled and waiting for packets
|
||||||
- Initial-start caveat:
|
- Initial-start caveat:
|
||||||
- One installer-start attempt failed with `No such file or directory` for the `/dev/serial/by-id/...` path
|
- One installer-start attempt failed with `No such file or directory` for the `/dev/serial/by-id/...` path
|
||||||
|
|||||||
@@ -10,6 +10,8 @@ services:
|
|||||||
volumes:
|
volumes:
|
||||||
- /mnt/tank/docker/appdata/meshmonitor/data:/data
|
- /mnt/tank/docker/appdata/meshmonitor/data:/data
|
||||||
- /mnt/docker-ssd/docker/compose/meshtastic/scripts:/data/scripts
|
- /mnt/docker-ssd/docker/compose/meshtastic/scripts:/data/scripts
|
||||||
|
devices:
|
||||||
|
- /dev/ttyACM0:/dev/ttyACM0
|
||||||
env_file: .env
|
env_file: .env
|
||||||
environment:
|
environment:
|
||||||
- NODE_ENV=production
|
- NODE_ENV=production
|
||||||
|
|||||||
Reference in New Issue
Block a user