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