Why Uptime Kuma?
Paid services like UptimeRobot and Pingdom charge per monitor. Uptime Kuma gives you:
- Unlimited monitors — Check hundreds of services for free.
- 90+ notification channels — Slack, Telegram, Discord, email, PagerDuty, and more.
- Public status pages — Professional branded pages for your users.
- SSL certificate monitoring — Get alerted days before certificates expire.
- Beautiful UI — Modern, responsive dashboard.
Prerequisites
- Docker installed on any Linux server.
- At least 256 MB RAM.
- Port 3001 open.
Step 1: Deploy with Docker
docker run -d \
--restart=always \
-p 3001:3001 \
-v uptime-kuma:/app/data \
--name uptime-kuma \
louislam/uptime-kuma:latest
Access at http://your-server:3001. Create an admin account on first visit.
Step 2: Add Monitors
Click Add New Monitor and choose a type:
| Monitor Type | Use Case |
|---|---|
| HTTP(S) | Check website availability and response codes |
| TCP Port | Verify a service is listening (e.g., MySQL 3306) |
| Ping | Basic ICMP reachability check |
| DNS | Verify DNS resolution returns expected records |
| Docker Container | Check if a container is running (via Docker socket) |
| SSL Certificate | Alert before certificate expiration |
Example: HTTP Monitor
- URL:
https://example.com - Heartbeat Interval:
60seconds - Retries:
3(avoids false positives from brief network blips) - Accepted Status Codes:
200-299 - Keyword: (Optional) Check that the page contains a specific string.
Step 3: Configure Notifications
Go to Settings → Notifications → Setup Notification.
Slack: Paste a Slack Incoming Webhook URL.
Telegram: Enter your Bot Token and Chat ID.
Email (SMTP): Enter SMTP server, port, username, password, from/to addresses.
Then on each monitor, toggle which notifications should fire.
Step 4: Create a Status Page
- Go to Status Pages → New Status Page.
- Name: “Company Services Status”
- Add monitors in groups (e.g., “Web Services”, “APIs”, “Databases”).
- Customize the logo, title, and description.
- Share the status page URL with your team or customers.
Troubleshooting
| Problem | Solution |
|---|---|
| False positive alerts | Increase “Retries” to 3-5; increase heartbeat interval |
| Notifications not arriving | Test the notification in Settings; check webhook URL or SMTP credentials |
| High memory usage | Reduce the number of monitors or increase check interval |
| Can’t monitor internal services | Uptime Kuma must be on the same network or have VPN access to private services |
| Status page not loading | Verify the container is running: docker ps; check port 3001 is mapped |
Summary
- Deploy with a single Docker command — no dependencies.
- Monitor HTTP, TCP, DNS, ping, Docker containers, and SSL certs.
- Send alerts to 90+ services including Slack, Telegram, and email.
- Create public status pages for customer-facing uptime transparency.