Homelab from Zero #5: Uptime Kuma, know when things breakHomelab from Zero #5: Uptime Kuma, know when things break

Homelab from Zero #5: Uptime Kuma, know when things break

This is part 5 of Homelab from Zero. In part 4 you added Pi-hole and gave the whole household ad-free browsing. Today we make the lab self-aware: Uptime Kuma watches your services and pings you the moment something goes down.

Why you need monitoring before it hurts

Right now, if Pi-hole or Heimdall stops responding you won’t know until someone in the house complains, or until you notice yourself. As the lab grows, that becomes a real problem: a service can fail silently for hours.

Uptime Kuma is a self-hosted monitoring tool that checks your services on a schedule (every 60 seconds by default) and sends you an alert if one stops answering. It’s a single container, it has a clean web dashboard, and it logs a timeline so you can see exactly when each outage started and how long it lasted.

Step 1: Run Uptime Kuma

SSH in and start the container:

docker run -d \
--name uptime-kuma \
-p 3001:3001 \
-v ~/uptime-kuma:/app/data \
--restart unless-stopped \
louislam/uptime-kuma:1
Piece Plain English
-p 3001:3001 The dashboard port
-v ~/uptime-kuma:/app/data Keeps all your monitors and history across reboots
--restart unless-stopped Starts automatically when the server boots

Step 2: Create your account

On your normal computer, visit:

http://192.168.1.73:3001

The first visit prompts you to set a username and password, this is a local account, nothing leaves the network. After that you land on the main dashboard: nothing monitored yet.

Step 3: Add your first monitors

Click Add New Monitor. Start with the two services already running.

Heimdall, the dashboard from part 3:

  • Monitor type: HTTP(s)
  • Friendly name: Heimdall
  • URL: http://192.168.1.73:8080
  • Heartbeat interval: 60 seconds

Pi-hole, the ad blocker from part 4:

  • Monitor type: HTTP(s)
  • Friendly name: Pi-hole
  • URL: http://192.168.1.73:8081/admin
  • Heartbeat interval: 60 seconds

Uptime Kuma starts checking immediately. Within a minute both should show a green Up badge and begin building a response-time graph. From here you can add anything with an IP or URL: your router’s admin page, a ping monitor for the server itself (192.168.1.73 as a ping target), or any other service you add later.

Step 4: Set up an alert

A monitor that doesn’t notify you is just a dashboard you have to remember to check. Go to Settings → Notifications and add one. The options cover email, Telegram, Discord, Slack, and a dozen others, pick whatever you’ll actually notice.

Email (SMTP) works with most mail providers. Fill in your SMTP host, port, and credentials, send a test notification, and confirm it arrives. From then on, every outage sends a message automatically.

No SMTP handy? Telegram bot notifications are the quickest alternative: create a bot with BotFather, then paste the token and your chat ID into Uptime Kuma’s Telegram notification fields. Takes about two minutes.

The commands you’ll actually use

Command What it does
docker logs uptime-kuma What is Kuma saying? (start here if the page won’t load)
docker restart uptime-kuma Turn it off and on again
docker stop uptime-kuma Stop monitoring: other services keep running
docker ps Confirm Uptime Kuma (and everything else) is still up

What you have now

A monitoring dashboard watching every service in the lab, with alerts that reach you the moment something falls over, no polling, no waiting for a complaint. You set it up once and it runs in the background.

In part 6 we tackle the thing most homelabs skip until it’s too late: backups. One automated, tested setup using the 3-2-1 rule, so a dead drive doesn’t mean lost data.


← Back to blog

Following along?