Adventures in self-hosting: downtime
I started keeping a note in my Obsidian vault called downtime. Every time one of my self-hosted sites goes down for a reason, I document and track it here. We've had some stellar entries that help me realize the dangers of self-hosting without replicas on a residential network, on a hobby board:
June 19th
A brief power outage brought the Pi up on a secondary WiFi network with an incompatible signal frequency. This prevented Rockiscope from posting game-day predictions on time. We got it up in the 8th inning after a late night fix. The stars were wrong, but the Rockies won. I'll take it.
July 23rd
An internet outage from my ISP brought all sites down for over three hours. I was aware of every moment of downtime but had no way of restoring it myself. This was one I could accept, though I was persistent in my complaints to the ISP.
July 27th
Get this, I kicked the power cord for the Pi under my desk at 9:30 AM. It didn't fully unplug, but was tweaked just enough to keep the Pi down until I realized at nearly 3 PM. This one was more embarrassing than anything else.
I know outages are unavoidable, and it would be unreasonable for me to build some highly-redundant failover system for a few silly websites. But some of these, the July 27th case specifically, could have been reduced by just getting a simple website monitor working. There are many solutions to this and they'll all gladly sell me uptime peace of mind for a monthly fee that I have no interest in paying.
After all, the primary motivation for my self-hosted projects is to see how much software I can run for free. I needed an uptime monitor that fit into that model. So I started a project called up.
Up is a Lambda function running every 5 minutes to check HTTP status codes and monitor TLS certificates while we're at it. It stays well within the AWS free-tier for EventBridge, Lambda, DynamoDB, and SSM. It was built on Python 3.14 with zero dependencies. It pushes messages to a Discord server through an exposed webhook. And it solves all of my problems for $0.

This was a fun one-day project to solve a problem. I've got a way to know when something isn't working right. But the added downside is I now get to be on-call for my own websites.