Uptime Kuma is a self-hosted monitoring tool for tracking uptime of websites, APIs, and services. Beautiful UI, multiple notification channels, and status pages.
- Multiple Monitor Types — HTTP(s), TCP, Ping, DNS, and more
- Status Pages — Public status pages for your services
- Notifications — 90+ notification services (Telegram, Discord, Slack, Email...)
- Beautiful UI — Modern, responsive dashboard
- Multi-Language — Available in 30+ languages
- Certificate Monitoring — SSL certificate expiry alerts
- Maintenance Windows — Scheduled maintenance periods
- Docker and Docker Compose
- External Docker networks (
kuma,kuma-db) - Reverse proxy (Caddy, Nginx, Traefik)
docker network create kuma
docker network create kuma-dbCopy and edit the environment file:
cp .env.example .env
nano .envSet these values:
UPTIME_KUMA_DB_NAME— Database nameUPTIME_KUMA_DB_USERNAME— Database usernameUPTIME_KUMA_DB_PASSWORD— Database passwordMYSQL_ROOT_PASSWORD— MariaDB root password
docker compose up -d- Access Uptime Kuma at
http://your-server:3008 - Create an admin account
- Start adding monitors
| Variable | Description | Required |
|---|---|---|
UPTIME_KUMA_DB_NAME |
Database name | Yes |
UPTIME_KUMA_DB_USERNAME |
Database username | Yes |
UPTIME_KUMA_DB_PASSWORD |
Database password | Yes |
MYSQL_ROOT_PASSWORD |
MariaDB root password | Yes |
PUID |
User ID for file permissions | No |
PGID |
Group ID for file permissions | No |
status.example.com {
reverse_proxy http://localhost:3008
}
| Port | Service | Description |
|---|---|---|
| 3008 | HTTP | Web interface |
| Path | Description |
|---|---|
./data |
Uptime Kuma data (SQLite mode) |
./config |
MariaDB configuration |
| Type | Description |
|---|---|
| HTTP(s) | Website availability and response time |
| TCP Port | Port connectivity check |
| Ping | ICMP ping monitoring |
| DNS | DNS resolution check |
| Push | Heartbeat monitoring (cron jobs, etc.) |
| Steam Game Server | Game server status |
| Docker Container | Container health via Docker socket |
- Go to Settings → Notifications
- Click Setup Notification
- Choose your service (Telegram, Discord, Email, etc.)
- Configure credentials and test
- Telegram: Create a bot via @BotFather
- Discord: Create a webhook in channel settings
- Email: Use SMTP credentials
- Slack: Create an incoming webhook
- Go to Status Pages
- Click New Status Page
- Add monitors to display
- Share the public URL
Uptime Kuma is released under the MIT License.