github Yeraze/meshmonitor v4.5.0
MeshMonitor v4.5.0 — MeshCore Levels Up

7 hours ago

MeshCore graduates from "experimental tab" to first-class source in MeshMonitor. It sits in the dashboard sidebar next to your Meshtastic nodes, has its own per-source permissions, its own multi-pane page, its own telemetry pipeline, and contributes contacts to the unified dashboard map. The 4.5 UI source-add flow is USB-only for MeshCore (Companion or Repeater); TCP-connected companions still work via the legacy env-var bootstrap path.

Source model

  • Per-source MeshCore managers — each MeshCore device is its own source row, manageable from the Sources sidebar with no container restart (#3005, #3014)
  • Permissions, expanded — the legacy global + "meshcore" + permission is gone; migration 058 expanded every grant into the per-source sourcey set (connection, configuration, nodes, messages)
  • Composite primary key on + "meshcore_nodes" + (sourceId, publicKey) — same device under two sources is tracked independently (#3023)

Dashboard + map

  • Styled source cards matching the Meshtastic visual vocabulary (#3016)
  • Unified dashboard map enumerates every MeshCore source and renders contacts with valid coordinates (#3015)

MeshCore page

  • Multi-pane redesign — Nodes / Channels / Direct Messages / Configuration / Node Info (#3005)
  • Contact-detail panel below each DM thread — hops, RSSI/SNR, last heard, position, full public key (#3017)
  • UI permission gating — write controls dim and explain themselves for read-only users (#3019)
  • Visual alignment with Meshtastic Info / Channels / Nodes rows (#3021)

Telemetry

  • Local-node telemetry — background poller samples + "GetStats core/radio/packets" + , + "GetDeviceTime" + , + "DeviceQuery" + every 5 minutes (configurable, on-device, no RF) writing batched + "mc_*" + rows into the shared telemetry table (#3020)
  • Node Info page graphing across 1h / 6h / 24h / 3d / 7d ranges
  • Telemetry-mode toggles — device-side base / loc / env classes from the Configuration view (#3018)
  • Per-node remote telemetry retrieval — scheduled + "req_telemetry_sync" + pulls with a per-node interval, gated by a shared 60-second cross-mesh throttle, with decoded LPP values written into the telemetry store (#3022)

Configuration

  • Radio preset selector from the official MeshCore preset list, with a Custom fallback (#3015)
  • Persistent radio params — bridge propagates device-side errors instead of silently returning success
  • Staged edits no longer revert during live push updates
  • Location configuration + advert-location policy
  • Channel-message senders extracted from the + ""Name: body"" + prefix and shown separately

Still Early

MeshCore in MeshMonitor remains new and basic. Known gaps:

  • Repeater / Room Server parity trails Companion — local-telemetry poller, remote-telemetry scheduler, and telemetry-mode toggles all need a Companion on the source side
  • TCP MeshCore via the UI isn't shipped — TCP companions are env-var bootstrap only in 4.5
  • No MeshCore remote-admin equivalent
  • No scheduler integrations for auto-responder / auto-announce / auto-traceroute (primitives wired, user-facing features next)
  • Minimal MeshCore notifications — apprise and push aren't first-class
  • No MeshCore-specific map affordances yet
  • MQTT source type still planned

The plan is incremental — one or two MeshCore features per release, keep aligning the UI vocabulary with Meshtastic, gradually close the parity gap.


📖 Updated MeshCore docs · 📝 Full 4.5 blog post

🚀 MeshMonitor v4.5.0

📦 Installation

Docker (recommended):

docker run -d \
  --name meshmonitor \
  -p 8080:3001 \
  -v meshmonitor-data:/data \
  ghcr.io/Yeraze/meshmonitor:4.5.0

🧪 Testing

✅ All tests passed
✅ TypeScript checks passed
✅ Docker images built for linux/amd64, linux/arm64, linux/arm/v7

📋 Changes

See commit history for detailed changes.

Don't miss a new meshmonitor release

NewReleases is sending notifications on new releases.