#!/usr/bin/env bash # HXKI · COM2 QUICK FIX # Fix-Punkte: # - hxki-n8n: falls möglich ans hxki-internal hängen # - hxki-caddy: nur starten, wenn Port 80 frei ist, dann ans hxki-internal hängen # - nix wird gelöscht, nix wird „neu erfunden“ set -euo pipefail echo "=== HXKI · COM2 QUICK FIX ===" # 0) Basis-Check: hxki-internal vorhanden? if ! docker network ls --format '{{.Name}}' | grep -q '^hxki-internal$'; then echo "ERROR: Docker-Netzwerk 'hxki-internal' existiert nicht auf diesem Server." exit 1 fi echo echo "=== [1] Container-Status ===" docker ps -a --format 'NAME={{.Names}} STATUS={{.Status}} PORTS={{.Ports}}' echo echo "=== [2] hxki-n8n → Netzwerk prüfen/verbinden ===" if docker ps -a --format '{{.Names}}' | grep -q '^hxki-n8n$'; then n8n_state="$(docker inspect -f '{{.State.Status}}' hxki-n8n || echo 'unknown')" echo "hxki-n8n State: $n8n_state" in_net="$(docker network inspect hxki-internal --format '{{range $id,$c := .Containers}}{{println $c.Name}}{{end}}' | grep -c '^hxki-n8n$' || true)" if [[ "$in_net" -eq 0 ]]; then echo "→ Versuche, hxki-n8n an hxki-internal zu hängen ..." if docker network connect hxki-internal hxki-n8n 2>/tmp/hxki_n8n_net_err.log; then echo "OK: hxki-n8n ist jetzt im Netzwerk hxki-internal." else echo "WARNUNG: Konnte hxki-n8n nicht ins Netzwerk hängen." echo "Details:" cat /tmp/hxki_n8n_net_err.log echo "Hinweis: Wenn die Meldung 'network sandbox ... not found' kommt," echo " ist der Container intern kaputt → neu deployen (per docker-compose)," echo " die Daten liegen in /data/HXKI_WORKSPACE und gehen dabei nicht verloren." fi else echo "OK: hxki-n8n ist bereits im Netzwerk hxki-internal." fi else echo "INFO: Kein Container 'hxki-n8n' vorhanden." fi echo echo "=== [3] Port 80 Analyse für hxki-caddy ===" if ss -tulpen | grep -q ':80'; then echo "Port 80 ist BELEGT. Besitzer:" ss -tulpen | grep ':80' || true echo echo "→ Starte hxki-caddy NICHT automatisch, um nichts kaputt zu machen." echo " Du musst entscheiden, ob der Dienst auf Port 80 abgeschaltet werden darf." else echo "Port 80 scheint FREI." if docker ps -a --format '{{.Names}}' | grep -q '^hxki-caddy$'; then echo "→ Versuche, hxki-caddy zu starten ..." if docker start hxki-caddy 2>/tmp/hxki_caddy_start_err.log; then echo "OK: hxki-caddy gestartet." echo "→ Versuche, hxki-caddy an hxki-internal zu hängen ..." if docker network connect hxki-internal hxki-caddy 2>/tmp/hxki_caddy_net_err.log; then echo "OK: hxki-caddy ist jetzt im Netzwerk hxki-internal." else echo "WARNUNG: Konnte hxki-caddy nicht ins Netzwerk hängen." cat /tmp/hxki_caddy_net_err.log fi else echo "WARNUNG: hxki-caddy konnte nicht gestartet werden." cat /tmp/hxki_caddy_start_err.log fi else echo "INFO: Kein Container 'hxki-caddy' vorhanden." fi fi echo echo "=== [4] Mitglieder von hxki-internal ===" docker network inspect hxki-internal --format '{{range $id,$c := .Containers}}{{println $c.Name}}{{end}}' echo echo "=== ENDE · HXKI COM2 QUICK FIX ==="