Zum Hauptinhalt springen
S-EDV news
← Alle Anleitungen
📘 Anleitung Docker 29.05.2026 · 6 min Lesezeit

Uptime Kuma installieren: Monitoring mit Docker & Nginx Proxy Manager

Uptime Kuma 2 per Docker Compose installieren, Datenbank wählen und über den Nginx Proxy Manager mit HTTPS veröffentlichen. Mit Monitoren, Benachrichtigungen, Updates und konsistentem Backup.

Geprüft am 30.09.2026 · für uptime-kuma 2.5.5

WerbelinksMit * markierte Links sind Werbelinks: Bei einem Kauf erhalten wir eine Provision, der Preis bleibt gleich. Als Amazon-Partner verdiene ich an qualifizierten Verkäufen. Mehr dazu

Server-Rack in einem ruhigen Büro, grüne Status-LEDs signalisieren den laufenden Betrieb

Wer eigene Webseiten, Server oder Dienste betreibt, möchte sofort erfahren, wenn etwas ausfällt. Uptime Kuma ist ein quelloffenes, selbstgehostetes Monitoring-Tool im Stil von „Uptime Robot“ – nur auf Ihrer eigenen Infrastruktur. Es überwacht Webseiten, APIs, Ports, Ping, DNS und SSL-Zertifikate, zeigt historische Verlaufsgraphen, erstellt öffentliche Status-Seiten und benachrichtigt Sie über zahlreiche Kanäle wie E-Mail, Telegram, Discord oder Webhooks. Anders als bei kommerziellen Diensten gibt es keine Obergrenze für Monitore, das kürzeste Prüfintervall liegt bei 20 Sekunden. In dieser Anleitung installieren Sie Uptime Kuma 2 per Docker Compose und stellen es anschließend über den Nginx Proxy Manager per HTTPS bereit.


Voraussetzungen

  1. Linux-Server (z. B. Ubuntu oder Debian) mit Docker Engine und Compose-Plugin, siehe Docker und Docker Compose auf Linux installieren
  2. Hardware: 1 CPU-Kern und 1 GB RAM reichen für einige Dutzend Monitore (im Test belegte der frisch eingerichtete Container rund 150 MB RAM), dazu etwa 1 GB Speicher für das Image (rund 575 MB komprimiert) und die Datenbank. Das Image gibt es für x86 (amd64) und ARM (arm64, armv7).
  3. Optional eine eigene Subdomain wie status.ihre-domain.de für den Zugriff per HTTPS
  4. Geöffnete Ports 80 und 443 in der Firewall, falls Sie den Nginx Proxy Manager einsetzen

Ein wichtiger Hinweis vorab zur Datenbank: Uptime Kuma nutzt SQLite und benötigt POSIX-Dateisperren. Legen Sie das Datenverzeichnis daher immer auf ein lokales Volume oder Verzeichnis, nicht auf eine NFS-Freigabe, da es sonst zu Datenbankbeschädigungen kommen kann.


Schritt 1: Verzeichnis anlegen

Legen Sie ein eigenes Verzeichnis an, damit Compose-Datei und Daten an einer Stelle liegen und sich gemeinsam sichern lassen:

sudo mkdir -p /opt/uptime-kuma
cd /opt/uptime-kuma

Damit der Nginx Proxy Manager den Container über dessen Namen erreicht, hängen beide am gemeinsamen Docker-Netzwerk proxy-net. Haben Sie es bereits in der Anleitung Vaultwarden mit Docker und Nginx Proxy Manager angelegt, überspringen Sie den folgenden Befehl. Andernfalls erstellen Sie es so:

docker network create proxy-net

Verifizieren: docker network ls --filter name=proxy-net listet das Netzwerk proxy-net, und pwd zeigt /opt/uptime-kuma.


Schritt 2: Docker-Compose-Datei erstellen

Erstellen Sie die Compose-Datei im Verzeichnis:

nano docker-compose.yml

Fügen Sie folgende Konfiguration ein:

services:
  uptime-kuma:
    image: louislam/uptime-kuma:2
    container_name: uptime-kuma
    restart: always
    ports:
      - "3001:3001"
    volumes:
      - ./data:/app/data
    environment:
      - TZ=Europe/Berlin
    networks:
      - proxy-net

networks:
  proxy-net:
    external: true

Mit TZ=Europe/Berlin passen die Zeitstempel zur lokalen Zeit. Das Datenverzeichnis liegt mit ./data als lokales Verzeichnis vor, wie es für SQLite empfohlen wird. Der Tag 2 folgt allen Versionen der Hauptversion 2 (Stand September 2026: 2.5.5). Wer Updates bewusst steuern will, schreibt die Version fest, etwa louislam/uptime-kuma:2.5.5. Sobald der Zugriff über den Nginx Proxy Manager läuft, können Sie die Portfreigabe auf "127.0.0.1:3001:3001" beschränken, damit Uptime Kuma nicht mehr unverschlüsselt aus dem Netz erreichbar ist.

Verifizieren: docker compose config gibt die Konfiguration ohne Fehlermeldung aus.


Schritt 3: Uptime Kuma starten

Starten Sie den Container im Hintergrund:

docker compose up -d

Prüfen Sie anschließend, ob der Container läuft:

docker compose ps
docker compose logs --tail 20

Verifizieren: Nach etwa einer Minute zeigt docker compose ps den Status Up … (healthy), im Log steht Uptime Kuma Version: 2.x und Waiting for user action.... curl -I http://localhost:3001 antwortet mit 302 Found und der Weiterleitung auf /setup-database.


Schritt 4: Ersteinrichtung im Browser

Rufen Sie die Weboberfläche unter http://server-ip:3001 auf. Seit Version 2 fragt Uptime Kuma zuerst nach der Datenbank: SQLite (Datei im Ordner data), eingebettete MariaDB oder eine externe MariaDB/MySQL. Für eine einzelne Installation mit einigen Dutzend Monitoren wählen Sie SQLite. Die Initialisierung dauert je nach Hardware bis zu einer Minute.

Danach legen Sie das Administratorkonto mit Benutzername und Passwort an. Wählen Sie ein starkes Passwort und aktivieren Sie unter Einstellungen → Sicherheit die Zwei-Faktor-Authentifizierung, denn das Konto ist der einzige Zugriffsschutz.

Verifizieren: Nach dem Login erscheint das leere Dashboard, im Ordner /opt/uptime-kuma/data liegen db-config.json und kuma.db.


Schritt 5: Per Nginx Proxy Manager absichern

Uptime Kuma basiert auf WebSockets. Anders als bei klassischen Web-Apps benötigt der Reverse Proxy daher zusätzlich die Header Upgrade und Connection, damit die Live-Aktualisierung funktioniert. Der Nginx Proxy Manager bringt dafür einen passenden Schalter mit.

Legen Sie in der Admin-Oberfläche unter Hosts → Proxy Hosts → Add Proxy Host einen neuen Eintrag an.

Im Reiter Details:

  1. Domain Names: status.ihre-domain.de
  2. Scheme: http
  3. Forward Hostname / IP: uptime-kuma (der Containername)
  4. Forward Port: 3001
  5. Websockets Support: aktivieren (ohne diesen Schalter lädt das Dashboard nicht vollständig)

Im Reiter SSL:

  1. SSL Certificate: „Request a new SSL Certificate“
  2. Force SSL und HTTP/2 Support aktivieren
  3. Den Let's-Encrypt-Bedingungen zustimmen und eine gültige E-Mail-Adresse hinterlegen

Voraussetzung für das Zertifikat: Der DNS-Eintrag der Subdomain zeigt auf den Server, und Port 80 ist aus dem Internet erreichbar.

Verifizieren: curl -I https://status.ihre-domain.de liefert HTTP/2 302 mit Weiterleitung auf /dashboard, im Browser erscheint ein gültiges Zertifikat und das Dashboard aktualisiert sich live.


Schritt 6: Ersten Monitor anlegen

Klicken Sie im Dashboard auf „Neuen Monitor hinzufügen“ („Add New Monitor“). Für eine Webseite eignet sich der HTTP(s)-Monitor: Tragen Sie die URL ein, legen Sie ein Prüfintervall fest (z. B. 60 Sekunden) und speichern Sie. Uptime Kuma unterstützt darüber hinaus weitere Monitor-Typen:

  1. HTTP/HTTPS: prüft eine URL auf den erwarteten Status-Code, optional auch auf bestimmte Inhalte oder das Ablaufdatum des SSL-Zertifikats
  2. TCP-Port: prüft, ob ein Port Verbindungen annimmt – geeignet für Datenbanken oder Mailserver
  3. Ping: einfache Erreichbarkeitsprüfung per ICMP
  4. Push: für interne Jobs oder Cronjobs, die sich aktiv bei Uptime Kuma melden

Verifizieren: Der neue Monitor zeigt nach dem ersten Prüfintervall einen grünen Balken, bei einer erreichbaren Webseite mit der Meldung 200 - OK.


Schritt 7: Benachrichtigungen und Status-Seite

Richten Sie unter Einstellungen → Benachrichtigungen („Settings → Notifications“) einen Kanal ein, etwa E-Mail (SMTP), Telegram, Discord oder einen Webhook, und ordnen Sie ihn Ihren Monitoren zu.

Unter Statusseiten („Status Pages“) erstellen Sie optional eine öffentliche Seite mit ausgewählten Monitoren und deren Verlauf, etwa um Kunden über die Verfügbarkeit Ihrer Dienste zu informieren.

Verifizieren: Die Schaltfläche Test im Benachrichtigungsdialog stellt eine Testnachricht auf dem gewählten Kanal zu. Die Statusseite ist unter https://status.ihre-domain.de/status/<slug> ohne Anmeldung erreichbar.


Schritt 8: Updates und Backups

Für ein Update wechseln Sie in das Verzeichnis und führen aus:

cd /opt/uptime-kuma
docker compose pull
docker compose up -d --force-recreate

Für das Backup zählt der Ordner data. Er enthält die SQLite-Datenbank mit allen Monitoren, Einstellungen und Verlaufsdaten. Weil SQLite im laufenden Betrieb Änderungen in kuma.db-wal zwischenspeichert, stoppen Sie den Container für die Sicherung kurz. Die Dateien gehören root, deshalb braucht tar sudo:

cd /opt/uptime-kuma
docker compose stop
sudo tar czf uptime-kuma-backup-$(date +%F).tar.gz data
docker compose start

Verifizieren: docker compose ps zeigt nach dem Update wieder healthy, im Log steht die neue Version, und tar tzf uptime-kuma-backup-*.tar.gz | grep kuma.db listet die Datenbankdatei.


Typische Fehler

  • Dashboard lädt nicht oder zeigt dauerhaft „Verbindung verloren“: Im Proxy Host fehlt der WebSocket-Support. Schalter aktivieren und speichern.
  • 502 Bad Gateway im Nginx Proxy Manager: Beide Container hängen nicht im selben Netzwerk. docker network inspect proxy-net muss uptime-kuma und den Proxy-Container enthalten.
  • „database is locked“ oder beschädigte Datenbank: Der Ordner data liegt auf einer NFS- oder SMB-Freigabe. Auf ein lokales Verzeichnis umziehen.
  • Falsche Uhrzeiten in Verlauf und Benachrichtigungen: TZ fehlt oder ist falsch gesetzt.

Nächste Schritte nach der Installation

Uptime Kuma überwacht jetzt Ihre Dienste. Hinterlegen Sie alle wichtigen Webseiten und Server als Monitore und testen Sie mindestens einen Benachrichtigungskanal. Weitere Konfigurationen finden Sie in den Docker-Anleitungen und im offiziellen Uptime-Kuma-Wiki. Für die Überwachung von Serverressourcen wie CPU und Speicher ergänzt Beszel das Monitoring.