docs(MeshChatX): move
Some checks failed
CI / test-backend (push) Successful in 4s
Build and Publish Docker Image / build (pull_request) Has been skipped
CI / test-backend (pull_request) Successful in 4s
CI / lint (pull_request) Failing after 2m22s
CI / build-frontend (push) Successful in 2m57s
CI / lint (push) Failing after 5m3s
Tests / test (push) Failing after 7m27s
Tests / test (pull_request) Failing after 7m29s
CI / build-frontend (pull_request) Successful in 9m44s
Build and Publish Docker Image / build-dev (pull_request) Successful in 12m38s
Benchmarks / benchmark (pull_request) Successful in 16m59s
Benchmarks / benchmark (push) Successful in 17m8s
Some checks failed
CI / test-backend (push) Successful in 4s
Build and Publish Docker Image / build (pull_request) Has been skipped
CI / test-backend (pull_request) Successful in 4s
CI / lint (pull_request) Failing after 2m22s
CI / build-frontend (push) Successful in 2m57s
CI / lint (push) Failing after 5m3s
Tests / test (push) Failing after 7m27s
Tests / test (pull_request) Failing after 7m29s
CI / build-frontend (pull_request) Successful in 9m44s
Build and Publish Docker Image / build-dev (pull_request) Successful in 12m38s
Benchmarks / benchmark (pull_request) Successful in 16m59s
Benchmarks / benchmark (push) Successful in 17m8s
This commit is contained in:
@@ -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.
|
||||||
@@ -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.
|
||||||
@@ -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`
|
||||||
Reference in New Issue
Block a user