Uptime Kuma: Is Everything Up?

← Self-Hosting · Foundations 7 of 8 · Replaces: UptimeRobot / Pingdom

What You'll Build

Uptime Kuma checks each of your apps every 60 seconds and messages you if one stops answering — so you find out before your family does. It also graphs response times and can publish a status page.

Port: 3001 · Time: 20 minutes · Difficulty: Easy

Step 1: Start Uptime Kuma

mkdir -p ~/stacks/uptime-kuma && cd ~/stacks/uptime-kuma
nano compose.yaml
services:
  uptime-kuma:
    image: louislam/uptime-kuma:2      # version 2
    container_name: uptime-kuma
    restart: unless-stopped
    ports:
      - "3001:3001"
    volumes:
      - ./data:/app/data               # monitors, history, settings
docker compose up -d

Open http://192.168.1.50:3001, choose the default embedded database if asked, and create your admin account.

Step 2: Add Monitors

Click + Add New Monitor for each app:

Monitor typeUse it forExample
HTTP(s)Any web apphttps://photos.home.example.com
HTTP(s) – KeywordCheck the page really loaded (not an error page)Keyword Immich
DNSPi-hole / AdGuard answeringHostname example.com, resolver 192.168.1.50
PingDevices: router, NAS, printer192.168.1.1
Docker ContainerApps with no web pageNeeds the Docker socket mounted (see tip)

To use Docker Container monitors, add - /var/run/docker.sock:/var/run/docker.sock:ro under volumes:, run docker compose up -d, then add a Docker Host in Settings → Docker Hosts using the socket.

Step 3: Get Notified on Your Phone (ntfy)

ntfy is a free push-notification app with no account needed.

  1. Install the ntfy app (Android/iOS) and subscribe to a hard-to-guess topic name, e.g. homeserver-alerts-k29xq.
  2. In Uptime Kuma: Settings → Notifications → Setup Notification → type ntfy. Server https://ntfy.sh, topic the same name → Test.
  3. Tick Default enabled and Apply on all existing monitors → Save.

Prefer Discord, Telegram, email, or Home Assistant? They're all in the same notification-type list.

Step 4: A Status Page (Optional)

Status Pages → New Status Page, pick the monitors to show, and share the link with your household so they can check "is Jellyfin down, or is it just me?"

Troubleshooting

What's Next?

Want graphs of CPU, memory, temperature, and disk over time?

Foundations 8: Grafana + Prometheus →