
Docker Compose auf dem VPS: Webserver, Datenbank & Reverse Proxy richtig betreiben
Praxisnaher Guide für Docker Compose auf dem VPS: Webserver, Datenbank, Reverse Proxy, TLS, Backups, Updates und Sicherheit richtig planen und betreiben.
Uptime Kuma ist eine self-hosted Monitoring-Lösung, die unter der MIT-Lizenz als Open-Source-Projekt veröffentlicht wird. Das Tool wurde ursprünglich von Louis (louislam) entwickelt und hat sich seit der ersten Veröffentlichung im Jahr 2021 zu einer der populärsten Alternativen zu kommerziellen Diensten wie UptimeRobot, Pingdom oder StatusPage.io entwickelt. Im Jahr 2026 zählt das Repository auf GitHub über 60.000 Stars und wird kontinuierlich von einer aktiven Community weiterentwickelt.
Die Kernfunktion von Uptime Kuma besteht darin, die Verfügbarkeit von Diensten, Servern und Webseiten in Echtzeit zu überwachen. Dabei werden in regelmäßigen Intervallen Prüfungen durchgeführt und bei Ausfällen oder Performance-Problemen sofortige Benachrichtigungen versendet. Neben dem reinen Uptime-Monitoring bietet die Software auch die Möglichkeit, öffentliche Status Pages zu erstellen, die Ihren Kunden die aktuelle Verfügbarkeit Ihrer Dienste anzeigen.
Im Gegensatz zu vielen kommerziellen Monitoring-Diensten behalten Sie bei Uptime Kuma die vollständige Kontrolle über Ihre Daten. Es gibt keine Beschränkungen hinsichtlich der Anzahl der Monitore, der Monitoring-Intervalle oder der Benachrichtigungen. Zudem entfallen laufende Kosten, da die Software kostenlos auf Ihrem eigenen Server betrieben wird. Die Architektur basiert auf Node.js, SQLite (oder MariaDB/MySQL) und nutzt einen modernen, responsiven Web-Frontend, das auf allen Endgeräten optimal dargestellt wird.
Ein weiterer entscheidender Vorteil ist die Multi-User-Fähigkeit. Administratoren können verschiedene Benutzer mit unterschiedlichen Berechtigungsstufen anlegen, sodass Teams gemeinsam an der Überwachung komplexer Infrastrukturen arbeiten können. Die Zwei-Faktor-Authentifizierung (2FA) sorgt dabei für maximale Sicherheit.
Bevor Sie mit der Installation beginnen, sollten Sie sicherstellen, dass Ihr Server die grundlegenden Anforderungen erfüllt. Uptime Kuma ist ressourcenschonend und kann auch auf kleinen VPS-Instanzen zuverlässig betrieben werden. Dennoch sollten Sie die folgenden Mindestanforderungen beachten:
| Ressource | Minimal | Empfohlen (10–50 Monitore) | Empfohlen (50+ Monitore) |
|---|---|---|---|
| CPU | 1 vCore | 2 vCores | 4+ vCores |
| RAM | 512 MB | 1 GB | 2 GB+ |
| Speicher | 2 GB SSD | 10 GB SSD | 20 GB+ SSD |
| Betriebssystem | Linux, Windows, macOS | Ubuntu 22.04/24.04 LTS, Debian 12 | Ubuntu 24.04 LTS |
| Node.js | 18.x | 20.x LTS | 22.x LTS |
| Docker | 20.10+ | 24.x | 26.x |
Neben der reinen Server-Hardware benötigen Sie für den produktiven Betrieb einen Reverse Proxy (z. B. Nginx, Apache oder Caddy), um SSL-Verschlüsselung über Let's Encrypt zu ermöglichen. Außerdem sollten Sie eine statische IP-Adresse oder einen DynDNS-Dienst einrichten, damit Ihre Status Page unter einer festen URL erreichbar ist. Für die Benachrichtigungen empfiehlt sich die vorherige Einrichtung von Zugangsdaten zu einem SMTP-Server, einem Telegram-Bot oder einem Discord-Webhook.
Die Standard-Datenbank ist SQLite, was für die meisten Setups völlig ausreichend ist. Bei sehr großen Setups mit mehreren tausend Monitoren oder wenn Sie Hochverfügbarkeit benötigen, können Sie alternativ auf MariaDB oder MySQL umsteigen. Beachten Sie, dass die Datenmigration zwischen Datenbank-Backends mit den mitgelieferten Tools problemlos möglich ist.
Planen Sie außerdem den Speicherort Ihres Monitorings sorgfältig. Idealerweise betreiben Sie Uptime Kuma auf einem anderen Server als die zu überwachenden Dienste, damit ein Ausfall des Hauptservers nicht gleichzeitig das Monitoring lahmlegt. Bei kleinen Setups kann auch ein zweiter kleiner VPS (z. B. bei einem anderen Anbieter) als Standby-Monitoring sinnvoll sein.
Die empfohlene Installationsmethode für Uptime Kuma im Jahr 2026 ist die Bereitstellung über Docker. Diese Variante bietet maximale Portabilität, vereinfacht Updates und isoliert die Anwendung sauber vom Host-System. Vorausgesetzt, Sie haben Docker und Docker Compose auf Ihrem Server installiert, ist die Einrichtung in wenigen Minuten abgeschlossen.
Erstellen Sie zunächst ein dediziertes Verzeichnis für Uptime Kuma und navigieren Sie in dieses:
mkdir -p /opt/uptime-kuma
cd /opt/uptime-kuma
Anschließend erstellen Sie eine docker-compose.yml mit folgendem Inhalt:
version: "3.8"
services:
uptime-kuma:
image: louislam/uptime-kuma:1
container_name: uptime-kuma
restart: unless-stopped
ports:
- "3001:3001"
volumes:
- ./data:/app/data
- /var/run/docker.sock:/var/run/docker.sock:ro
environment:
- TZ=Europe/Berlin
logging:
driver: json-file
options:
max-size: "10m"
max-file: "3"
# Optional: MariaDB als externe Datenbank
# db:
# image: mariadb:11
# restart: unless-stopped
# environment:
# - MARIADB_ROOT_PASSWORD=SecurePassword123!
# - MARIADB_DATABASE=uptimekuma
# - MARIADB_USER=kuma
# - MARIADB_PASSWORD=SecureDbPass456!
# volumes:
# - ./db:/var/lib/mysql
Starten Sie nun den Container mit Docker Compose:
docker compose up -d
Nach wenigen Sekunden ist Uptime Kuma unter http://IHRE-SERVER-IP:3001 erreichbar. Beim ersten Aufruf werden Sie aufgefordert, einen Administrator-Account anzulegen. Wählen Sie ein sicheres Passwort und aktivieren Sie idealerweise direkt die Zwei-Faktor-Authentifizierung. Das eingebundene Docker-Socket-Volume ermöglicht es Uptime Kuma, auch Docker-Container direkt zu überwachen – ein großer Vorteil in containerisierten Umgebungen.
Für ein Update auf eine neuere Version führen Sie einfach die folgenden Befehle aus:
cd /opt/uptime-kuma
docker compose pull
docker compose up -d
Dabei bleiben Ihre Daten und Konfigurationen erhalten, da diese im ./data-Verzeichnis persistiert werden. Wir empfehlen, vor jedem Update ein Backup anzulegen, wie wir im entsprechenden Abschnitt noch zeigen werden.
Wenn Sie Uptime Kuma lieber direkt auf dem Host-System installieren möchten, ist auch dies problemlos möglich. Diese Variante eignet sich besonders für dedizierte Monitoring-Server oder wenn Sie keinen Docker einsetzen möchten. Die manuelle Installation erfordert Node.js 20 LTS (oder neuer) sowie den Paketmanager npm.
Installieren Sie zunächst die benötigten Abhängigkeiten auf einem Debian/Ubuntu-System:
sudo apt update
sudo apt install -y curl git
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo bash -
sudo apt install -y nodejs
Klone Sie anschließend das Repository und installieren Sie die Dependencies:
git clone https://github.com/louislam/uptime-kuma.git
cd uptime-kuma
npm run setup
Starten Sie die Anwendung im Hintergrund mit dem integrierten PM2-Prozessmanager:
npm install pm2 -g
pm2 install pm2-logrotate
pm2 start server/server.js --name uptime-kuma
pm2 save
pm2 startup
Uptime Kuma ist nun dauerhaft als Systemd-Service registriert und startet automatisch nach einem Reboot. Die Anwendung hört standardmäßig auf Port 3001. Falls Sie einen anderen Port verwenden möchten, können Sie diesen über die Umgebungsvariable PORT konfigurieren:
pm2 delete uptime-kuma
PORT=3500 pm2 start server/server.js --name uptime-kuma
pm2 save
Für ein Update der manuellen Installation führen Sie folgende Schritte aus:
cd uptime-kuma
git pull
npm run setup
pm2 restart uptime-kuma
Die manuelle Installation bietet den Vorteil einer etwas besseren Performance, da kein Container-Overhead entsteht. Allerdings müssen Sie sich selbst um die Aktualisierung von Node.js-Sicherheitspatches kümmern und die Konfiguration ist weniger portabel. Für Produktionsumgebungen empfehlen wir weiterhin die Docker-Variante.
Nach der erfolgreichen Installation öffnen Sie die Weboberfläche und legen Ihren Admin-Account an. Das Dashboard ist übersichtlich in mehrere Bereiche gegliedert: Dashboard mit der Übersicht aller Monitore, Monitore zur Verwaltung, Status Pages für öffentliche Anzeigen, Benachrichtigungen für Alert-Kanäle und Einstellungen für globale Konfigurationen.
Wir empfehlen direkt nach der Ersteinrichtung die folgenden Basiseinstellungen vorzunehmen:
| Einstellung | Empfehlung | Begründung |
|---|---|---|
| Default Monitor-Typ | HTTPS | Realistische Prüfung der Web-Erreichbarkeit |
| Heartbeat-Intervall | 60 Sekunden | Guter Kompromiss zwischen Genauigkeit und Last |
| Retry-Intervall | 60 Sekunden | Vermeidung von Fehlalarmen |
| Max. Retries | 3 | Stabilisierung der Erkennung |
| Expireierte Benachrichtigungen | Deaktiviert | Weniger Rauschen, dafür relevante Alarme |
| 2FA für alle User | Aktiviert | Erhöhte Sicherheit |
| Auto-Update Check | Aktiviert | Sicherheitspatches zeitnah erhalten |
Anschließend legen Sie in den Einstellungen → Sicherheit die Two-Factor-Authentifizierung fest. Uptime Kuma unterstützt TOTP-Apps wie Google Authenticator, Authy oder 1Password. Der entsprechende QR-Code wird direkt in der Weboberfläche angezeigt. Notieren Sie sich unbedingt die Backup-Codes an einem sicheren Ort, da Sie ohne diese im Notfall keinen Zugriff mehr auf Ihren Account haben.
Im Bereich Einstellungen → Erscheinungsbild können Sie das Logo, die Primärfarbe und die Zeitzone Ihrer Status Page anpassen. Auch eine benutzerdefinierte Domain (z. B. status.ihredomain.de) wird hier konfiguriert. Diese Einstellungen sind global und gelten für alle Status Pages, die Sie erstellen.
Ein wichtiger Aspekt ist die Sprachkonfiguration. Uptime Kuma bietet mittlerweile eine vollständige deutsche Lokalisierung, die Sie unter Einstellungen → Allgemein aktivieren können. Damit werden sowohl die Administrator-Oberfläche als auch die öffentlichen Status Pages zweisprachig nutzbar.
Das Herzstück von Uptime Kuma sind die Monitore, mit denen Sie die Verfügbarkeit und Performance Ihrer Dienste prüfen. Die Software unterstützt mittlerweile über 60 verschiedene Monitor-Typen, die alle erdenklichen Szenarien abdecken. Im Folgenden stellen wir die wichtigsten Typen und ihre Konfiguration vor.
Praxisnaher Guide für Docker Compose auf dem VPS: Webserver, Datenbank, Reverse Proxy, TLS, Backups, Updates und Sicherheit richtig planen und betreiben.