- Python 96.8%
- Shell 2.7%
- Makefile 0.2%
- Inno Setup 0.2%
|
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): 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 |
||
|---|---|---|
| .github | ||
| .trunk | ||
| deploy | ||
| docs | ||
| scripts | ||
| src/mmrelay | ||
| tests | ||
| .bandit.yaml | ||
| .coderabbit.yml | ||
| .coveragerc | ||
| .dockerignore | ||
| .gitignore | ||
| AGENTS.md | ||
| codecov.yml | ||
| Dockerfile | ||
| LICENSE | ||
| Makefile | ||
| MANIFEST.in | ||
| mypy.ini | ||
| osv-scanner.toml | ||
| pyproject.toml | ||
| pyrightconfig.json | ||
| pytest.ini | ||
| README.md | ||
| setup.py | ||
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:
- Installation Instructions - Setup and configuration guide
- What's New in v1.3 - Latest release changes and migration info
- Migration Guide for v1.3 - Upgrading from v1.2 or earlier
- Docker Guide - Docker deployment methods
- Kubernetes Guide - Kubernetes deployment guide
- E2EE Setup Guide - Matrix End-to-End Encryption configuration
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:
Produce high-level details about your mesh:
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!
- Our project's room: #mmrelay:matrix.org
- Part of the Meshnet Club Matrix space: #meshnetclub:matrix.org
- Public Relay Room: #mmrelay-relay-room:matrix.org - Where we bridge multiple meshnets. Feel free to join us, with or without a relay!

