No description
Find a file
2026-01-10 17:51:30 -06:00
.gitea/workflows chore(workflows): remove push and pull_request triggers from bench.yml 2026-01-07 19:22:00 -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 meshchatx docs 2026-01-07 19:21:59 -06:00
electron fix windows builds 2026-01-10 17:51:30 -06:00
logo 1.0.0 2026-01-01 15:25:23 -06:00
meshchatx feat(tutorial): update tutorial modal with propagation mode step and auto-select option for preferred propagation node 2026-01-08 19:29:22 -06:00
misc feat(readme): add external dependencies section listing LXMF, LXST, and RNS 2026-01-01 22:46:15 -06:00
packaging/arch feat(docker): add Dockerfile for Arch Linux package build and CI workflow for automated packaging 2026-01-03 21:36:33 -06:00
screenshots docs(README): remove overview section and associated screenshot 2026-01-02 01:30:05 -06:00
scripts fix windows builds 2026-01-10 17:51:30 -06:00
tests feat(tests): add unit tests for auto propagation API and logic 2026-01-08 19:29:30 -06:00
.dockerignore chore(dockerignore, gitignore): add Arch Linux packaging artifacts to ignore lists 2026-01-03 21:36:53 -06:00
.gitignore chore: add backend-manifest.json to .gitignore 2026-01-07 19:21:59 -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 [skip ci] 2026-01-07 19:29:07 -06:00
cx_setup.py fix windows builds 2026-01-10 17:51:30 -06:00
docker-compose.dev.yml docs(docker-compose): update comments to clarify automated permission handling and user execution for reticulum-meshchatx 2026-01-04 00:03:36 -06:00
docker-compose.yml chore(docker): update Docker configuration 2026-01-03 22:12:39 -06:00
Dockerfile chore(Dockerfile): upgrade pip to version 25.3 due to vuln in older version. 2026-01-08 12:39:31 -06:00
Dockerfile.arch-builder feat(docker): add Dockerfile for Arch Linux package build and CI workflow for automated packaging 2026-01-03 21:36:33 -06:00
eslint.config.mjs chore(eslint): add additional directories to ignore patterns 2026-01-04 00:18:11 -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 chore(flake.nix): remove Flatpak packaging dependencies from flake configuration 2026-01-03 21:36:57 -06:00
forge.config.js fix windows builds 2026-01-10 17:51:30 -06:00
LICENSE 0.1.0 2026-01-01 15:05:29 -06: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.json fix windows builds 2026-01-10 17:51:30 -06:00
pnpm-lock.yaml chore(deps): update dependencies in poetry.lock, pyproject.toml, and requirements.txt to latest versions including hypothesis, lxmf, rns, and urllib3 2026-01-07 19:21:59 -06:00
poetry.lock chore(dependencies): update rns package to version 1.1.2 and specify lxst version 2026-01-08 12:14:26 -06:00
postcss.config.js 0.1.0 2026-01-01 15:05:29 -06:00
pyproject.toml chore(dependencies): update rns package to version 1.1.2 and specify lxst version 2026-01-08 12:14:26 -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 Merge branch 'master' into massive-changes 2026-01-08 01:11:25 +00:00
requirements.txt chore(deps): update dependencies in poetry.lock, pyproject.toml, and requirements.txt to latest versions including hypothesis, lxmf, rns, and urllib3 2026-01-07 19:21:59 -06:00
SECURITY.md chore(security): lint 2026-01-05 11:48:12 -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 fix windows builds 2026-01-10 17:51:30 -06:00
TODO.md chore: update TODO list by removing rootless docker images and adding sideband plugins support 2026-01-07 19:21:59 -06:00
vite.config.js chore(vite): add asset cleanup before build to prevent accumulation of old files 2026-01-05 11:47:46 -06:00
vitest.config.js feat(vitest): add setupFiles configuration to Vitest for frontend tests 2026-01-04 14:59:27 -06:00

Reticulum MeshChatX

Important

v4 coming soon with release builds for Linux and Windows (Appimage and EXE portable/installer). As well as updated container images and wheel packages. You can test v4 using container by replacing normal image with git.quad4.io/rns-things/meshchatx-dev:dev

Contact me for issues, ideas and how to get an account for this gitea instance:

LXMF: 7cc8d66b4f6a0e0e49d34af7f6077b5a
XMPP: ivan@chat.quad4.io
Email: ivan@quad4.io

For issues contact me over LXMF: `73 CI Tests Build Docker

A Reticulum MeshChat fork from the future.

This project is separate from the original Reticulum MeshChat project, and is not affiliated with the original project.

Warning

Backup your reticulum-meshchat folder before using! MeshChatX will attempt to auto-migrate whatever it can from the old database without breaking things, but it is best to keep backups.

Goal

To provide everything you need for Reticulum, LXMF, and LXST in one beautiful and feature-rich application.

  • Desktop app (Linux, Windows, macOS)
  • Self-host on your server easily with or without containers
  • Mobile app (one can dream)
  • Reliable, secure, fast and easy to use.

Note on macOS: You will need to manually build or use containers since I do not have a macOS machine or runner.

The easiest way to get MeshChatX running is using Docker. Our official image is multi-arch and supports linux/amd64 and linux/arm64 (Raspberry Pi, etc.).

# Pull and run the latest image
docker pull git.quad4.io/rns-things/meshchatx:latest

# Run MeshChatX in a Docker container
docker run -d \
  --name=meshchatx \
  -p 8000:8000 \
  -v $PWD/storage:/app/storage \
  -v $PWD/public:/app/public \
  # --network=host \  # Uncomment for autointerface support
  git.quad4.io/rns-things/meshchatx:latest

# Or use Docker Compose for an even easier setup
docker compose up -d

Check releases for pre-built binaries (AppImage, DEB, EXE) if you prefer standalone apps. (coming soon)

Major Features

  • Full LXST Support: Custom voicemail, phonebook, contact sharing, and ringtone support.
  • Multi-Identity: Switch between multiple Reticulum identities seamlessly.
  • Modern UI/UX: A completely redesigned, intuitive interface.
  • Integrated Maps: OpenLayers with MBTiles support for offline maps.
  • Security: Read more about it in the Security section.
  • Offline Docs: Access Reticulum documentation without an internet connection.
  • Expanded Tools: Includes RNStatus, RNProbe, RNCP, Micron Editor, Paper Message Generator and a Translator.
  • Page Archiving: Built-in crawler and browser for archived pages offline.
  • Banishment: Banish LXMF users, Telephony, and NomadNet Nodes. (and unbanish them)
  • i18n: Support for English, German, and Russian.

Screenshots

Telephony & Calling

Phone

Phone

Active Call

Calling

Call Ended

Call Ended

Voicemail

Voicemail

Ringtone Settings

Ringtone

Networking & Visualization

Network Visualiser

Network Visualiser Network Visualiser 2

Page Archives

Archives Browser

Archives

Viewing Archived Page

Archive View

Tools & Identities

Tools

Tools

Identity Management

Identities

Pipx / Global Installation

If you prefer to install MeshChatX globally using pipx, pip or uv, you can do so directly from the repository. However, you must specify the path to your built frontend files using the --public-dir flag or MESHCHAT_PUBLIC_DIR environment variable, as the static files are not bundled with the source code. The release .whl packages include the built frontend files and also there is a seperate frontend zip to grab and use.

  1. Install MeshChatX:

    pipx install git+https://git.quad4.io/RNS-Things/MeshChatX
    
  2. Run with Frontend Path:

    # Replace /path/to/MeshChatX/meshchatx/public with your actual path
    meshchat --public-dir /path/to/MeshChatX/meshchatx/public
    

Manual Installation (From Source)

If you want to run MeshChatX from the source code locally:

  1. Clone the repository:

    git clone https://git.quad4.io/RNS-Things/MeshChatX
    cd MeshChatX
    
  2. Build the Frontend: Requires Node.js and pnpm.

    corepack enable
    pnpm install
    pnpm run build-frontend
    
  3. Install & Run Backend: Requires Python 3.10+ and Poetry.

    pip install poetry
    poetry install
    poetry run meshchat --headless --host 127.0.0.1
    

Configuration

MeshChatX can be configured via command-line arguments or environment variables.

Argument Environment Variable Default Description
--host MESHCHAT_HOST 127.0.0.1 Web server address
--port MESHCHAT_PORT 8000 Web server port
--no-https MESHCHAT_NO_HTTPS false Disable HTTPS
--headless MESHCHAT_HEADLESS false Don't launch browser
--auth MESHCHAT_AUTH false Enable basic auth
--storage-dir MESHCHAT_STORAGE_DIR ./storage Data directory
--public-dir MESHCHAT_PUBLIC_DIR - Frontend files path

Development

We use Task for automation.

Task Description
task install Install all dependencies
task run Run the application
task dev Run the application in development mode
task check Run format, lint and test
task lint Run all linters (Python & Frontend)
task lint-python Lint Python code only
task lint-frontend Lint frontend code only
task format Format all code (Python & Frontend)
task format-python Format Python code only
task format-frontend Format frontend code only
task test Run all tests
task test:cov Run tests with coverage reports
task test-python Run Python tests only
task test-frontend Run frontend tests only
task build Build frontend and backend
task build-frontend Build only the frontend
task wheel Build Python wheel package
task compile Compile Python code to check for syntax errors
task build-docker Build Docker image using buildx
task run-docker Run Docker container using docker-compose
task build-appimage Build Linux AppImage
task build-exe Build Windows portable executable
task build-electron-linux Build Linux Electron app
task build-electron-windows Build Windows Electron apps
task android-prepare Prepare Android build
task android-build Build Android APK
task build-flatpak Build Flatpak package
task forge-start Run the application with Electron Forge
task forge-make Generate distributables with Electron Forge
task clean Clean build artifacts and dependencies

Security

  • ASAR Integrity (Electron 39)
  • Built-in automatic integrity checks on all files (frontend and backend)
  • HTTPS by default (automated locally generated certs)
  • 3-layer redundant CORS protection (loading.html, python backend server, electron main.js)
  • Updated dependencies and daily scanning (OSV)
  • Container image scanning (Trivy)
  • SBOM for dependency observability and tracking (soon)
  • Extensive testing and fuzzing.
  • Rootless docker images (soon)
  • Pinned actions and container images (supply chain security and deterministic builds)

Credits