Ein interaktives Setup-Script für Checkmate (Uptime Monitoring) mit automatischer Docker-Installation und Let's Encrypt SSL.
- 🎨 Coole ASCII-Art Header
- 🌈 Bunte Farbausgaben für bessere Lesbarkeit
- 🔧 Automatische Docker Installation (Ubuntu/Debian/CentOS/RHEL/Fedora)
- 🔍 Automatische /etc/hosts Bereinigung für DNS-Probleme
- 📋 Automatische Checks für alle Voraussetzungen
- ⚙️ Interaktive Konfiguration mit Validierung
- 🔐 Automatische Secret Key-Generierung
- 🌐 DNS-Überprüfung vor dem Start
- 📝 Automatische Dateierstellung (docker-compose.yml, .env, .gitignore)
- 🚀 Optionaler sofortiger Start der Container
- Linux-System (Ubuntu, Debian, CentOS, RHEL oder Fedora)
- Root/Sudo-Zugriff für Docker Installation
- Domain die auf deinen Server zeigt (A-Record)
- Offene Ports 80 und 443
- Nginx Proxy - Automatisches Reverse Proxying
- Let's Encrypt - Automatische SSL-Zertifikate
- Checkmate Backend (
ghcr.io/bluewave-labs/checkmate-backend-mono) - MongoDB (
ghcr.io/bluewave-labs/checkmate-mongo)
- Docker CE (Community Edition)
- Docker CLI
- containerd.io
- Docker Buildx Plugin
- Docker Compose Plugin
chmod +x setup.sh./setup.shDas Script führt dich durch folgende Schritte:
-
Voraussetzungen prüfen
- Docker Installation prüfen (oder installieren)
- Docker Compose prüfen (oder installieren)
- Docker Daemon Status prüfen
-
Konfiguration
- Domain eingeben
- E-Mail-Adresse eingeben
- Passwort generieren oder eingeben
- Port festlegen (Standard: 3000)
-
Zusammenfassung & Bestätigung
-
Dateien erstellen
- docker-compose.yml
- .env mit deinen Einstellungen
- .gitignore
-
DNS-Überprüfung
- Prüft ob deine Domain korrekt konfiguriert ist
- Vergleicht DNS-Auflösung mit Server-IP
-
Container starten (optional)
- Startet alle Container mit
docker-compose up -d
- Startet alle Container mit
-
Neuanmeldung erforderlich: Nach der Docker-Installation musst du dich möglicherweise neu anmelden, damit die Gruppenberechtigungen wirksam werden:
# Entweder neu anmelden oder: newgrp docker -
Teste Docker:
docker run hello-world
-
Ohne sudo verwenden: Nach der Neuanmeldung kannst du Docker ohne sudo nutzen
Nach dem Setup findest du folgende Dateien:
docker-compose.yml- Docker Compose Konfiguration.env- Umgebungsvariablen (NICHT in Git committen!).gitignore- Git Ignore Datei
# Container Status anzeigen
docker-compose ps
# Logs anzeigen (alle Container)
docker-compose logs -f
# Logs eines bestimmten Containers
docker-compose logs -f checkmate
docker-compose logs -f nginx-proxy
docker-compose logs -f letsencrypt
# Container neustarten
docker-compose restart
# Container stoppen
docker-compose down
# Container stoppen und Volumes löschen (VORSICHT!)
docker-compose down -v
# Container aktualisieren
docker-compose pull
docker-compose up -dProblem: Installation bricht mit Fehler ab
Lösung:
- Prüfe deine Internetverbindung
- Stelle sicher, dass du sudo-Rechte hast
- Prüfe
/var/log/apt/(Ubuntu/Debian) oder/var/log/yum.log(CentOS/RHEL) - Installiere Docker manuell: https://docs.docker.com/get-docker/
Problem: Kein HTTPS nach 5-10 Minuten
Lösung:
-
Prüfe DNS-Auflösung:
nslookup deine-domain.de
-
Prüfe Firewall:
sudo ufw status # Ubuntu sudo firewall-cmd --list-all # CentOS
-
Prüfe Let's Encrypt Logs:
docker-compose logs letsencrypt
Problem: Docker läuft nicht
Lösung:
# Status prüfen
sudo systemctl status docker
# Docker starten
sudo systemctl start docker
# Docker beim Systemstart aktivieren
sudo systemctl enable docker
# Logs prüfen
sudo journalctl -u docker -fProblem: Container beendet sich sofort
Lösung:
-
Prüfe Logs:
docker-compose logs checkmate
-
Prüfe Datenbankverbindung:
docker-compose exec checkmate-db psql -U checkmate -d checkmate -
Prüfe Umgebungsvariablen in
.env
Problem: Keine Berechtigung für Docker-Befehle
Lösung:
# Benutzer zur Docker-Gruppe hinzufügen
sudo usermod -aG docker $USER
# Neu anmelden oder:
newgrp docker
# Teste
docker run hello-world- ✅ Ändere alle Standard-Passwörter
- ✅ Verwende starke, zufällige Passwörter
- ✅ Halte deine Docker-Images aktuell
- ✅ Erstelle regelmäßig Backups
- ✅ Beschränke den Zugriff auf sensible Ports
- ✅ Die
.envDatei NIEMALS in Git committen - ✅ Verwende Firewall-Regeln (nur 80/443 öffentlich)
# Backup erstellen
docker-compose exec checkmate-db pg_dump -U checkmate checkmate > backup_$(date +%Y%m%d_%H%M%S).sql
# Backup mit Kompression
docker-compose exec checkmate-db pg_dump -U checkmate checkmate | gzip > backup_$(date +%Y%m%d_%H%M%S).sql.gz# Aus normalem Backup
docker-compose exec -T checkmate-db psql -U checkmate checkmate < backup.sql
# Aus komprimiertem Backup
gunzip < backup.sql.gz | docker-compose exec -T checkmate-db psql -U checkmate checkmate# Container stoppen
docker-compose down
# Volumes sichern
sudo tar czf checkmate_volumes_$(date +%Y%m%d).tar.gz \
/var/lib/docker/volumes/checkmate-db-data \
/var/lib/docker/volumes/checkmate-data
# Container wieder starten
docker-compose up -d# Ressourcenverbrauch anzeigen
docker stats
# Nur Checkmate Container
docker stats checkmate checkmate-db
# Speicherplatz prüfen
docker system df# Images aktualisieren
docker-compose pull
# Container mit neuen Images neu starten
docker-compose up -d
# Alte Images aufräumen
docker image prune -a- ✅ Ubuntu 20.04, 22.04, 24.04
- ✅ Debian 10, 11, 12
- ✅ CentOS 7, 8, 9
- ✅ RHEL 7, 8, 9
- ✅ Fedora 37+
Bei Problemen:
- Prüfe die Logs:
docker-compose logs -f - Prüfe die Checkmate-Dokumentation
- Öffne ein Issue im Checkmate Repository
Dieses Setup-Script ist frei verwendbar.
Erstellt von: Andreas Höfler
Version: 1.0
Datum: Oktober 2025