What is Uptime Kuma
Uptime Kuma is a free, self-hosted uptime monitoring tool. It monitors HTTP(s), TCP, Ping, DNS, and more — with a beautiful dashboard and multi-channel notifications.
Docker Compose Deployment
# docker-compose.yml
version: '3.8'
services:
uptime-kuma:
image: louislam/uptime-kuma:latest
container_name: uptime-kuma
ports:
- "127.0.0.1:3001:3001"
volumes:
- ./uptime-kuma-data:/app/data
restart: unless-stopped
Nginx Reverse Proxy
# /etc/nginx/sites-available/status.example.com
server {
listen 443 ssl http2;
server_name status.example.com;
ssl_certificate /etc/letsencrypt/live/status.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/status.example.com/privkey.pem;
location / {
proxy_pass http://127.0.0.1:3001;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Quick Deploy Script
#!/bin/bash
# deploy-uptime-kuma.sh
# 1. Create directory
mkdir -p /opt/uptime-kuma && cd /opt/uptime-kuma
# 2. Create docker-compose.yml (paste the YAML above)
nano docker-compose.yml
# 3. Start container
docker-compose up -d
# 4. Verify
docker-compose ps
docker-compose logs -f
echo "Access at http://your-server:3001"
echo "Set up Nginx reverse proxy for HTTPS access"
First-Time Setup
- Visit
http://your-server:3001(or your domain if using Nginx) - Create admin account
- Click Add Monitor → choose monitor type
- Enter your website URL and check interval
- Configure notification (Telegram, Email, Slack, etc.)
Notification Setup Examples
Telegram
1. Create a bot via @BotFather on Telegram
2. Get Bot Token and Chat ID
3. In Uptime Kuma: Settings → Notifications → Add → Telegram
4. Enter Bot Token and Chat ID → Test
Email (SMTP)
1. Settings → Notifications → Add → SMTP
2. Enter SMTP server, port, username, password
3. Use TLS for security
4. Send test email to verify
Features
- ✅ HTTP(s), TCP, Ping, DNS, DNSBL monitoring
- ✅ Real-time status dashboard
- ✅ Public status page
- ✅ 90+ notification services (Telegram, Slack, Discord, Email, etc.)
- ✅ SSL certificate expiry monitoring
- ✅ Maintenance windows
- ✅ API for integration