No description
  • Python 96.8%
  • Shell 2.7%
  • Makefile 0.2%
  • Inno Setup 0.2%
Find a file
Jeremiah K 30fa98a766
Some checks failed
Helm Chart Lint / helm-lint (push) Has been cancelled
Lint Container Paths / check-container-paths (push) Has been cancelled
Meshtasticd Integration / meshtasticd-integration (push) Has been cancelled
Tests and Coverage / test (3.10) (push) Has been cancelled
Tests and Coverage / test (3.11) (push) Has been cancelled
Tests and Coverage / test (3.12) (push) Has been cancelled
Fix docs inconsistencies; update ready-file location and image version to 1.3.3 (#505)
* fix(docs): comprehensive documentation audit — resolve 26 inconsistencies

Align docs, deployment manifests, sample config, and CLI constants
with actual code behavior. Key corrections:

- K8s: fix label selectors (app=mmrelay), volume instructions, serial security
- Helm: replace nonexistent credentials section with matrixAuth bootstrap
- Docker: align healthcheck (freshness-based, 5s timeout), fix SELinux guidance
- Sample config: correct defaults (database path, log size, message delay, port)
- CLI: register 8 missing CLI_COMMANDS entries
- Docs: remove false OIDC/MAS claims, fix Python version (3.9→3.10),
  fix Windows path (%APPDATA%→%LOCALAPPDATA%), add missing env vars,
  add undocumented CLI commands to INSTRUCTIONS.md
- Ready file: unify path to /tmp/mmrelay-ready across Dockerfile, K8s, Helm

* chore: bump deployment tags to 1.3.3 and add credentials/store-path removal plan

Update example image tags from 1.3.0 to 1.3.3 across K8s kustomization,
Helm chart (version + appVersion), Helm values, and docs. Move the
credentials_path/store_path removal implementation plan to docs/dev/.

* fix(deploy): complete ready-file migration to /tmp/mmrelay-ready

Remove orphaned /run/mmrelay emptyDir volume mounts from K8s and Helm
deployment manifests (now covered by existing /tmp emptyDir). Update
all remaining doc references in KUBERNETES.md and HELM.md.

* fix(config): remove stale credentials_path references

Remove misleading credentials_path tip and commented-out key from
sample_config.yaml (MMRELAY_HOME already controls this path).
Remove MMRELAY_CREDENTIALS_PATH from env var table in
ADVANCED_CONFIGURATION.md (being deprecated).

* fix(docs): remove --logfile from INSTRUCTIONS.md CLI flags

The CI regression guard forbids --logfile in container-facing docs
as it is a legacy flag. Users should use --log-level and
logging.filename in config instead.

* fix: address final review feedback — probe env vars, templated tag, markdown lint, regression test

* docs: fix deployment and migration guidance

* docs: trim sample config guidance

* docs: trim sample config further

* Revert "docs: trim sample config further"

This reverts commit a61128405fd3a74be4a20b3ffea8ac57c1a111e6.

* Update sample_config.yaml

* Linting

* docs: tighten review follow-up guidance

* docs: clarify bootstrap opt-in and preserve deprecation-warning verification

- mark Helm bootstrap mode as optional and gated by matrixAuth.enabled=true
- fix verification steps so MMRELAY_CREDENTIALS_PATH is still allowed in deprecation-warning paths
- keep sample auth guidance pointed at auth login/bootstrap flows; legacy config-file auth remains compatibility-only and is not documented as a normal alternative

* fix(runtime): validate parent PID and improve error handling in service detection
2026-04-10 12:01:08 -05:00
.github Migrate build configuration to centralized pyproject.toml (#504) 2026-04-10 07:25:19 -05:00
.trunk Fix docs inconsistencies; update ready-file location and image version to 1.3.3 (#505) 2026-04-10 12:01:08 -05:00
deploy Fix docs inconsistencies; update ready-file location and image version to 1.3.3 (#505) 2026-04-10 12:01:08 -05:00
docs Fix docs inconsistencies; update ready-file location and image version to 1.3.3 (#505) 2026-04-10 12:01:08 -05:00
scripts Harden startup readiness sequencing and drain completion signaling; refine ping plugin behavior (#501) 2026-04-09 08:18:41 -05:00
src/mmrelay Fix docs inconsistencies; update ready-file location and image version to 1.3.3 (#505) 2026-04-10 12:01:08 -05:00
tests Fix docs inconsistencies; update ready-file location and image version to 1.3.3 (#505) 2026-04-10 12:01:08 -05:00
.bandit.yaml Centralize hardcoded literals and magic numbers into constants (#480) 2026-03-29 13:03:14 -05:00
.coderabbit.yml Matrix message retry idempotency & improve BLE duplicate-connect recovery (#487) 2026-03-31 18:47:15 -05:00
.coveragerc Matrix E2EE Support (#154) 2025-08-22 15:51:19 -05:00
.dockerignore Add Complete Docker Support and Improved Disconnection Detection (#199) 2025-07-08 08:00:23 -05:00
.gitignore Fix docs inconsistencies; update ready-file location and image version to 1.3.3 (#505) 2026-04-10 12:01:08 -05:00
AGENTS.md Migrate build configuration to centralized pyproject.toml (#504) 2026-04-10 07:25:19 -05:00
codecov.yml refactor: Implement MMRelay v1.3 directory redesign and migration support (#436) 2026-02-13 09:55:26 -06:00
Dockerfile Fix docs inconsistencies; update ready-file location and image version to 1.3.3 (#505) 2026-04-10 12:01:08 -05:00
LICENSE Merge main with GPLv3 license fixes 2025-07-28 06:44:15 -05:00
Makefile refactor: Implement MMRelay v1.3 directory redesign and migration support (#436) 2026-02-13 09:55:26 -06:00
MANIFEST.in Migrate build configuration to centralized pyproject.toml (#504) 2026-04-10 07:25:19 -05:00
mypy.ini refactor: Implement MMRelay v1.3 directory redesign and migration support (#436) 2026-02-13 09:55:26 -06:00
osv-scanner.toml Centralize hardcoded literals and magic numbers into constants (#480) 2026-03-29 13:03:14 -05:00
pyproject.toml Migrate build configuration to centralized pyproject.toml (#504) 2026-04-10 07:25:19 -05:00
pyrightconfig.json Documentation updates, type annotations, and BLE improvements (#409) 2026-01-23 21:43:34 -06:00
pytest.ini Refactor core plugins (#359) 2025-12-01 12:50:48 -06:00
README.md Migrate build configuration to centralized pyproject.toml (#504) 2026-04-10 07:25:19 -05:00
setup.py Migrate build configuration to centralized pyproject.toml (#504) 2026-04-10 07:25:19 -05:00

MMRelay

(Meshtastic <=> Matrix Relay)

A powerful and easy-to-use relay between Meshtastic devices and Matrix chat rooms, allowing seamless communication across platforms. This opens the door for bridging Meshtastic devices to many other platforms.

Features

  • Bidirectional message relay between Meshtastic devices and Matrix chat rooms, capable of supporting multiple meshnets
  • Supports serial, network, and BLE (now too!) connections for Meshtastic devices
  • Custom fields are embedded in Matrix messages for relaying messages between multiple meshnets
  • Truncates long messages to fit within Meshtastic's payload size
  • SQLite database to store node information for improved functionality
  • Customizable logging level for easy debugging
  • Configurable through a simple YAML file
  • Supports mapping multiple rooms and channels 1:1
  • Relays messages to/from an MQTT broker, if configured in the Meshtastic firmware
  • Bidirectional replies and reactions support
  • Native Docker support
  • 🔐 Supports encrypted Matrix rooms (Matrix E2EE) 🔐
  • 📁 Unified directory structure 📁 NEW in v1.3!

Encryption note: MMRelay supports encrypted Matrix rooms (Matrix E2EE). For details on how this works and its security implications, see the E2EE Setup Guide.

Documentation

MMRelay supports multiple deployment methods including pip/pipx, Docker, and Kubernetes. For complete setup instructions and all deployment options, see:


Plugins

MMRelay supports plugins for extending its functionality, enabling customization and enhancement of the relay to suit specific needs.

Core Plugins

Generate a map of your nodes:

Map Plugin Screenshot

Produce high-level details about your mesh:

Mesh Details Screenshot

See the full list of core plugins.

Community & Custom Plugins

MMRelay's plugin system allows you to extend functionality in two ways:

  • Custom Plugins: Create personal plugins for your own use, stored in ~/.mmrelay/plugins/custom/
  • Community Plugins: Share your creations with others or use plugins developed by the community

Check the Community Plugins Development Guide in our wiki to get started.

Visit the Community Plugins List!

Install a Community Plugin

Add the repository under the community-plugins section in config.yaml:

community-plugins:
  example-plugin:
    active: true
    repository: https://github.com/jeremiah-k/mmr-plugin-template.git
    tag: main

Plugin System

Plugins make it easy to extend functionality without modifying the core program. MMRelay features a powerful plugin system with standardized locations:

  • Core Plugins: Pre-installed with the package
  • Custom Plugins: Your own plugins in ~/.mmrelay/plugins/custom/
  • Community Plugins: Third-party plugins in ~/.mmrelay/plugins/community/

Getting Started with Matrix

See our Wiki page Getting Started With Matrix & MMRelay.


Already on Matrix?

Join us!