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 TypeUse Case
HTTP(S)Check website availability and response codes
TCP PortVerify a service is listening (e.g., MySQL 3306)
PingBasic ICMP reachability check
DNSVerify DNS resolution returns expected records
Docker ContainerCheck if a container is running (via Docker socket)
SSL CertificateAlert before certificate expiration

Example: HTTP Monitor

  • URL: https://example.com
  • Heartbeat Interval: 60 seconds
  • 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

  1. Go to Status Pages → New Status Page.
  2. Name: “Company Services Status”
  3. Add monitors in groups (e.g., “Web Services”, “APIs”, “Databases”).
  4. Customize the logo, title, and description.
  5. Share the status page URL with your team or customers.

Troubleshooting

ProblemSolution
False positive alertsIncrease “Retries” to 3-5; increase heartbeat interval
Notifications not arrivingTest the notification in Settings; check webhook URL or SMTP credentials
High memory usageReduce the number of monitors or increase check interval
Can’t monitor internal servicesUptime Kuma must be on the same network or have VPN access to private services
Status page not loadingVerify 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.