

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:3001The 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