I run an embarrassing number of tiny websites and web-based projects. Almost none of them are funded and none of them have a full-time devops team or even anyone using them regularly.
I used to make use of one of a number of uptime monitoring services, but they've all gone to paid plans, and anyway I thought it would be nicer to have ambient awareness of the status without needing my phone with me.
This is a basic uptime monitor written in Node which lives on a Raspberry-Pi running Arch Linux. It periodically checks a provided list of websites for a provided HTTP status (so you could in theory make it an uptime detector instead - just have it check to make sure everything is 404 ;) ). I happened to have a spare blink(1) so I've also included support for that.
You can configure it to do whatever you like, out of the box it:
- Checks the full list every 10 min, turning the blink(1) PURPLE while it checks
- GREEN is all good, blinking RED indicates one of the sites returned an unexpected response
- Blinking YELLOW means the network is down, so it doubles as a local network check
- Runs a small internal website you can access to see the specific status of each site in the list
- I now have the brightness turned down for the green and purple states, so it is unobtrusive unless something is wrong. (the photos shown are at full brightness)
If you're feeling generous I like coffee ☕