Availability monitoring with Uptime Kuma

Not every project needs a heavy metrics stack. Often it's enough to know one simple thing: is the service up, and to learn about it before your users do. Uptime Kuma is a good fit for that.

Up in five minutes

docker run -d --restart=unless-stopped \
  -p 127.0.0.1:3001:3001 \
  -v uptime-kuma:/app/data \
  --name uptime-kuma louislam/uptime-kuma:1

After that there's a web interface where you add HTTP, TCP-port or ping checks at the interval you want.

Check what the user sees

The most useful checks mirror the user's path: not "is the process alive" but "does the page return 200 and the expected content". That catches cases where the process is running but the service is actually broken.

History and false alarms

An incident matters not only to catch but to review later. Keep check history and use a sensible interval: checks that are too frequent with a short timeout on a slow network produce false "downs". We usually set a 60-second interval and a generous timeout, so a latency spike doesn't raise an alarm for nothing.

← All notes