Files
HX_KI_com-Com1/bin/hxki_fix_web_v2.sh
2026-03-06 14:37:04 +00:00

80 lines
2.4 KiB
Bash
Executable File

#!/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."