Reticulum MeshChatX
Русский | Deutsch | Italiano | 中文 | 日本語
A extensively modified and feature-rich fork of Reticulum MeshChat by Liam Cottle.
This project is independent from the original Reticulum MeshChat project and is not affiliated with it.
- Source: git.quad4.io/RNS-Things/MeshChatX
- Releases: git.quad4.io/RNS-Things/MeshChatX/releases
- Changelog:
CHANGELOG.md
Important Notes
- Uses LXST
- Replaced Peewee ORM with raw SQL.
Warning
MeshChatX is not guaranteed to be wire/data compatible with older Reticulum MeshChat releases. Back up data before migration/testing.
Warning
Legacy systems are not fully supported yet. Current baseline is Python
>=3.11and Node>=24.
Demo And Screenshots
UI Previews
Requirements
- Python
>=3.11(frompyproject.toml) - Node.js
>=24(frompackage.json) - pnpm
10.30.0(frompackage.json) - Poetry (used by
Taskfile.ymland CI workflows)
Nix (flake.nix)
This repo includes a Nix flake at flake.nix.
Enter the dev shell
nix develop
The flake dev shell provides Python, Poetry, Node, pnpm, Task, packaging tools (rpm, dpkg, fakeroot), Android build tools, and Docker tooling.
Build the default Nix package
nix build .#default
Typical workflow inside nix develop
task install
task lint:all
task test:all
task build:all
Install Methods
Use the method that matches your environment and packaging preference.
| Method | Includes frontend assets | Architectures | Best for |
|---|---|---|---|
| Docker image | Yes | linux/amd64, linux/arm64 |
Fastest setup on Linux servers/hosts |
Python wheel (.whl) |
Yes | Any Python-supported architecture | Headless/web-server install without Node build |
| Linux AppImage | Yes | x64, arm64 |
Portable desktop use |
Debian package (.deb) |
Yes | x64, arm64 |
Debian/Ubuntu installs |
RPM package (.rpm) |
Yes | CI-runner dependent for published artifact | Fedora/RHEL/openSUSE style systems |
| From source | Built locally | Host architecture | Development and custom builds |
Notes:
- The release workflow explicitly builds Linux
x64andarm64AppImage + DEB. - RPM is also attempted by release workflow and uploaded when produced.
Quick Start: Docker
docker compose up -d
Default compose file maps:
127.0.0.1:8000on host -> container port8000./meshchat-config->/configfor persistence
If your local meshchat-config permissions block writes, fix ownership:
sudo chown -R 1000:1000 ./meshchat-config
Install from Release Artifacts
1) Linux AppImage (x64/arm64)
- Download
ReticulumMeshChatX-v<version>-linux-<arch>.AppImagefrom releases. - Make it executable and run:
chmod +x ./ReticulumMeshChatX-v*-linux-*.AppImage
./ReticulumMeshChatX-v*-linux-*.AppImage
2) Debian/Ubuntu .deb (x64/arm64)
- Download
ReticulumMeshChatX-v<version>-linux-<arch>.deb. - Install:
sudo apt install ./ReticulumMeshChatX-v*-linux-*.deb
3) RPM-based systems
- Download
ReticulumMeshChatX-v<version>-linux-<arch>.rpmif present in the release. - Install with your distro tool:
sudo rpm -Uvh ./ReticulumMeshChatX-v*-linux-*.rpm
4) Python wheel (.whl)
Release wheels include the built web assets.
pip install ./reticulum_meshchatx-*-py3-none-any.whl
meshchat --headless
pipx is also supported:
pipx install ./reticulum_meshchatx-*-py3-none-any.whl
Run from Source (Web Server Mode)
Use this when developing or when you need a local custom build.
git clone https://git.quad4.io/RNS-Things/MeshChatX.git
cd MeshChatX
corepack enable
pnpm install
pip install poetry
poetry install
pnpm run build-frontend
poetry run meshchat --headless --host 127.0.0.1
Build Desktop Packages from Source
These scripts are defined in package.json and Taskfile.yml.
Linux x64 AppImage + DEB
pnpm run dist:linux-x64
Linux arm64 AppImage + DEB
pnpm run dist:linux-arm64
RPM
pnpm run dist:rpm
Or through Task:
task dist:fe:rpm
Architecture Support Summary
- Docker image:
amd64,arm64 - Linux AppImage:
x64,arm64 - Linux DEB:
x64,arm64 - Windows:
x64,arm64(build scripts available) - macOS: build scripts available (
arm64,universal) for local build environments - Android: build workflow and Android project are present in this repository
Android
Use the dedicated docs:
Configuration
MeshChatX supports both CLI args and env vars.
| Argument | Environment Variable | Default | Description |
|---|---|---|---|
--host |
MESHCHAT_HOST |
127.0.0.1 |
Web server bind address |
--port |
MESHCHAT_PORT |
8000 |
Web server port |
--no-https |
MESHCHAT_NO_HTTPS |
false |
Disable HTTPS |
--headless |
MESHCHAT_HEADLESS |
false |
Do not auto-launch browser |
--auth |
MESHCHAT_AUTH |
false |
Enable basic auth |
--storage-dir |
MESHCHAT_STORAGE_DIR |
./storage |
Data directory |
--public-dir |
MESHCHAT_PUBLIC_DIR |
auto/bundled | Frontend files directory (needed for source installs without bundled assets) |
Development
Common tasks from Taskfile.yml:
task install
task lint:all
task test:all
task build:all
Versioning
Current version in this repo is 4.2.1.
package.jsonis the JavaScript/Electron version source.meshchatx/src/version.pyis synced frompackage.jsonusing:
pnpm run version:sync
For release consistency, keep version fields aligned where required (package.json, pyproject.toml, meshchatx/__init__.py).
Security
Security and integrity details:
SECURITY.md- Built-in integrity checks and HTTPS/WSS defaults in app runtime
- CI scanning workflows in
.gitea/workflows/
Credits
- Liam Cottle - Original Reticulum MeshChat
- RFnexus - micron parser JavaScript work
- markqvist - Reticulum, LXMF, LXST



