Zum Inhalt springen

Uptime Kuma

Self-Hosted Uptime Monitoring Tool mit Unterstützung für HTTP, TCP, DNS, Docker und 90+ Notification Services wie Slack, Discord und Telegram.

Installation

Docker (Empfohlen)

# 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

Docker — Nur Localhost

# 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

Docker Compose

# 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

Docker mit Container Monitoring

# 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

Non-Docker Installation

# 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

Grundlegende Befehle

BefehlBeschreibung
docker run -d -p 3001:3001 louislam/uptime-kuma:2Uptime Kuma Container starten
docker compose up -dMit Docker Compose starten
docker compose downAlle Services stoppen
docker compose logs -fContainer Logs folgen
docker restart uptime-kumaContainer neu starten
docker stop uptime-kumaContainer stoppen
docker start uptime-kumaStopped Container starten
node server/server.jsOhne Docker starten
pm2 start server/server.js --name uptime-kumaMit PM2 starten
pm2 restart uptime-kumaMit PM2 neu starten
pm2 stop uptime-kumaMit PM2 stoppen
pm2 logs uptime-kumaPM2 Logs anzeigen

Update-Befehle

Docker

# 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

Docker Compose

# Pull und Recreate
docker compose pull
docker compose up -d

Non-Docker

cd uptime-kuma
git fetch --all
git checkout 2.1.3 --force
npm install --production
npm run download-dist
pm2 restart uptime-kuma

Monitor Types

TypeBeschreibung
HTTP(S)Monitor Website Availability und Response Time
HTTP(S) KeywordCheck für spezifischen Text im Response Body
HTTP(S) JSON QueryValidate JSON Response Values
TCP PortCheck ob TCP Port offen ist und antwortet
PingICMP Ping für Host Availability
DNSMonitor DNS Record Resolution
Docker ContainerMonitor Container Health Status
Steam Game ServerCheck Game Server Availability
MQTTMonitor MQTT Broker Connectivity
gRPCMonitor gRPC Service Health
RadiusRADIUS Authentication Server Check
GameDigGame Server Monitoring (Multiple Protocols)
PushPassive Monitoring via Heartbeat Endpoint
GroupLogische Gruppierung von Monitors

Notification Services (90+)

Chat & Messaging

ServiceBeschreibung
SlackChannel Webhooks und Bot Notifications
DiscordWebhook-basierte Channel Notifications
TelegramBot API Notifications
Microsoft TeamsIncoming Webhook Notifications
MattermostSelf-Hosted Chat Integration
Rocket.ChatWebhook Notifications
Google ChatSpace Webhook Notifications
MatrixDecentralized Chat Notifications

Push & Mobile

ServiceBeschreibung
PushoverMobile Push Notifications
GotifySelf-Hosted Push Server
ntfyHTTP-basierte Pub/Sub Notifications
PushbulletCross-Device Push Notifications
SignalSecure Messaging Notifications
LINELINE Notify Integration

Incident Management

ServiceBeschreibung
PagerDutyIncident Alerting und On-Call
OpsgenieAlert Management und Escalation
SquadcastIncident Management
Splunk On-CallVictorOps Alert Routing
Better StackUptime und Incident Management

Email & Webhooks

ServiceBeschreibung
SMTP EmailCustom Email Notifications
WebhookCustom HTTP Endpoint Calls
Home AssistantSmart Home Automation Triggers
AppriseUniversal Notification Gateway

Environment Variables

VariableBeschreibungDefault
UPTIME_KUMA_PORTServer Port3001
UPTIME_KUMA_HOSTBind Address::
DATA_DIRData Storage Directory./data
TZTimezoneUTC
UMASKFile Permission Mask0000
NODE_EXTRA_CA_CERTSCustom CA Certificates Path
SSL_CERTSSL Certificate Path
SSL_KEYSSL Private Key Path

Status Pages

FeatureBeschreibung
Multiple PagesSeparate Status Pages für verschiedene Services erstellen
Custom DomainsStatus Pages zu Custom Domain Names mappen
Custom CSSStyle Status Pages mit Custom CSS
Incident PostsIncident Reports erstellen, sichtbar auf Status Page
MaintenanceMaintenance Windows schedulen
Monitor GroupsOrganize Monitors in Groups auf Status Page

Python API (Automation)

# Python API Client installieren
pip install uptime-kuma-api

API Usage Examples

OperationBeschreibung
Add monitorProgrammatisch Monitors erstellen
Edit monitorMonitor Configuration updaten
Delete monitorMonitors entfernen
Pause/ResumeMonitor State Toggle
Get statusCurrent Monitor Status abrufen
Add notificationNotification Providers konfigurieren
Get uptimeUptime Statistics abfragen

Docker Compose Configuration

# 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

Security Configuration

FeatureBeschreibung
2FATwo-Factor Authentication für Login
Reverse ProxyDeploy hinter Nginx, Caddy oder Traefik
SSL/TLSBuilt-in SSL oder Reverse Proxy Termination
Login Rate LimitingBrute-Force Protection
API KeysToken-basierter API Access

Reverse Proxy Setup

Nginx

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;
    }
}

Backup & Restore

BefehlBeschreibung
docker cp uptime-kuma:/app/data ./backupData Directory backuppen
docker cp ./backup/. uptime-kuma:/app/dataVon Backup restoren
docker volume inspect uptime-kumaVolume Mount Point suchen

Troubleshooting

IssueLösung
Keine UI ZugriffCheck Port Binding: docker port uptime-kuma
NFS Volume ErrorsLokale Directories verwenden, nicht Network File Systems
WebSocket ErrorsReverse Proxy für WebSocket Upgrade konfigurieren
Container nicht startenLogs überprüfen: docker logs uptime-kuma
Data Persistence verlorenStellen Sie sicher, dass -v uptime-kuma:/app/data Volume verwendet wird
Docker Monitoring failsMount docker.sock: -v /var/run/docker.sock:/var/run/docker.sock:ro

Unterstützte Plattformen

PlatformStatus
Linux (x64, ARM)Unterstützt
Windows 10+ (x64)Unterstützt
macOSUnterstützt
Docker DesktopUnterstützt
KubernetesVia Docker Image
FreeBSD/OpenBSDNicht unterstützt
Replit/HerokuNicht unterstützt

Best Practices

  • 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