From 00828e59a4d49e4a5a0587d9d53de3b390eb7210 Mon Sep 17 00:00:00 2001 From: Sudo-Ivan Date: Sat, 3 Jan 2026 17:24:24 -0600 Subject: [PATCH] docs(MeshChatX): move --- .../meshchat_on_android_with_termux.md | 83 ++++++++++++++++ .../meshchatx-docs/meshchat_on_docker.md | 11 +++ .../meshchat_on_raspberry_pi.md | 99 +++++++++++++++++++ 3 files changed, 193 insertions(+) create mode 100644 meshchatx/src/frontend/public/meshchatx-docs/meshchat_on_android_with_termux.md create mode 100644 meshchatx/src/frontend/public/meshchatx-docs/meshchat_on_docker.md create mode 100644 meshchatx/src/frontend/public/meshchatx-docs/meshchat_on_raspberry_pi.md diff --git a/meshchatx/src/frontend/public/meshchatx-docs/meshchat_on_android_with_termux.md b/meshchatx/src/frontend/public/meshchatx-docs/meshchat_on_android_with_termux.md new file mode 100644 index 0000000..f2a9a41 --- /dev/null +++ b/meshchatx/src/frontend/public/meshchatx-docs/meshchat_on_android_with_termux.md @@ -0,0 +1,83 @@ +# MeshChatX on Android + +It's possible to run MeshChatX on Android using [Termux](https://termux.dev/). Installation is now much simpler since the wheel package includes both the server and pre-built web assets. + +## Method 1: Install from Wheel (Recommended) + +This is the easiest method - the wheel includes everything you need. + +### Install System Dependencies + +``` +pkg upgrade +pkg install python +pkg install rust +pkg install binutils +pkg install build-essential +``` + +> Note: Python 3.11 or higher is required. Check with `python --version`. + +### Download and Install Wheel + +Download the latest wheel from the [releases page](https://git.quad4.io/RNS-Things/MeshChatX/releases), then: + +``` +pip install reticulum_meshchatx-*-py3-none-any.whl +``` + +The wheel will automatically install all Python dependencies. Building `cryptography` may take a while on Android. + +### Run MeshChatX + +``` +meshchat +``` + +Then open your Android web browser and navigate to `http://localhost:8000` + +## Method 2: Install from Source + +If you need to build from source (for development or if no wheel is available for your architecture): + +### Install System Dependencies + +``` +pkg upgrade +pkg install git +pkg install nodejs-lts +pkg install python +pkg install rust +pkg install binutils +pkg install build-essential +``` + +### Install pnpm + +``` +corepack enable +corepack prepare pnpm@latest --activate +``` + +### Clone and Build + +``` +git clone https://git.quad4.io/RNS-Things/MeshChatX.git +cd MeshChatX +pip install poetry +poetry install +pnpm install +pnpm run build-frontend +poetry build -f wheel +pip install dist/*.whl +``` + +### Run MeshChatX + +``` +meshchat +``` + +## Configuration Notes + +> Note: The default `AutoInterface` may not work on your Android device. You will need to configure another interface such as `TCPClientInterface` in the settings. diff --git a/meshchatx/src/frontend/public/meshchatx-docs/meshchat_on_docker.md b/meshchatx/src/frontend/public/meshchatx-docs/meshchat_on_docker.md new file mode 100644 index 0000000..d82ddee --- /dev/null +++ b/meshchatx/src/frontend/public/meshchatx-docs/meshchat_on_docker.md @@ -0,0 +1,11 @@ +# MeshChat on Docker + +A docker image is automatically built by GitHub actions, and can be downloaded from the GitHub container registry. + +``` +docker pull ghcr.io/liamcottle/reticulum-meshchat:latest +``` + +Additionally, an example [docker-compose.yml](../docker-compose.yml) is available. + +The example automatically generates a new reticulum config file in the `meshchat-config` volume. The MeshChat database is also stored in this volume. diff --git a/meshchatx/src/frontend/public/meshchatx-docs/meshchat_on_raspberry_pi.md b/meshchatx/src/frontend/public/meshchatx-docs/meshchat_on_raspberry_pi.md new file mode 100644 index 0000000..a1385ef --- /dev/null +++ b/meshchatx/src/frontend/public/meshchatx-docs/meshchat_on_raspberry_pi.md @@ -0,0 +1,99 @@ +# MeshChat on a Raspberry Pi + +A simple guide to install [MeshChat](https://github.com/liamcottle/reticulum-meshchat) on a Raspberry Pi. + +This would allow you to connect an [RNode](https://github.com/markqvist/RNode_Firmware) (such as a Heltec v3) to the Rasbperry Pi via USB, and then access the MeshChat Web UI from another machine on your network. + +My intended use case is to run the Pi + RNode combo from my solar-powered shed, and access the MeshChat Web UI via WiFi. + +> Note: This has been tested on a Raspberry Pi 4 Model B + +## Install Raspberry Pi OS + +If you haven't already done so, the first step is to install Raspberry Pi OS onto an sdcard, and then boot up the Pi. Once booted, follow the below commands. + +## Update System + +``` +sudo apt update +sudo apt upgrade +``` + +## Install System Dependencies + +``` +sudo apt install git +sudo apt install python3-pip +``` + +## Install NodeJS v22 + +``` +curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /usr/share/keyrings/nodesource.gpg +NODE_MAJOR=22 +echo "deb [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list +sudo apt update +sudo apt install nodejs +``` + +## Install pnpm + +``` +corepack enable +corepack prepare pnpm@latest --activate +``` + +## Install MeshChat + +``` +git clone https://github.com/liamcottle/reticulum-meshchat +cd reticulum-meshchat +pip install -r requirements.txt --break-system-packages +pnpm install --prod +pnpm run build-frontend +``` + +## Run MeshChat + +``` +python meshchat.py --headless --host 0.0.0.0 +``` + +## Configure Service + +Adding a `systemd` service will allow MeshChat to run in the background when you disconnect from the Pi's terminal. + +``` +sudo nano /etc/systemd/system/reticulum-meshchat.service +``` + +``` +[Unit] +Description=reticulum-meshchat +After=network.target +StartLimitIntervalSec=0 + +[Service] +Type=simple +Restart=always +RestartSec=1 +User=liamcottle +Group=liamcottle +WorkingDirectory=/home/liamcottle/reticulum-meshchat +ExecStart=/usr/bin/env python /home/liamcottle/reticulum-meshchat/meshchat.py --headless --host 0.0.0.0 + +[Install] +WantedBy=multi-user.target +``` + +> Note: Make sure to update the usernames in the service file if needed. + +``` +sudo systemctl enable reticulum-meshchat.service +sudo systemctl start reticulum-meshchat.service +sudo systemctl status reticulum-meshchat.service +``` + +You should now be able to access MeshChat via your Pi's IP address. + +> Note: Don't forget to include the default port `8000`