Table of Contents
A dashboard written for urfd in Go!
Clone, build, and run!
Install Go 1.19+ according to your platform, directions can be found here
- Clone the repo
git clone https://github.com/kc1awv/gourfdash.git
- Build the application
make
- Copy gourfdash.sample.toml and edit to your environment
cp gourfdash.sample.toml gourfdash.toml
- Run gourfdash
./gourfdash
gourfdash.toml:
hostport
- the port on which the gourfdash web server will run
ipv4
- listening IPv4 address of mrefd
ipv6
- listening IPv6 address of mrefd
refresh
- refresh rate of the data on the web pages in seconds
lastheard
- number of stations to show in the last heard list
mreffile
- path to the mrefd XML log file location
mrefpidfile
- path to the PID file for mrefd
email
- reflector sysop's email address
debug
- boolean option to run Gin in debug mode
subpath
- if your dashboard needs to run in a subpath behind a
reverse proxy, e.g. "/reflector" would be http://yourhostname/reflector,
leave blank for no sub path
It is important to note that gourfdash itself has a web (HTTP) server
built-in. That is what the hostport
defines in the TOML configuration
file. If you are only running gourfdash, and no other web server, then
hostport
can be defined as a 'standard' HTTP port, such as port 80 -
so long as the user running the gourfdash service has permission to
run on a port that is below 1024
.
The preferred way to run gourfdash
is behind a reverse proxy. This alleviates issues of permissions and
system security (we hope you're not running gourfdash
as root!) as
well as being able to easily enable SSL on a publicly facing web page.
Recommended web servers to use for reverse proxying are nginx, Apache, and Caddy. Please refer to their documentation on how to set up a reverse proxy.
These are some things that aren't officially supported, but you can try it out.
-
mrefd is already running on the system running docker.
-
You are familiar with docker and it's installed on your system - https://www.docker.com
-
You have docker-compose installed - https://docs.docker.com/compose/install/
-
Copy docker-compose.sample.yml to docker-compose.yml
-
Edit the docker-compose.yml for your environment
-
Run
docker-compose up
You will need to put a proxy in front of your application, or modify the docker-compose file to add nginx or caddy. That is left as an exercise for the admin as the choices are various. Many of us prefer caddy as it has automatic ssl via letsencrypt.
To upgrade, git pull && docker-compose down && docker-compose build && docker-compose up -d
Check with docker-compose logs -f
(hit ctrl-c to stop log streaming)
The makefile has various convience functions:
-
make
(no parameters), builds the binary for your system -
make run
runs the application (without building a binary) -
make docker
builds a docker image with the application -
make clean
cleans old builds -
make package
builds and packages everything up into a tarball for your system
- Beta Release
- Refresh page on log file changes, instead of a meta refresh in browser - thanks AC8ZD
- Create two-column layout for Modules In Use, instead of a single column
- Add country flags for callsigns
See the open issues for a full list of proposed features (and known issues).
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Distributed under the GPL 3.0 License. See LICENSE.txt
for more information.
Project Link: https://github.com/kc1awv/gourfdash
- Tom N7TAE Creator of mrefd and inspiration for development
- Dave AC8ZD Beta testing and great feedback, page refresh code, many improvements
- edgetriggered Teaching me finer points of Golang, help and guidance