diff --git a/docs/meshchat_raspberry_pi.md b/docs/meshchat_raspberry_pi.md new file mode 100644 index 0000000..99c32f5 --- /dev/null +++ b/docs/meshchat_raspberry_pi.md @@ -0,0 +1,90 @@ +# MeshChat on 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. + +## 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 MeshChat + +``` +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 +``` + +## 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` \ No newline at end of file