Monitoring My Homelab, Simply

https://news.ycombinator.com/rss Hits: 15
Summary

Monitoring my Homelab, Simply Date: 2025-07-09 I have a middling self-hosted/homelab setup, and it occasionally breaks. Alas, no monitoring tool has ever sparked joy in me. Don’t get me wrong, I understand that they’re essential for large fleets of services with fast-changing software and teams of oncallers working around the clock to understand the complex ways that complex systems fail… but my stuff doesn’t change that often, failures are mundane and low-scope, and I’m the only person coming to rescue this poor stopped systemd unit that failed to restart, or open the port that I accidentally blocked in an overzealous attempt to stop the barbarians. So between no monitoring and Prometheus, I’ll choose no monitoring every day. But there’s a spectrum. What I want from a monitoring setup Pages me when my stuff is aggregiously broken. Pages me if things are still broken. Pages me when my stuff is fixed. Stops pages me when I want. Can see into my Wireguard mesh network. Easy to add probers. Simple, by which I mean: Easy to understand, e.g. avoid state. Easy to maintain: deploy, updates, blah, blah. Few moving pieces. Out-of-scope: Historical data: I’m not chasing down grand mysteries that require fleet-wide aggregate metrics. Dashboards: I’m okay with logs. Perfection: a bit of jank is fine. False positives are okay: I don’t mind being pinged of a false problem, as long as I get told when things recover. False negatives are okay: it’s okay to miss things. My goal is to add a little monitoring, to catch agregious issues. Design tl;dr I wrote a tiny program, that regularly checks HTTP/DNS/etc., and pages me via https://ntfy.sh I’ve been running this for 2-3 years now. Show me the code A prober probes at an interval, and has a description. type prober interface { probe(context.Context) error interval() time.Duration String() string } Here’s an example prober for checking TLS connectivity and cert expiration: type tlsProber struct { host string port int duration time.Durat...

First seen: 2025-07-13 13:54

Last seen: 2025-07-14 03:58