User Tools

Site Tools


packet:bpqmonweb

Tom 2E0JJI's bpqmonweb

Tom has created a superb web application to monitor a BPQ or Xrouter node.

This involves installing a web server & MQTT broker and configuring the whole lot. This is on a Pi running Raspberry Pi OS 12 - let's start with installing the required packages:

 sudo apt install -y git nginx mosquitto 

Grab Tom's repository and copy everything into the web server

mkdir ~/src; cd ~/src
git clone https://github.com/packethacking/bpqmonweb.git
cd ~/src/bpqmonweb
sudo rm /etc/nginx/sites-enabled/default
sudo cp nginx/nginx.conf /etc/nginx/sites-enabled/bpqmonweb
sudo cp *.html /usr/share/nginx/html/
sudo cp *.css /usr/share/nginx/html/
sudo cp *.js /usr/share/nginx/html/

Now we need to add an entry to our hosts file so the nginx proxy knows where mosquitto is located on the network; this is already set in the nginx config so it's cleaner to add it here rather than edit the files pulled from git

echo "127.0.0.1	mosquitto" | sudo tee -a /etc/hosts

Then we need to set up mosquitto users - replace the supersecretbpqmqttpassword with something “secret” so other people can't publish to your MQTT server!

echo "linbpquser:supersecretbpqmqttpassword" | sudo tee /etc/mosquitto/bpqpasswd
echo "bpqmonweb:bpqmonweb" | sudo tee /etc/mosquitto/webpasswd
sudo mosquitto_passwd -U /etc/mosquitto/bpqpasswd
sudo mosquitto_passwd -U /etc/mosquitto/webpasswd

and create some configuration files for mosquitto to enable publishing and websocket access

echo 'per_listener_settings true

listener 1883
password_file /etc/mosquitto/bpqpasswd
allow_anonymous false

listener 9001
protocol websockets
password_file /etc/mosquitto/webpasswd
acl_file /etc/mosquitto/webaclfile
allow_anonymous false' | sudo tee /etc/mosquitto/conf.d/bpqmonweb.conf

and create an access control list so publishing to the publicly-available user can only read the topic

echo 'user bpqmonweb
topic read PACKETNODE/ax25/trace/bpqformat/#' | sudo tee /etc/mosquitto/webaclfile

Now we need to tell LinBPQ to publish to the MQTT broker; add the following lines to your /etc/bpq32.cfg Remember to use the super secret password you created above; the hostname “mosquitto” is resolved from /etc/hosts

MQTT=1
MQTT_HOST=mosquitto
MQTT_PORT=1883
MQTT_USER=linbpquser
MQTT_PASS=supersecretbpqmqttpassword

then restart all the services we've tinkered with

sudo systemctl restart mosquitto.service
sudo systemctl restart linbpq.service
sudo systemctl restart nginx.service

Now you can access the web server and watch the packet racket!

 http://your.pi.ip.address 
packet/bpqmonweb.txt · Last modified: 2025/04/13 00:13 by m0mzf