some modifications made to let it run in my environment (reverse proxy) - I also suggest to not let this run as root user, have a look at my setup that runs behind a reverse proxy at home: https://oe7drt.com/posts/2024/62-a-slim-dstar-gateway-on-a-raspberry-pi-2/#install-a-dashboard
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
John Hays (K7VE) f6a46a5984
Update README.md
8 months ago
client Updated Links and Time/Date on Last Heard 8 months ago
util Service File 10 months ago
.gitignore Don't track PEM and modules 10 months ago
README.md Update README.md 8 months ago
dashboard.ini Merge branch 'main' of https://github.com/johnhays/dsgwdashboard 10 months ago
index.js Updated timestamps to local time 9 months ago
package-lock.json From NW7DR 10 months ago
package.json From NW7DR 10 months ago

README.md

dsgwdashboard

This is a realtime Dashboard for F4FXL's DStarGateway

It is written in JavaScript. The server side is a NodeJS application using the Express framework that runs over HTTPS and uses secure WebSockets (WSS) to pass data over the Internet to the web browser. WSS requires encryption which is why it is implemented with that feature.

Installing this will require some familiarity with Linux/Unix command line and system.

You will need to have a domain name for the site and current certificates tied to that domain. The index.js file, which defines the HTTPS server, is looking for key.pem and cert.pem in the same directory as index.js. I suggest using Certbot to obtain free signed certificates that all major browsers recognize as legitimate. Use the --standalone flag or run Apache with plugin. The certificates will typically reside in /etc/letsencrypt/live/your domain name/ (replace your domain name with your actual domain name) and simply soft link (ln -s) them from the dsgwdashboard directory:

ln -s /etc/letsencrypt/live/**your domain name**/cert.pem cert.pen
ln -s /etc/letsencrypt/live/**your domain name**/privkey.pem key.pen

Before starting up the dsgwdashboard you will want to have DStarGateway running, to prepopulate the log files. Alternatively, if your gateway isn't ready:

sudo touch /var/log/dstargateway/Headers.log
sudo touch /var/log/dstargateway/Links.log
sudo chown dstar:dstar /var/log/dsgateway/Headers.log
sudo chown dstar:dstar /var/log/dsgateway/Links.log

Your first task will be to edit util/dashboard.ini to put in your hostname and to ensure file paths match your install of DStarGateway. The dashboard parses those log files in realtime to update the dashboard. Then copy the file to /usr/local/etc

sudo cp util/dashboard.ini /usr/local/etc

This dashboard runs under a current version of NodeJS. Your distribution may install an older version, so use the methods documented at (nodesource)[https://github.com/nodesource/distributions]. Make sure

node -v

returns the version you installed.

Your next task is to install the modules used with the command

npm install -save

within the dsgwdashboard directory.

You can start the dsgwdashboard server on the command line by entering the install directory for dsgwdashboard and typing

sudo node index.js

Kill this with ^C before running it as service.

It should also run under the newer/faster Bun Runtime

If it comes up successfully, go to a browser put in a HTTPS request to your domain name. If you get a dashboard, you have done everything correctly.

I have included a systemd service file in the util subdirectory which can be copied to /lib/systemd/system

sudo cp util/dsgwdashboard.service /lib/systemd/system

and managed with the systemctl commands:

sudo systemctl status dsgwdashboard
sudo systemctl enable dsgwdashboard
sudo systemctl start dsgwdashboard

This program is still under development, but you are welcome to try it out. Consider it alpha code and refresh it periodically by going into the dsgwdashboard directory and

git status
git pull
sudo systemctl restart dsgwdashboard