===== Tom 2E0JJI's bpqmonweb =====
Tom has created a superb web application to monitor a BPQ or Xrouter node.
{{:packet:bqmon.png?nolink&956}}
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