Skip to content
TutorialsAutomationBeginner

How to Install Uptime Kuma

Monitor every homelab service and get instant alerts when something goes down, plus public status pages — all self-hosted.

by HomeServersGuide TeamUpdated July 16, 20263 min read

What you'll build

Uptime Kuma is a self-hosted uptime monitor with a beautiful UI. It repeatedly checks your services and notifies you the instant one becomes unreachable, so you find out before your family does. It can also publish clean status pages.

Plan for 15 minutes on a host with Docker installed.

Step 1: Deploy with Docker

services:
  uptime-kuma:
    image: louislam/uptime-kuma:1
    container_name: uptime-kuma
    restart: unless-stopped
    ports:
      - "3001:3001"
    volumes:
      - ./data:/app/data
docker compose up -d

Open http://your-server-ip:3001 and create your admin account.

Step 2: Add your first monitors

Click Add New Monitor. The monitor type determines what "up" means:

  • HTTP(s) — checks a URL returns a good status code. Best for web apps and dashboards.
  • TCP Port — checks a port accepts connections. Good for databases and non-HTTP services.
  • Ping — checks a host responds to ICMP. Good for routers, NAS, switches.
  • DNS — checks a record resolves. Good for verifying Pi-hole/AdGuard.
  • Docker Container — checks a container is running (mount the Docker socket).

Set a friendly name, the target, and a check interval (60 seconds is a sensible default).

Step 3: Configure notifications

This is the whole point — set it up before you need it. Go to Settings → Notifications → Setup Notification and pick a channel:

  • Telegram or Discord — great for instant phone pushes.
  • ntfy — self-hosted, privacy-friendly push notifications.
  • Email (SMTP) — universal fallback.

Attach the notification to each monitor. Send a test to confirm it actually reaches your phone.

Step 4: Group and organize

As you add services, use monitor groups to organize them (e.g. "Media", "Network", "Backups"). This keeps a busy dashboard readable and lets you reason about which subsystem is affected during an incident.

Step 5: Publish a status page

Under Status Pages, create a page and add the monitors you want visible. You can:

  • Add your logo and a custom domain.
  • Show incident history and uptime percentages.
  • Share the link with your household so they can self-check before messaging you.

Step 6: Tune to avoid alert fatigue

Good monitoring is quiet monitoring. To avoid false alarms:

  • Add retries (e.g. 2–3) so a single blip doesn't page you.
  • Set "Upside-down" mode only where appropriate.
  • Use a slightly longer interval for services that are naturally slow to respond.

Where Uptime Kuma fits

Uptime Kuma answers "is it up?" extremely well. For "how is it performing over time" (CPU, RAM, disk, temperature), pair it with Grafana and Prometheus. Together they cover the full monitoring picture.

Troubleshooting

  • False downs on HTTPS — accept self-signed certs in the monitor settings, or monitor the internal HTTP port.
  • Docker monitors fail — ensure the Docker socket is mounted read-only.
  • No notifications — re-test the channel; many require a bot token or webhook URL.

Next steps

Add a monitor for your internet connection (ping a reliable external host) and for your backups (an HTTP push monitor your backup script pings on success), so a silent backup failure becomes a visible alert.

Related articles

TutorialsAutomationIntermediate

How to Set Up Grafana and Prometheus

Stand up a metrics stack with Prometheus, node_exporter and Grafana to visualize your home server's health.

1 min read
TutorialsAutomationIntermediate

How to Install Home Assistant

Run Home Assistant on your server for private, local-first smart home automation — installation methods, first integrations and automations.

3 min read
GuidesAutomationIntermediate

Home Server Monitoring: A Complete Guide

Monitor your homelab with Uptime Kuma, Prometheus and Grafana — track uptime, temperatures, disk health and get alerts before things break.

2 min read