Uptime Kuma: Free Self-Hosted Monitoring for Your Homelab
You run a homelab with a dozen self-hosted services — Jellyfin, a NAS, a game server, maybe a Pi-hole. The moment one goes down, you want to know before someone tells you. Uptime Kuma is a free, open-source, self-hosted monitoring tool that pings your services every few seconds and sends you a Discord, email, or phone notification the second something fails. It takes about five minutes to deploy with Docker, and it gives you a clean status-page UI you can share with family or roommates. This guide walks you through the Docker setup, notification config, and the smartest way to host it so it keeps working even when your main server goes offline. This guide breaks down uptime kuma guide in practical terms.
What Uptime Kuma Monitors: Beyond Basic HTTP Checks
Uptime Kuma isn’t just a website uptime checker — it monitors nearly any network service your homelab runs. The default check is HTTP(s), which works for web apps like Jellyfin, Nextcloud, or your router’s admin page. But you can also monitor TCP ports (e.g., SSH on port 22, a Minecraft server on 25565), DNS resolution (verify a domain resolves correctly), ICMP ping (check if a device is alive on the LAN), and even a full keyword search on a page response (confirm “Login” appears on your app’s homepage).
For homelab use, set the check interval to 60 seconds — frequent enough to catch outages fast, but not so aggressive that it wastes bandwidth or triggers false alerts during brief network hiccups.
Each monitor can run on a different interval, and you can group them into a single status page. This means you could have a “Family Services” status page showing Plex, the NAS web UI, and your home assistant dashboard — all visible to household members without giving them server access.
Uptime Kuma Docker Setup: Install in Under 5 Minutes
The quickest way to deploy Uptime Kuma is with Docker Compose. If you already have Docker running on your homelab server — whether it’s a dedicated Docker host, a TrueNAS SCALE app, or an Unraid container — this takes about 60 seconds of copy-paste. If you’re still choosing a platform, our Best Docker Server Build 2026 guide covers hardware that handles containers like this effortlessly.
Save this as docker-compose.yml in a folder called uptime-kuma:
version: '3.8'
services:
uptime-kuma:
image: louislam/uptime-kuma:latest
container_name: uptime-kuma
ports:
- "3001:3001"
volumes:
- ./data:/app/data
restart: unless-stopped
Run docker-compose up -d in the same folder. The container pulls the image and starts on port 3001. Access it at http://your-server-ip:3001.
Click “Add New Monitor”. Give it a friendly name like “Jellyfin”, pick “HTTP(s)” as the monitor type, enter the full URL (e.g., http://192.168.1.100:8096), set an interval (60 seconds is fine), and hit Save. That’s it — Uptime Kuma starts checking immediately.
Uptime Kuma stores all data in the ./data folder. Back this up — it contains your monitor configs, notification settings, and uptime history. A ZFS snapshot of the dataset containing this folder is an easy way to get instant rollbacks if something breaks.
Notification Integrations: Get Alerts Where You Actually See Them
A monitoring tool that only shows status on its own web UI is useless if you’re not looking at it. Uptime Kuma supports 90+ notification services out of the box. The three most useful for homelab users are Discord, email (via SMTP), and ntfy (a lightweight push notification service).
Setting Up Discord Alerts
In Uptime Kuma, go to Settings > Notifications > “Add Notification”. Choose “Discord”, paste your webhook URL (create one in your Discord server settings under Integrations), and give it a name like “Down Alerts”. Save it, then assign it to any monitor by editing the monitor and selecting this notification profile under “Notification”.
Using ntfy for Phone Push Notifications
ntfy is a free, open-source push notification service that works with a simple topic name. In Uptime Kuma’s notification setup, pick “ntfy”, enter your topic (e.g., homelab-alerts), and optionally set a server URL if you self-host ntfy. Install the ntfy app on your phone, subscribe to that topic, and you’ll get push notifications the instant a service goes down — no email setup needed.
Email Alerts via SMTP
For email, you’ll need an SMTP server. Gmail works if you use an app password, or you can run your own mail server in the homelab. Enter the SMTP host, port, username, and password in the notification settings. Email is slower than push notifications but serves as a reliable fallback.
Setting Up a Public Status Page for Shared Services
One of Uptime Kuma’s best features for homelab users is the built-in public status page. It shows the current status of selected monitors in a clean, read-only dashboard. You can share this with family members, roommates, or friends who use your services — they can check whether Plex is down or if it’s their own internet acting up.
Go to Settings > Status Page > “Add Status Page”. Give it a title like “HomeLab Services”.
Select which monitors to display. Only monitors you check here will appear — keep internal services (like SSH to your NAS) off the public page.
Toggle “Public” on. The status page gets a URL like http://your-server-ip:3001/status/homelab. You can share this link with anyone — they don’t need a login.
A public status page exposes which services you run and their IP addresses. For a homelab accessible from the internet, consider putting the status page behind a reverse proxy with basic authentication, or only share it over a VPN.
Where to Host Uptime Kuma: The “Don’t Monitor Itself” Rule
This is the most important deployment decision you’ll make. If you run Uptime Kuma on the same server that hosts Jellyfin, your NAS, or your game server, then when that server crashes, Uptime Kuma goes down with it — and you won’t get an alert. You’ll only notice the outage when you can’t reach anything.
Best Practice
- Run Uptime Kuma on a separate low-power device: a Raspberry Pi 4, an old laptop, or a mini PC that stays on 24/7
- This device should have its own power supply and network connection — not dependent on your main NAS or server
- If budget allows, a $50 Raspberry Pi 4 with a 32GB SD card is perfect for this job
Avoid This
- Installing Uptime Kuma on the same Docker host as everything else
- Running it on a VM that shares the same hypervisor as your critical services — a hypervisor failure takes everything down
- Using a single SSD or HDD that also stores your main NAS data
If you’re on a tight budget and can’t get a second device, consider running Uptime Kuma on a cloud VM or a free-tier Oracle Cloud instance. It only needs 2GB of RAM and a tiny amount of storage — the free tier is more than enough. This way, if your entire homelab goes dark, you still get an alert from outside your network.
A common mistake is running Uptime Kuma on a Raspberry Pi that also serves as a Pi-hole or Home Assistant. If that Pi goes down, you lose DNS and monitoring simultaneously. Dedicate a cheap SBC or mini PC to monitoring alone — it’s the cheapest insurance you can buy for a homelab.
Uptime Kuma vs HealthChecks: Which Self-Hosted Monitor Is Right?
| Feature | Uptime Kuma | HealthChecks |
|---|---|---|
| Primary function | External service monitoring (HTTP, TCP, ping) | Cron job / scheduled task heartbeat monitoring |
| Notification types | 90+ (Discord, email, ntfy, Telegram, Slack) | 50+ (email, webhook, Slack, Discord) |
| Status page | Built-in, public, customizable | Built-in, public |
| Best for | Monitoring web apps, game servers, NAS UIs | Monitoring backups, scripts, cron jobs |
| Install complexity | Single Docker container | Docker container + optional PostgreSQL |
If you need to know when a backup script fails to run or a cron job misses its schedule, HealthChecks is the better fit — it expects a “ping” from the job at regular intervals, and alerts if the ping doesn’t arrive. For monitoring services that are always running (websites, game servers, NAS web UIs), Uptime Kuma’s active polling is simpler and more intuitive. Many homelab users run both: Uptime Kuma for live services, HealthChecks for scheduled tasks.
Bottom Line: Should You Deploy Uptime Kuma?
If you run more than three self-hosted services and you want to know about downtime before someone complains, Uptime Kuma is the easiest, cheapest way to get that visibility. It’s free, deploys in five minutes, and works with any notification service you already use. The one non-negotiable rule is to host it on a separate device from the services it monitors — a $50 Raspberry Pi is perfect. Pair it with a Jellyfin install on TrueNAS SCALE or an Unraid server, and you’ll catch failures the moment they happen, not hours later. Remember, RAID is not a backup — always keep separate copies of your important data.
Frequently Asked Questions
What can Uptime Kuma monitor besides websites?
Uptime Kuma monitors HTTP(s) URLs, TCP ports (like SSH on port 22 or a Minecraft server on 25565), ICMP ping (check if a device is alive on the LAN), DNS resolution (verify a domain resolves correctly), and keyword search on page responses. You can also monitor Docker containers directly if Uptime Kuma has access to the Docker socket. For homelab use, this covers everything from your router’s web UI to a game server’s port availability.
Is Uptime Kuma free?
Yes, Uptime Kuma is completely free and open source under the MIT license. There are no paid tiers, no hidden limits on monitors or notifications, and no telemetry. You can monitor as many services as your hardware can handle — a Raspberry Pi 4 typically handles 50-100 monitors on 60-second intervals without breaking a sweat. The only cost is the hardware and electricity to run it, which is usually under $5 per year for a low-power device.
How do I get Discord/phone alerts from Uptime Kuma?
Go to Settings > Notifications > “Add Notification”. For Discord, select “Discord”, paste your webhook URL (create one in your Discord server under Server Settings > Integrations > Webhooks), and save. For phone push notifications, use the “ntfy” integration — enter a topic name like “homelab-alerts”, install the ntfy app on your phone, subscribe to that topic, and you’ll get push notifications instantly. Both are free and take under two minutes to configure.
Should Uptime Kuma run on the same server it’s monitoring?
No, never run Uptime Kuma on the same server it’s monitoring. If that server crashes, Uptime Kuma goes down with it and you won’t receive any alerts. The best practice is to run it on a separate low-power device like a Raspberry Pi 4, an old laptop, or a $5/month cloud VM. This way, if your main NAS or Docker host fails, Uptime Kuma is still alive and will notify you immediately via Discord, email, or push notification.
Last verified: July 10, 2026. Specifications cross-checked against the Uptime Kuma GitHub repository and official documentation.
🛡 Shop Recommended Hardware
Prices and stock verified regularly by our affiliate partners. As an affiliate, HomeLabCost may earn a commission on qualifying purchases at no extra cost to you.
Browse Hardware Picks →