What is Uptime Kuma?
Uptime Kuma is a self-hosted monitoring tool that checks if your websites, APIs, and services are up. Think of it as a free, open-source alternative to UptimeRobot, Pingdom, or Better Uptime — with a beautiful UI and 20+ notification methods.
Why Uptime Kuma?
- 100% free — open-source, self-hosted
- Beautiful UI — modern dashboard, status pages included
- 20+ notifications — Slack, Discord, Telegram, Email, PagerDuty, Webhooks
- Multiple check types — HTTP, TCP, Ping, DNS, Docker, gRPC, SQL
- Status pages — public status page for your users
- 2-minute setup — one Docker command
Quick Start
# One command to run
docker run -d --restart=always -p 3001:3001 \
-v uptime-kuma:/app/data \
--name uptime-kuma \
louislam/uptime-kuma:1
# Dashboard at http://localhost:3001
Monitor Types
HTTP(s) — Check website availability and response time
TCP Port — Check if a port is open (databases, Redis)
Ping — ICMP ping for server availability
DNS — Verify DNS records resolve correctly
Docker — Check container health status
gRPC — Monitor gRPC service health
SQL Query — Run a query and check result
MQTT — Monitor MQTT broker topics
Gamedig — Monitor game servers
Push — Heartbeat-based (your app pushes to Kuma)
API Usage
# Uptime Kuma uses Socket.IO for real-time communication
# For REST-like access, use the Push monitor type:
# Your app sends heartbeat to Kuma
curl "http://kuma.yourdomain.com/api/push/YOUR_PUSH_TOKEN?status=up&msg=OK&ping=50"
# For cron jobs — report success/failure
0 * * * * curl -s "http://kuma.yourdomain.com/api/push/TOKEN?status=up&msg=Backup%20complete" || curl -s "http://kuma.yourdomain.com/api/push/TOKEN?status=down&msg=Backup%20failed"
Public Status Page
# Built-in status page features:
- Custom domain support
- Group monitors by category
- Incident management
- Maintenance windows
- Custom CSS styling
- Embedded status badge for README
Notification Setup (Telegram)
1. Create bot via @BotFather on Telegram
2. Get bot token and chat ID
3. Add notification in Uptime Kuma:
Type: Telegram
Token: YOUR_BOT_TOKEN
Chat ID: YOUR_CHAT_ID
4. Test notification
5. Assign to monitors
Uptime Kuma vs Alternatives
| Feature | Uptime Kuma | UptimeRobot | Better Uptime | Pingdom |
|---|---|---|---|---|
| Cost | Free | Free/Pro $7 | $20/mo | $15/mo |
| Self-hosted | Yes | No | No | No |
| Monitors (free) | Unlimited | 50 | 10 | 1 |
| Check interval | 20s minimum | 5m free | 3m | 1m |
| Status page | Yes | Yes | Yes | Yes |
| Notifications | 20+ channels | 5 channels | 10+ channels | 10+ |
| Docker monitoring | Yes | No | No | No |
Real-World Impact
A small agency monitored 30 client websites with UptimeRobot free tier. At 50 monitors they hit the limit and needed Pro at $7/month. After deploying Uptime Kuma on their existing $5 VPS: unlimited monitors, 20-second intervals (vs 5-minute on UptimeRobot free), Docker container health checks, and custom status pages per client. Saved $84/year and got better monitoring.
Setting up monitoring for your infrastructure? I help teams implement reliable observability. Contact spinov001@gmail.com or explore my data tools on Apify.
Top comments (0)