How 868-no/map works
868.no Map ingests Meshtastic MQTT traffic, retains packet receptions, and derives time-windowed mesh views for an interactive browser map. The principal flow is broker traffic through ingestion and PostgreSQL, then API/range retrieval into the browser’s WebAssembly engine and map or analysis panels. The README documents major capabilities whose implementation was not sampled, so their nodes use supported directories; edges are limited to documented flows or visible imports/calls.
Main entry points: App.tsx Application shell · pipeline.go Packet ingestion · worker.ts Derivation worker · lib.rs Mesh engine
Components 26
Collection and storage
- MQTT clients
backend/internal/mqtt/clients.go - Packet ingestion
backend/internal/ingest/pipeline.go - Protocol decoding
backend/internal/protocol/ports/ports.go - Packet security
backend/internal/security - Packet log
backend/internal/storage/storage.go
API and enrichment
- HTTP API
backend/internal/api/handlers.go - Live stream
backend/internal/api/stream.go - Weather enrichment
backend/internal/weather - Terrain enrichment
backend/internal/terrain - Place search
backend/internal/places
Browser derivation
- Range fetching
frontend/src/derive/range.ts - Derivation worker
frontend/src/derive/worker.ts - Window row store
frontend/src/derive/rowStore.ts - Mesh engine
frontend/engine/src/lib.rs - Observation rows
frontend/engine/src/row.rs - Evidence links
frontend/engine/src/graph.rs - Window views
frontend/engine/src/views/mod.rs
Map and analysis UI
- Application shell
frontend/src/App.tsx - Interactive map
frontend/src/map/MapView.tsx - Node details
frontend/src/features/node/NodePanel.tsx - Mesh health
frontend/src/features/health.tsx - Trends and regions
frontend/src/features/trends.tsx
Other components
- MQTT brokers
- Map viewer
- MET Norway
- Kartverket
Connections 21
- MQTT brokers → MQTT clients: supply traffic
README.md - MQTT clients → Packet ingestion: deliver packets
README.md - Packet ingestion → Protocol decoding: decode packets
README.md - Packet ingestion → Packet security: verify packets
README.md - Packet ingestion → Packet log: store receptions
README.md - Map viewer → Application shell: open map
- Application shell → Interactive map: renders
frontend/src/App.tsx - Application shell → Node details: renders
frontend/src/App.tsx - Application shell → Mesh health: renders
frontend/src/App.tsx - Application shell → Trends and regions: renders
frontend/src/App.tsx - HTTP API → Map viewer: serves map data
README.md - Live stream → Map viewer: streams updates
README.md - Derivation worker → Window row store: creates store
frontend/src/derive/worker.ts - Derivation worker → Range fetching: creates fetcher
frontend/src/derive/worker.ts - Derivation worker → Mesh engine: builds views
frontend/src/derive/worker.ts - Mesh engine → Observation rows: parses observations
frontend/engine/src/lib.rs - Mesh engine → Window views: derives outputs
frontend/engine/src/lib.rs - Window views → Evidence links: uses link evidence
frontend/engine/src/views/mod.rs - Weather enrichment → MET Norway: queries archive
README.md - Terrain enrichment → Kartverket: queries heights
README.md - Place search → Kartverket: searches names
README.md