#!/usr/bin/env bash set -euo pipefail DOCKER_DIR="/opt/hx-ki/docker" cd "$DOCKER_DIR" echo "==> Schritt 1: Backups der Compose-Dateien anlegen ..." for f in docker-compose.yml docker-compose.override.yml; do if [ -f "$f" ]; then cp "$f" "${f}.bak_hxkiweb_$(date +%Y%m%d_%H%M%S)" echo " Backup erstellt: ${f}.bak_hxkiweb_..." else echo " Hinweis: $f nicht vorhanden, überspringe." fi done echo "==> Schritt 2: Eventuelle alte hxki-web Container entfernen ..." docker rm -f hxki-web docker-hxki-web-1 2>/dev/null || true echo "==> Schritt 3: In ALLEN Compose-Dateien 'ports:'-Blöcke von hxki-web entfernen ..." for f in docker-compose.yml docker-compose.override.yml; do if [ ! -f "$f" ]; then continue fi echo " Bearbeite $f ..." awk ' # Start des hxki-web Blocks erkennen (egal wie eingerückt) /^[[:space:]]*hxki-web:/ { in_hw = 1 print next } # Wenn wir im hxki-web Block sind und eine Zeile mit \"ports:\" kommt, # Ports-Block markieren, aber nicht drucken in_hw && $1 == "ports:" { in_ports = 1 next } # Solange wir im Ports-Block sind: in_ports { # Zeilen mit \"-\" (Port-Mapping) überspringen if ($1 == "-") next # Erste Zeile, die kein \"-\" mehr ist -> Ports-Block Ende in_ports = 0 } # Wenn wir im hxki-web Block sind und eine leere Zeile kommt, # ist der Block als solcher zu Ende in_hw && NF == 0 { in_hw = 0 print next } # Alle anderen Zeilen ganz normal drucken { print } ' "$f" > "$f.tmp" && mv "$f.tmp" "$f" done echo "==> Schritt 4: Compose-Konfiguration prüfen (Services auflisten) ..." docker compose config --services || true echo "==> Schritt 5: Orchester starten (inkl. Entfernen von Waisen-Containern) ..." docker compose up -d --remove-orphans echo "==> Schritt 6: Status von hxki-web prüfen ..." docker ps | grep hxki-web || echo " Hinweis: Kein laufender Container mit 'hxki-web' im Namen gefunden." echo "==> Schritt 7: Caddy neu laden (falls vorhanden) ..." if docker ps | grep -q hx-caddy-caddy-1; then docker exec -it hx-caddy-caddy-1 caddy reload || echo " Hinweis: Caddy-Reload hat eine Warnung produziert." else echo " Hinweis: Caddy-Container hx-caddy-caddy-1 läuft nicht oder heißt anders." fi echo "==> FERTIG: Alle ports:-Blöcke für hxki-web entfernt, Orchester läuft neu."