No description
Find a file
2026-03-09 13:42:20 -05:00
.gitea/workflows Update android-build workflow to use Node.js for version synchronization 2026-03-06 01:25:20 -06:00
android feat(dependencies): add pycodec2 wheel file for enhanced audio codec support in Android application 2026-01-01 23:35:36 -06:00
docs Update Node.js version to 24 in Raspberry Pi installation guide 2026-02-23 19:34:46 -06:00
electron Remove status indication 2026-03-06 15:58:22 -06:00
lang Update READMEs 2026-03-06 12:04:10 -06:00
logo 1.0.0 2026-01-01 15:25:23 -06:00
meshchatx Add time ago functionality to MessagesSidebar component 2026-03-09 12:36:33 -05:00
misc feat(readme): add external dependencies section listing LXMF, LXST, and RNS 2026-01-01 22:46:15 -06:00
packaging/arch Update version to 4.3.0 2026-03-06 19:42:54 -06:00
screenshots docs(README): remove overview section and associated screenshot 2026-01-02 01:30:05 -06:00
scripts Fix indentation in sync_version.js for error handling of missing version field 2026-03-06 01:27:25 -06:00
tests Code Cleanup 2026-03-09 12:37:16 -05:00
.dockerignore chore(dockerignore, gitignore): add Arch Linux packaging artifacts to ignore lists 2026-01-03 21:36:53 -06:00
.gitignore Update .gitignore to exclude private scripts directory 2026-01-10 17:54:24 -06:00
.npmrc chore(npm): update .npmrc to set node-linker to hoisted and remove fetch configuration 2026-01-03 17:20:09 -06:00
.prettierignore chore: update .gitignore and .prettierignore to include MagicMock and additional directories for better file management 2026-01-03 15:43:55 -06:00
.prettierrc 1.0.0 2026-01-01 15:25:23 -06:00
CHANGELOG.md Update CHANGELOG 2026-03-09 13:41:05 -05:00
CONTRIBUTING Add CONTRIBUTING and CONTRIBUTORS 2026-03-09 12:17:11 -05:00
CONTRIBUTORS Add CONTRIBUTING and CONTRIBUTORS 2026-03-09 12:17:11 -05:00
cx_setup.py Add CHANGELOG.md to include files in build process if it exists 2026-01-10 18:56:14 -06:00
docker-compose.dev.yml Cleanup docker files 2026-03-09 13:42:00 -05:00
docker-compose.yml Cleanup docker files 2026-03-09 13:42:00 -05:00
Dockerfile Cleanup docker files 2026-03-09 13:42:00 -05:00
eslint.config.mjs Disable specific security rules in ESLint configuration for improved flexibility 2026-02-23 19:52:46 -06:00
flake.lock feat(flake): add flake.nix and flake.lock for Reticulum-MeshChatX development environment setup 2026-01-02 19:28:10 -06:00
flake.nix Update version to 4.3.0 2026-03-06 19:42:54 -06:00
forge.config.js fix windows builds 2026-01-10 17:51:30 -06:00
LICENSE Update copyright holder in LICENSE file from Sudo-Ivan to Quad4 2026-02-28 00:48:14 -06:00
Makefile Add Makefile 2026-03-09 12:08:34 -05:00
MANIFEST.in chore(manifest): update MANIFEST.in to include backend files and exclude frontend and cache directories 2026-01-04 23:19:59 -06:00
package-legacy.json Update version to 4.3.0 2026-03-06 19:42:54 -06:00
package.json Update version to 4.3.0 2026-03-06 19:42:54 -06:00
pnpm-lock.yaml Update version to 4.3.0 2026-03-06 19:42:54 -06:00
poetry.lock Update package and dependency versions for reticulum-meshchatx to 4.2.1 2026-03-06 01:25:07 -06:00
postcss.config.js 0.1.0 2026-01-01 15:05:29 -06:00
pyproject.toml Update version to 4.3.0 2026-03-06 19:42:54 -06:00
pytest.ini chore(pytest.ini): add filterwarnings to suppress specific warnings during test execution 2026-01-03 22:10:43 -06:00
README.md Update README 2026-03-06 19:43:16 -06:00
requirements.txt Update requirements.txt 2026-03-05 16:39:05 -06:00
SECURITY.md Update SECURITY 2026-01-10 17:51:56 -06:00
tailwind.config.js feat(tailwind): add markdown renderer to content paths for Tailwind CSS configuration to support backend styling 2026-01-03 19:22:21 -06:00
Taskfile.yml Refactor Taskfile.yml to simplify Poetry commands by removing Python module prefix 2026-03-06 02:33:00 -06:00
TODO.md Update TODO link 2026-03-09 13:42:20 -05:00
vite.config.js Add Vite server configuration with API and WebSocket proxies; disable sourcemaps in build 2026-03-05 14:53:59 -06:00
vitest.config.js Update Vitest configuration: disable UI and auto-open options for a streamlined testing experience. 2026-03-05 15:24:12 -06:00

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.

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.11 and Node >=24.

Demo And Screenshots

UI Previews

Phone Network Visualiser Archives Identities

Requirements

  • Python >=3.11 (from pyproject.toml)
  • Node.js >=24 (from package.json)
  • pnpm 10.30.0 (from package.json)
  • Poetry (used by Taskfile.yml and 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 x64 and arm64 AppImage + 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:8000 on host -> container port 8000
  • ./meshchat-config -> /config for 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)

  1. Download ReticulumMeshChatX-v<version>-linux-<arch>.AppImage from releases.
  2. Make it executable and run:
chmod +x ./ReticulumMeshChatX-v*-linux-*.AppImage
./ReticulumMeshChatX-v*-linux-*.AppImage

2) Debian/Ubuntu .deb (x64/arm64)

  1. Download ReticulumMeshChatX-v<version>-linux-<arch>.deb.
  2. Install:
sudo apt install ./ReticulumMeshChatX-v*-linux-*.deb

3) RPM-based systems

  1. Download ReticulumMeshChatX-v<version>-linux-<arch>.rpm if present in the release.
  2. 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.3.0.

  • package.json is the JavaScript/Electron version source.
  • meshchatx/src/version.py is synced from package.json using:
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