Files
hx-ki.com2/COM2_DOCTOR_PORTS_ONE_SHOT.sh
2026-03-06 15:22:40 +00:00

60 lines
1.7 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
NET="hxki-internal"
SVC_LIST=("hxki-web:80" "hxki-n8n:5678" "hxki-mautic:80")
echo "=== COM2 DOCTOR · PORTS / LISTEN / LOGS ==="
echo "[0] Netzwerk"
docker network inspect "$NET" >/dev/null 2>&1 && echo "OK: $NET existiert" || { echo "FAIL: $NET fehlt"; exit 1; }
docker network inspect "$NET" --format '{{range $id,$c := .Containers}}{{println $c.Name}}{{end}}' | sort
echo
echo "[1] Container-Status"
docker ps --format 'NAME={{.Names}} STATUS={{.Status}} PORTS={{.Ports}}' | egrep 'hxki-|hx-caddy' || true
echo
echo "[2] Listen-Checks IN jedem Service-Container (ss/netstat)"
for entry in "${SVC_LIST[@]}"; do
c="${entry%%:*}"
p="${entry##*:}"
echo
echo "--- $c (soll lauschen auf :$p) ---"
docker exec -it "$c" sh -lc "
echo 'id:'; id || true
echo 'ps:'; ps aux | head -n 20 || true
echo 'ss:'; (ss -lntp 2>/dev/null || netstat -lntp 2>/dev/null || true) | egrep '(:$p\\b|LISTEN)' || true
echo 'localhost test:'; (wget -qO- http://127.0.0.1:$p/ >/dev/null && echo OK_LOCALHOST || echo FAIL_LOCALHOST) || true
" || echo "WARN: docker exec in $c fehlgeschlagen"
done
echo
echo "[3] Caddy -> Upstreams (mit Retry 30s)"
for entry in "${SVC_LIST[@]}"; do
host="${entry%%:*}"
port="${entry##*:}"
echo
echo "--- hx-caddy -> $host:$port ---"
docker exec -it hx-caddy sh -lc "
i=0
while [ \$i -lt 30 ]; do
wget -qO- http://$host:$port/ >/dev/null 2>&1 && { echo OK; exit 0; }
i=\$((i+1)); sleep 1
done
echo FAIL
exit 0
" || true
done
echo
echo "[4] Logs (letzte 120 Zeilen)"
for c in hxki-web hxki-n8n hxki-mautic hx-caddy; do
echo
echo "--- logs: $c ---"
docker logs --tail=120 "$c" 2>&1 || true
done
echo
echo "=== ENDE ==="