Uptime Kuma with Docker Compose
Uptime Kuma is a self-hosted uptime monitor with a clean UI. It supports HTTP, TCP, DNS, ping, and more — with notifications via Slack, Discord, email, Telegram, and others.
Compose
services:
uptime-kuma:
image: louislam/uptime-kuma:latest
container_name: uptime-kuma
restart: unless-stopped
volumes:
- ./data:/app/data
ports:
- '3001:3001'
Access at http://<host>:3001. Create an admin account on first visit.
What to monitor
Beyond external URLs, Uptime Kuma is useful for internal services:
- HTTP: your self-hosted apps, OPNsense web UI
- TCP: databases, SSH, any open port
- Ping: network devices, servers
- DNS: verify your DNS resolvers return expected records
- Docker container: if running on the same host, monitor containers by name
Notifications
Set up a notification channel first (Settings → Notifications) before adding monitors so you don’t miss the first alert. Telegram and Discord webhooks are the easiest to set up quickly.
Status page
Kuma has a public status page feature (Settings → Status Pages) — useful for sharing service status with others without exposing the full admin UI.
Backups
All data is in ./data. Back up that directory. The SQLite database is at ./data/kuma.db.