Releases: bravecorvus/prometheus
Fixed https vs http checker
-Fixed old behavior that didn't allow for unencrypted http serving (since port 3000 was already being used by a failing tls serve command above. Instead of using a err != nil
command, the new method checks to see if the server.crt
and server.key
files exist in the same directory as the executable, and then run the TLS server only if it finds them. (Hence, the program will no longer panic with the "port 3000 already in use error."
Small update to TLS files finding method
-Using utils.Pwd() to get a fullpath to the executable's location (in order to correctly locate the server.crt
and server.key
files.)
Modified to use (self-signed) TLS for increased security
-Using TLS by default in order to increase security. The site will probably show up as "insecure," but rest be assured, this is much more secure than unencrypted communication through HTTP. According to this article, self-signed certificates provide as much security from man-in-the-middle attacks as CA certificates. Either way, at least the site is encrypted.
-Since adding TLS is not integral to the operation of the front-end (although it makes me sleep alot better after I personally did), I am not adding any directions to the main docs (README's or Wiki's). Instead, the program will try to find the files server.key (private key), and server.crt (public key) in the same directory as the executable. If it't not found, it will revert to serving via non-encrypted protocol while warning the user, and providing the instructions on how to generate these files.
Added Stuff
-Finished splitting front-end into Home/Settings/About sections for Clarity (Using mainly vue.js conditional rendering for Home and About, but standard JavaScript (html tag display property modification for Settings [because v-if/v-else-if messes up the non-Vue.js JavaScript binding to elements because using v-if prevents elements from rendering initially. Hence, for settings, I render the elements, then hide it via display="none", then set display="" when I "Settings" is clicked.
-Added basic About page which shows a graphic about how to use the Clock's Front End in depth.
-Finished the LED color setting functionality (With HTML Color Wheel)
-Added some more shout outs in the About Page.
Version 2.1.0
-Modifications to deal with shairport-sync (external sound cards)
minor changes
-Some minor changes to the back-end
-Made front-end nixie clock run on 12h time
-Deleted unused front-end elements
With network time to arduino nixie clock functionality
-Updated the code to send Arduino based Nixie Clock (device /dev/ACM0) the correct NTP time once a second (Some tweaking involved on the nixie clock end: see here)
-Changed the used GPIO pins 5, 6 to be 22, 23 because 5 and 6 are being used by my new soundcard Hifiberry Digi Pro
-On the same note above, since I probably mis-soldered the circuit and my old code no longer works as expected, so I changed the gpio.VibOff()
function to send a "low" signal to GPIO 22 as well as GPIO 17 (since just sending low to GPIO 22 was no longer working). This specific change should not change the functionality of the vibrator function in any way.
Prometheus 1.1.1
-Added functionality to automatically detect when the Pi get's disconnected from the network, and automatically restart network interfaces via ifdown wlan0
and ifup --force wlan0
.
Prometheus 1.1.0 Complete!
- Fixed jQuery json caching issue (now the front end will always pull the most recent data from the server)
- Broke Golang code into more manageable packages (gpio, utils, and structs)
- Now, no matter where this is installed, the main executable will search for the ./public folder in relation to the location of the executable (which makes it easier to spawn the program as a start-up daemon process)
Added sender email to the compiled executable
Since the executable isn't human readable, I added it to the compiled executable (the email that sends the email when the IP gets changed.
The only other information that is necessary is for you to specify what email you want the notification sent to specifically in ./public/json/email