Services

observability / running

Uptime Kuma

Up/down monitoring for 40+ homelab routes, direct health checks, and private service endpoints.

What it is

Uptime Kuma is a self-hosted uptime monitor. Each "monitor" is a periodic check — HTTP GET, ICMP ping, TCP port, DNS — against a target, and Uptime Kuma records the response over time. The dashboard shows green dots and uptime percentages; the status page exposes the same information to external observers.

Why I run it

I needed a binary "is it up?" signal across every service in the cluster, separate from Portainer (which tells me about containers) and Grafana (which tells me about metrics). Uptime Kuma is the right level of abstraction — it checks the actual service from the outside, the way a user would.

The other thing it gives me is a status page. The internal Homepage dashboard reads from a status-page slug, which means its "X services online / Y total" widget is fed by Uptime Kuma, not by some bespoke check. Two birds, one Kuma.

How I use it

More than 40 monitors, tagged by category (Infrastructure, Management, Cloud, Entertainment, Sandbox, App Dashboards, and the newer proof/alerting services). Heartbeat 60 seconds, retry twice before flipping a state. The discipline I've settled on: