Self-Hosted Uptime Monitoring Tool mit Unterstützung für HTTP, TCP, DNS, Docker und 90+ Notification Services wie Slack, Discord und Telegram.
# Uptime Kuma mit Persistent Storage ausführen
docker run -d \
--restart=always \
-p 3001:3001 \
-v uptime-kuma:/app/data \
--name uptime-kuma \
louislam/uptime-kuma:2
# Zugriff unter http://localhost:3001
# Bind nur auf Localhost (kein External Access)
docker run -d \
--restart=always \
-p 127.0.0.1:3001:3001 \
-v uptime-kuma:/app/data \
--name uptime-kuma \
louislam/uptime-kuma:2
# Download Official Compose File
mkdir uptime-kuma && cd uptime-kuma
curl -o compose.yaml \
https://raw.githubusercontent.com/louislam/uptime-kuma/master/compose.yaml
# Service starten
docker compose up -d
# Zugriff unter http://localhost:3001
# Mount Docker Socket für Container Health Monitoring
docker run -d \
--restart=always \
-p 3001:3001 \
-v uptime-kuma:/app/data \
-v /var/run/docker.sock:/var/run/docker.sock:ro \
--name uptime-kuma \
louislam/uptime-kuma:2
# Anforderungen: Node.js 20.4+, Git
# Clone und Setup
git clone https://github.com/louislam/uptime-kuma.git
cd uptime-kuma
npm run setup
# Direkt starten
node server/server.js
# Oder PM2 für Background Operation verwenden
npm install -g pm2
pm2 start server/server.js --name uptime-kuma
| Befehl | Beschreibung |
|---|
docker run -d -p 3001:3001 louislam/uptime-kuma:2 | Uptime Kuma Container starten |
docker compose up -d | Mit Docker Compose starten |
docker compose down | Alle Services stoppen |
docker compose logs -f | Container Logs folgen |
docker restart uptime-kuma | Container neu starten |
docker stop uptime-kuma | Container stoppen |
docker start uptime-kuma | Stopped Container starten |
node server/server.js | Ohne Docker starten |
pm2 start server/server.js --name uptime-kuma | Mit PM2 starten |
pm2 restart uptime-kuma | Mit PM2 neu starten |
pm2 stop uptime-kuma | Mit PM2 stoppen |
pm2 logs uptime-kuma | PM2 Logs anzeigen |
# Neuestes Image pullen
docker pull louislam/uptime-kuma:2
# Aktuellen Container stoppen und entfernen
docker stop uptime-kuma
docker rm uptime-kuma
# Mit neuem Image neu erstellen (Daten persistiert in Volume)
docker run -d \
--restart=always \
-p 3001:3001 \
-v uptime-kuma:/app/data \
--name uptime-kuma \
louislam/uptime-kuma:2
# Pull und Recreate
docker compose pull
docker compose up -d
cd uptime-kuma
git fetch --all
git checkout 2.1.3 --force
npm install --production
npm run download-dist
pm2 restart uptime-kuma
| Type | Beschreibung |
|---|
| HTTP(S) | Monitor Website Availability und Response Time |
| HTTP(S) Keyword | Check für spezifischen Text im Response Body |
| HTTP(S) JSON Query | Validate JSON Response Values |
| TCP Port | Check ob TCP Port offen ist und antwortet |
| Ping | ICMP Ping für Host Availability |
| DNS | Monitor DNS Record Resolution |
| Docker Container | Monitor Container Health Status |
| Steam Game Server | Check Game Server Availability |
| MQTT | Monitor MQTT Broker Connectivity |
| gRPC | Monitor gRPC Service Health |
| Radius | RADIUS Authentication Server Check |
| GameDig | Game Server Monitoring (Multiple Protocols) |
| Push | Passive Monitoring via Heartbeat Endpoint |
| Group | Logische Gruppierung von Monitors |
| Service | Beschreibung |
|---|
| Slack | Channel Webhooks und Bot Notifications |
| Discord | Webhook-basierte Channel Notifications |
| Telegram | Bot API Notifications |
| Microsoft Teams | Incoming Webhook Notifications |
| Mattermost | Self-Hosted Chat Integration |
| Rocket.Chat | Webhook Notifications |
| Google Chat | Space Webhook Notifications |
| Matrix | Decentralized Chat Notifications |
| Service | Beschreibung |
|---|
| Pushover | Mobile Push Notifications |
| Gotify | Self-Hosted Push Server |
| ntfy | HTTP-basierte Pub/Sub Notifications |
| Pushbullet | Cross-Device Push Notifications |
| Signal | Secure Messaging Notifications |
| LINE | LINE Notify Integration |
| Service | Beschreibung |
|---|
| PagerDuty | Incident Alerting und On-Call |
| Opsgenie | Alert Management und Escalation |
| Squadcast | Incident Management |
| Splunk On-Call | VictorOps Alert Routing |
| Better Stack | Uptime und Incident Management |
| Service | Beschreibung |
|---|
| SMTP Email | Custom Email Notifications |
| Webhook | Custom HTTP Endpoint Calls |
| Home Assistant | Smart Home Automation Triggers |
| Apprise | Universal Notification Gateway |
| Variable | Beschreibung | Default |
|---|
UPTIME_KUMA_PORT | Server Port | 3001 |
UPTIME_KUMA_HOST | Bind Address | :: |
DATA_DIR | Data Storage Directory | ./data |
TZ | Timezone | UTC |
UMASK | File Permission Mask | 0000 |
NODE_EXTRA_CA_CERTS | Custom CA Certificates Path | — |
SSL_CERT | SSL Certificate Path | — |
SSL_KEY | SSL Private Key Path | — |
| Feature | Beschreibung |
|---|
| Multiple Pages | Separate Status Pages für verschiedene Services erstellen |
| Custom Domains | Status Pages zu Custom Domain Names mappen |
| Custom CSS | Style Status Pages mit Custom CSS |
| Incident Posts | Incident Reports erstellen, sichtbar auf Status Page |
| Maintenance | Maintenance Windows schedulen |
| Monitor Groups | Organize Monitors in Groups auf Status Page |
# Python API Client installieren
pip install uptime-kuma-api
| Operation | Beschreibung |
|---|
| Add monitor | Programmatisch Monitors erstellen |
| Edit monitor | Monitor Configuration updaten |
| Delete monitor | Monitors entfernen |
| Pause/Resume | Monitor State Toggle |
| Get status | Current Monitor Status abrufen |
| Add notification | Notification Providers konfigurieren |
| Get uptime | Uptime Statistics abfragen |
# compose.yaml
services:
uptime-kuma:
image: louislam/uptime-kuma:2
container_name: uptime-kuma
restart: always
ports:
- "3001:3001"
volumes:
- ./data:/app/data
# Optional: Docker Container Monitoring
# - /var/run/docker.sock:/var/run/docker.sock:ro
environment:
- TZ=UTC
| Feature | Beschreibung |
|---|
| 2FA | Two-Factor Authentication für Login |
| Reverse Proxy | Deploy hinter Nginx, Caddy oder Traefik |
| SSL/TLS | Built-in SSL oder Reverse Proxy Termination |
| Login Rate Limiting | Brute-Force Protection |
| API Keys | Token-basierter API Access |
server {
listen 443 ssl;
server_name status.example.com;
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;
}
}
| Befehl | Beschreibung |
|---|
docker cp uptime-kuma:/app/data ./backup | Data Directory backuppen |
docker cp ./backup/. uptime-kuma:/app/data | Von Backup restoren |
docker volume inspect uptime-kuma | Volume Mount Point suchen |
| Issue | Lösung |
|---|
| Keine UI Zugriff | Check Port Binding: docker port uptime-kuma |
| NFS Volume Errors | Lokale Directories verwenden, nicht Network File Systems |
| WebSocket Errors | Reverse Proxy für WebSocket Upgrade konfigurieren |
| Container nicht starten | Logs überprüfen: docker logs uptime-kuma |
| Data Persistence verloren | Stellen Sie sicher, dass -v uptime-kuma:/app/data Volume verwendet wird |
| Docker Monitoring fails | Mount docker.sock: -v /var/run/docker.sock:/var/run/docker.sock:ro |
| Platform | Status |
|---|
| Linux (x64, ARM) | Unterstützt |
| Windows 10+ (x64) | Unterstützt |
| macOS | Unterstützt |
| Docker Desktop | Unterstützt |
| Kubernetes | Via Docker Image |
| FreeBSD/OpenBSD | Nicht unterstützt |
| Replit/Heroku | Nicht unterstützt |
- Docker Volumes verwenden (nicht Bind Mounts zu NFS) für Data Persistence
- Behind Reverse Proxy mit SSL Termination für Production deployen
- 2FA für Admin Account sofort nach dem ersten Login aktivieren
- Monitoring Intervals auf 60 Sekunden oder mehr für externe Services setzen
- Push Monitor Type für Services hinter Firewalls verwenden
- Mindestens 2 Notification Channels für Redundanz konfigurieren
- Separate Status Pages für interne und externe Audiences erstellen
- Data Directory regelmäßig backuppen — enthält alle Konfiguration
- Timezone über
TZ Environment Variable setzen, um mit Operations Center zu matchen