Uptime Kuma is a friendly, self-hosted alternative to commercial uptime monitoring services — tracking availability of your websites, APIs, and services with a clean dashboard and flexible notification options.
What Uptime Kuma Monitors
HTTP(S) endpoints, TCP ports, DNS records, ping/ICMP, and more — giving you visibility into whether your services (and others you depend on) are actually up and responding correctly.
Prerequisites
- Docker installed
Step 1 — Run Uptime Kuma with Docker
docker run -d \
--name uptime-kuma \
--restart unless-stopped \
-p 3001:3001 \
-v uptime-kuma-data:/app/data \
louislam/uptime-kuma:1
Step 2 — Access the Web Interface
http://YOUR_SERVER_IP:3001
Step 3 — Create Your Admin Account
The first visit prompts you to create an administrator account.
Step 4 — Add Your First Monitor
Click Add New Monitor, choose the monitor type (HTTP, TCP Port, Ping, DNS, and more), enter the target, and set your check interval.
Step 5 — Configure Notifications
Under Settings → Notifications, add a notification channel — Uptime Kuma supports many options including Telegram, Discord, email, Slack, and generic webhooks.
Step 6 — Add HTTPS
See How to Install Nginx Proxy Manager with Docker to route a domain to port 3001 with SSL, since your monitoring dashboard itself deserves proper access security.
Setting Up Status Pages
Uptime Kuma includes a built-in public status page feature — group monitors into a shareable page showing current status, similar in spirit to How to Build a Status Page for Your Service, but built directly into this same tool.
Important: Don't Host Uptime Kuma on the Same Server It Monitors
If your monitored service and your monitoring tool are on the same VPS, a full server outage takes down both simultaneously — you won't get an alert about the very outage you most need to know about. Host Uptime Kuma on separate, independent infrastructure from what it's monitoring.
Monitoring Multiple Services at Different Intervals
Set check intervals based on how quickly you need to know about an issue — critical services might warrant a 30-60 second interval, while less critical ones can check less frequently, reducing unnecessary load on the monitored services.
Setting Up Maintenance Windows
Configure planned maintenance windows to avoid alert noise during expected, deliberate downtime — see How to Reduce Alert Fatigue with Smart Alerting Rules for the broader principle this specific feature supports.
Backing Up Uptime Kuma Data
docker run --rm -v uptime-kuma-data:/data -v $(pwd):/backup alpine tar czf /backup/uptime-kuma-backup.tar.gz /data
Common Errors
Monitor shows down but the service is actually up — verify the monitor's target URL/port is correct, and check for firewall rules that might block Uptime Kuma's server specifically from reaching the monitored endpoint.
Continue Reading
- How to Build a Status Page for Your Service
- How to Set Up Effective Server Alerting (Without Alert Fatigue)
- How to Install Nginx Proxy Manager with Docker
Browse more articles in Popular Self-Hosted Applications.