initial COM2 system snapshot
This commit is contained in:
84
com2_apply.sh
Executable file
84
com2_apply.sh
Executable file
@@ -0,0 +1,84 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
F="/opt/hx-ki/com2-stack/docker-compose.yml"
|
||||
NET="hxki-internal"
|
||||
|
||||
echo "=== HXKI · COM2 APPLY (one-shot) ==="
|
||||
|
||||
# 0) Autorität muss existieren
|
||||
[ -f "$F" ] || { echo "FEHLT: $F"; exit 1; }
|
||||
|
||||
# 1) Host-Caddy aus (damit Docker-Caddy 80/443 bekommt)
|
||||
if systemctl is-active --quiet caddy 2>/dev/null; then
|
||||
echo "[1] Stoppe host-caddy (systemd)"
|
||||
systemctl stop caddy
|
||||
fi
|
||||
|
||||
# 2) hxki-internal sicherstellen
|
||||
if ! docker network ls --format '{{.Name}}' | grep -q "^${NET}$"; then
|
||||
echo "[2] Erzeuge Netzwerk: $NET"
|
||||
docker network create "$NET" >/dev/null
|
||||
fi
|
||||
|
||||
# 3) PATCH nur im mautic->depends_on: mariadb -> hxki-mariadb (Mapping+List Form)
|
||||
echo "[3] Patch: mautic depends_on mariadb -> hxki-mariadb (nur im depends_on Block)"
|
||||
cp -a "$F" "${F}.bak.$(date +%Y%m%d-%H%M%S)"
|
||||
|
||||
awk '
|
||||
function indent(s){ match(s,/^[ ]*/); return RLENGTH }
|
||||
BEGIN{ in_mautic=0; in_dep=0; }
|
||||
{
|
||||
line=$0; ind=indent(line);
|
||||
|
||||
# enter mautic block
|
||||
if (line ~ /^[ ]{2}mautic:[ ]*$/) { in_mautic=1; in_dep=0; print line; next; }
|
||||
|
||||
# leave mautic block when next 2-space service starts
|
||||
if (in_mautic && ind==2 && line ~ /^[ ]{2}[A-Za-z0-9_.-]+:[ ]*$/ && line !~ /^[ ]{2}mautic:[ ]*$/) {
|
||||
in_mautic=0; in_dep=0;
|
||||
}
|
||||
|
||||
# enter depends_on inside mautic
|
||||
if (in_mautic && line ~ /^[ ]{4}depends_on:[ ]*$/) { in_dep=1; print line; next; }
|
||||
|
||||
# leave depends_on when indentation back to 4 with a new key
|
||||
if (in_dep && ind<=4 && line ~ /^[ ]{4}[A-Za-z0-9_.-]+:/) { in_dep=0; }
|
||||
|
||||
# patch mapping-form: " mariadb:" -> " hxki-mariadb:"
|
||||
if (in_dep && line ~ /^[ ]+mariadb:[ ]*$/) { sub(/mariadb:/,"hxki-mariadb:",line); print line; next; }
|
||||
|
||||
# patch list-form: " - mariadb" -> " - hxki-mariadb"
|
||||
if (in_dep && line ~ /^[ ]*-[ ]*mariadb[ ]*$/) { sub(/-[ ]*mariadb/,"- hxki-mariadb",line); print line; next; }
|
||||
|
||||
print line;
|
||||
}
|
||||
' "$F" > "${F}.tmp" && mv "${F}.tmp" "$F"
|
||||
|
||||
# 4) VALIDATE (das ist die Wahrheit)
|
||||
echo "[4] Validate: docker compose config"
|
||||
docker compose -f "$F" config >/dev/null
|
||||
echo "OK: Compose ist valide."
|
||||
|
||||
# 5) UP (Orchester hoch)
|
||||
echo "[5] Orchester hochfahren"
|
||||
docker compose -f "$F" up -d --remove-orphans
|
||||
|
||||
# 6) Checks (Terminal-Ausgabe)
|
||||
echo
|
||||
echo "=== CHECKS ==="
|
||||
echo "[A] Container (hxki*)"
|
||||
docker ps --format 'NAME={{.Names}} STATUS={{.Status}} PORTS={{.Ports}}' | grep -E '^(hxki|hx-)' || true
|
||||
|
||||
echo
|
||||
echo "[B] hxki-internal Mitglieder"
|
||||
docker network inspect "$NET" --format '{{range $id,$c := .Containers}}{{println $c.Name}}{{end}}' | sort
|
||||
|
||||
echo
|
||||
echo "[C] n8n basic (Port 5678 im Container erreichbar?)"
|
||||
if docker ps --format '{{.Names}}' | grep -q '^hxki-n8n$'; then
|
||||
docker exec -it hxki-n8n sh -lc 'wget -qO- http://127.0.0.1:5678/ >/dev/null && echo OK_N8N_LOCAL || echo FAIL_N8N_LOCAL' || true
|
||||
fi
|
||||
|
||||
echo
|
||||
echo "=== ENDE · COM2 APPLY ==="
|
||||
Reference in New Issue
Block a user