In Dec 2018, I created a tutorial showing how to create your own Audio Reactive LED strip with a Raspberry Pi. The original tutorial had a lot of steps (30+) that you needed to take in order to get the software up and running.
A lot of viewers have also asked if there were ways to make the installation simpler. So I took a stab at it and got the installation steps down to just 2! Clone the GitHub repo and run the installer. Of course I’m not counting the hardware set up!
Since the holiday break, I’ve been working on this little Raspberry Pi project. It’s dubbed the Website Uptime Monitor.
I use several uptime monitors including pingdom and Jetpack (used on this site). And I typically use the Free version because I am okay with being offline for a few hours if it comes to it. But then I thought, I can create my own uptime monitor that works just as well as the paid versions and I’ll have full control!
Of course I don’t have the skills or time to do what these paid monitors do but thought I’d try anyway. I also wanted some kind of visual indicator if any of my sites go down. And in comes the Raspberry Pi. I love the Pi. If you know me in person, you know that I have a dozen different Raspberry Pis around the house doing different things, such as control my lights, act as PiHole, PiVPN, etc.
You can watch the quick demo of the software here:
If you prefer to read about it over watching a demo video, keep reading!
The idea I had was to have three lights, like a traffic light: red, yellow, and green. I’m still working on the rules for when the lights come in, but they’re as follows: – Only Red – either everything is down or my internet is down – Only Green – everything is good! – Yellow – this light can be on in conjunction with the green light. This will come on if 1-3 sites are down. And if Green is on along with yellow, it means at least some sites are loading.
Pretty simple rules but I still think I can do better. That’s why this is still in beta! Current version at the time of writing this post is 0.3.0-b01.
The application will check sites every 15 minutes (this is configurable) and record all activity in a database. If a site is reported down three times in a row, the app will send an email with an outage report. The Email notifications are also stored in the database so you can look up whether or not an email was successfully sent out. Failure to send an email would typically mean that your internet was down.
Since everything is stored in the database, everything is reportable! For this, I created a Flask app with a bunch of API endpoints that can be accessed by any web application. These endpoints will output data from the MySQL table into neat JSON. You can also write to the databases using POST and PUT API calls.