A simple guide to install MeshChat on a Raspberry Pi.
This would allow you to connect an RNode (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
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.
sudo apt update
sudo apt upgrade
sudo apt install git
sudo apt install python3-pip
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
git clone https://github.com/liamcottle/reticulum-meshchat
cd reticulum-meshchat
pip install -r requirements.txt --break-system-packages
npm install --omit=dev
npm run build-frontend
python meshchat.py --headless --host 0.0.0.0
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