github Yeraze/meshmonitor v4.18.0-rc1

pre-releaseone hour ago

MeshMonitor v4.18.0-rc1

Warning

This is a pre-release for testing. It adds database migrations (235, 236). Back up your database before upgrading, and don't run it in production unless you are helping test.

Summary

4.18.0 adds two new ways to connect without a radio. A new MeshCore MQTT broker source runs an MQTT broker inside MeshMonitor. MeshCore observers connect to it with token auth and an allowlist, and you can opt in to forwarding traffic upstream. Meshtastic sources can now send messages over MQTT with no radio attached, and a PKI nonce fix restores server-side decryption of PKI DMs. Notifications gain mesh-wide defaults with per-source overrides, and the same event heard on several sources now notifies you only once. A new Direct RF Contacts history lists nodes heard at 0 hops over RF, for both Meshtastic and MeshCore. Anonymous viewers no longer see nodes that have not consented to MQTT. Smaller additions: a warning when LoRa transparent mode is on, the nRF52 bootloader version, and gateway names on the map. Fixes cover position requests, which now carry an empty Position. They also cover MeshCore Cayenne-LPP telemetry losing sensors after an altitude record, and neighbor info mixing data across sources.

Features

  • Embedded MeshCore MQTT broker source with upstream forwarding (#6400)
  • Send Meshtastic messages over MQTT with no radio; fix PKI nonce layout (#6395)
  • Mesh-wide notification defaults, per-source overrides, cross-source dedup (#6394)
  • Hide no-MQTT-consent nodes from anonymous viewers (#6393)
  • Warn on LoRa transparent mode; show nRF52 bootloader version (#6392)
  • Direct RF Contacts history for Meshtastic and MeshCore (#6388)
  • Gateway names in the map's gateway legend and popup chips (#6387)

Bug Fixes

  • Scope neighbor info by source before picking the latest per pair (#6396)
  • Send position requests with an empty Position (#6391)
  • Decode Cayenne-LPP telemetry locally so altitude no longer truncates sensors (#6390)

Tests

  • Scale the reverse-geocode timing budget under coverage (#6385)

Issues Resolved

  • #6197 Embedded MeshCore MQTT broker
  • #4305 MQTT-native ("nodeless") outbound send path
  • #5729 Unified mesh-scoped notifications with cross-source dedup
  • #6210 Direct RF Contacts history
  • #6181 Detect and warn on LoRaConfig.transparent_mode
  • #6321 DeviceMetadata.bootloader_version
  • #6386 Gateway name in map popups and legend
  • #6047 Position exchange unanswered when the request carries coordinates
  • #6389 MeshCore remote telemetry sensors missing after an altitude record

Upgrade Notes

  • Migration 235 merges per-source push subscriptions into one per user and endpoint. Existing per-source notification settings become overrides of a new mesh-wide default.
  • Migration 236 adds the mqtt_native_identities table.
  • The MeshCore MQTT broker listens on port 1884 by default. Docker and Helm do not expose that port yet, so map it yourself if you use the broker.

Full Changelog: v4.17.3...v4.18.0-rc1

๐Ÿš€ MeshMonitor v4.18.0-rc1

๐Ÿ“ฆ Installation

Docker (recommended):

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

๐Ÿงช 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.