MeshCore Ninja Alpha
All software
MeshMonitor

MeshMonitor

Tool Stable

Self-hosted multi-protocol dashboard for monitoring and administering MeshCore, Meshtastic and MQTT networks, with unified maps, messaging, telemetry, automation, alerts and per-source access control.

Screenshots

Multi-source network dashboard
Unified channel messaging
Telemetry dashboards and charts
Interactive network map

Details

Kind
Tools
Maturity
Stable
Maintainer
Yeraze
Languages
typescript, javascript
Licensing
Open source
License
BSD-3-Clause
Latest version
4.11.5 · 2026-06-22

Capabilities

Platforms

dockerkuberneteslinuxmacosnixosproxmoxwindowsweb

Interfaces

WebGUIAPIHeadless

Connections

BLESerialUSBTCPMQTTHTTPWebSocket

Capabilities

MessagingContactsChannelsNode configurationRemote administrationMonitoringTelemetryPacket analysisMappingFirmware updateAutomationNotificationsBridging

Node roles

companionrepeater

Install

Releases

from GitHub · updated 2026-06-23
  1. v4.11.5 # Latest 1 day ago · 2026-06-22 21:19 UTC

    🚑 Hotfix release — supersedes v4.11.4 (retracted)

    v4.11.4 was pulled because migration 033 crashed startup on PostgreSQL and on fresh installs with column "sourceId" does not exist (#3657). v4.11.5 fixes that and carries everything that was in v4.11.4.

    If you ran v4.11.4, update to v4.11.5. The boot crash is resolved.

    🔴 Hotfix (#3657)

    • Migration 033's channel_database backfill is now guarded on the legacy sourceId column existing (it's global-by-design — migration 021 no longer adds it and 063 drops it). Fixes the PostgreSQL / fresh-install boot crash introduced in v4.11.4.

    Also included (from the retracted v4.11.4)

    Critical

    • PostgreSQL boot-loop fix (tables can have at most 1600 columns) (#3639)

    Features

    • MeshCore role icons in the map + DM node lists (#3647)
    • MeshCore favorites pinned to the top of the DM list (#3620)
    • Marker spiderfying for overlapping nodes on Map Analysis + Unified maps (#3612)
    • Channel "overshadow" warning for same-key/different-name Channel Database entries (#3644)
    • Traceroute packetId for cross-source correlation (#3623)

    Fixes

    • Node disconnects / TX failures since 4.11.x (#3637)
    • Custom-LoRa-config primary channel mislabeled "LongFast" (#3644)
    • TCP reconnect shows the real per-source address (#3611)
    • Fictitious traceroute segments removed; incoming traceroutes visible (#3622)
    • MeshCore hashtag #channel secrets over plain HTTP-via-IP + at save time (#3606, #3607)
    • MeshCore Last Heard preserved across reconnect (#3645)
    • MeshCore new nodes populate fully when heard live (#3646)
    • Unified-map neighbor lines follow the merged marker (#3642)
    • Adaptive node-type filter per source protocol (#3610)
    • Saner single-anchor position-estimate uncertainty (#3616)

    🚀 MeshMonitor v4.11.5

    📦 Installation

    Docker (recommended):

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

    🧪 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.

  2. v4.11.3 # 2 days ago · 2026-06-21 18:25 UTC

    MeshMonitor v4.11.3

    This release adds a Dead Drop / Mailbox auto-responder — asynchronous "mesh voicemail" where a node can leave a message for another node that need not be online, retrieved later with inbox commands — contributed by new contributor @TheWISPRer. It also brings MeshCore node favoriting (pin any MeshCore node to the top of the list, stored server-side), FEM LNA Mode LoRa configuration surfaced on both the Device Configuration and Remote Admin panels for amplified hardware, and the MeshCore CLI bundled into the Docker image alongside the Meshtastic CLI. On the fixes side, a PostgreSQL/MySQL crash in the MeshCore neighbor query is resolved by widening the neighbor_info timestamp columns to BIGINT (they overflowed signed int32 with millisecond-epoch values), and a proto3 boolean-elision bug that silently re-enabled uplinkEnabled/downlinkEnabled after a container restart is fixed. Position history now captures and displays SNR for directly-heard (0-hop) nodes, the intermittently-blank MeshCore auto-ack {SNR}/{ROUTE} tokens are corrected, mesh-request endpoints return a meaningful 503 (not a generic 500) when the node is disconnected, and the macOS x64 desktop build no longer ships an arm64 re2.node that crashed on Intel Macs. Upgrades are automatic — three idempotent migrations (094–096) run on boot.

    Features

    • Dead Drop / Mailbox auto-responder — async "mesh voicemail" (#3538, @TheWISPRer) — a fifth auto-responder type. DM msg <name> <text> to leave a message; retrieve with inbox, inbox play [name], inbox delete <id>, inbox clear. Per-source, configured entirely through the Auto Responder UI, messages marked played only on delivery-success, expired rows purged by the maintenance sweep.
    • MeshCore node favoriting — pin to top of list (#3595) — favorite any MeshCore node (Companion, Repeater, Room Server, …); stored server-side only (firmware has no native favorite concept), consistent with Meshtastic favorites.
    • FEM LNA Mode LoRa configuration (#3600) — surfaces Config.LoRaConfig.fem_lna_mode (Disabled / Enabled / Not Present, firmware ≥ v2.7.20) on both the Device Configuration and Remote Admin LoRa panels.
    • MeshCore CLI bundled in the Docker image (#3591) — ships meshcore-cli / meshcli alongside the Meshtastic Python CLI for a complete in-container toolkit.

    Bug Fixes

    • MeshCore neighbor query crashed on PostgreSQL/MySQL (#3602) — meshcore_neighbor_info.timestamp / .createdAt were 32-bit INTEGER/INT but store millisecond-epoch values that overflow int32; widened to BIGINT (migration 096).
    • downlinkEnabled/uplinkEnabled: false reverted to true after restart (#3598) — proto3 elides boolean false, and a ?? true fallback re-inflated user-disabled channel flags on device reconnect; both now default to false.
    • Position history dropped SNR for directly-heard (0-hop) nodes (#3593) — SNR is now captured per-fix and shown in the tooltip; the same 0 dB-drop guard was fixed on the central snr_local telemetry path.
    • MeshCore auto-ack {SNR} / {ROUTE} tokens intermittently blank (#3592) — buffered SNR/route data is now correlated to the matching packet (freshness + pathLen, consumed once) instead of leaking across messages.
    • macOS x64 (Intel) desktop crashed on launch (#3604) — the x64 DMG shipped an arm64 re2.node (ERR_DLOPEN_FAILED); the build now rebuilds re2 from source as x86_64 and backfills the missing CI arch flags.
    • Mesh-request endpoints return 503 (not 500) when disconnected (#3597) — /api/traceroute, /api/position/request, /api/nodeinfo/request, /api/neighborinfo/request, /api/telemetry/request now return a meaningful 503 with the v1-API error shape.

    Internationalization

    • Translations update from Hosted Weblate (#3579, @weblate)

    Issues Resolved

    • #3587 — Add MeshCore CLI Python application to Docker image
    • #3588 — MeshCore node favoriting (pi

  3. v4.11.2 # 3 days ago · 2026-06-21 00:02 UTC

    Hotfix for 4.11.1 startup crash (PostgreSQL / MySQL)

    4.11.1 fails to boot on PostgreSQL/MySQL backends that have an existing Auto-Acknowledge configuration. Migration 093 (the Auto-Acknowledge 2×2 matrix backfill) inserted settings rows without the table's NOT NULL createdAt/updatedAt columns, aborting database initialization with null value in column "createdAt" … violates not-null constraint — a restart loop. On SQLite the violation was silently swallowed, so the matrix settings were never written.

    Fixed

    • Migration 093 now supplies createdAt/updatedAt in all three backends (SQLite / PostgreSQL / MySQL). A regression test runs the migration against a real settings table.

    Recovery

    Affected instances recover automatically on upgrade to 4.11.2 — migration 093 was never marked complete (it threw before committing), so it re-runs and now succeeds, correctly migrating your auto-ack settings. No manual database changes are required.

    Full changelog: see CHANGELOG.md → [4.11.2].

    🚀 MeshMonitor v4.11.2

    📦 Installation

    Docker (recommended):

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

    🧪 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.

Show all 20 releases →

Project signals

popularity 2026-06-23 verification 2026-06-23
GitHub stars
537
Forks
67
Watchers
4
Open issues
15
Contributors
31
Latest downloads
25
Source available
Yes
Releases available
Yes
Signed releases
No
CI builds
Yes
Documentation
Yes
  • MeshCore devices connect over USB or TCP; BLE support uses a bridge sidecar.
  • Native Windows and macOS desktop installers are published with GitHub releases.
  • Docker images are published for amd64, arm64 and armv7.

Tags