54 lines
1.4 KiB
Bash
Executable File
54 lines
1.4 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
C="hxki-n8n"
|
|
MOUNT_SRC="/data/HXKI_WORKSPACE/router"
|
|
CFG="${MOUNT_SRC}/config"
|
|
TS="$(date +%Y%m%d-%H%M%S)"
|
|
|
|
echo "=== FIX n8n config JSON ==="
|
|
|
|
docker inspect "$C" >/dev/null 2>&1 || { echo "FEHLT: $C"; exit 1; }
|
|
[ -d "$MOUNT_SRC" ] || { echo "FEHLT: $MOUNT_SRC"; exit 1; }
|
|
|
|
echo "[1] Stoppe $C"
|
|
docker stop "$C" >/dev/null || true
|
|
|
|
echo "[2] Backup config (falls vorhanden)"
|
|
if [ -f "$CFG" ]; then
|
|
cp -a "$CFG" "${CFG}.bak.${TS}"
|
|
echo "Backup: ${CFG}.bak.${TS}"
|
|
else
|
|
echo "Hinweis: config existiert noch nicht -> wird neu erzeugt."
|
|
fi
|
|
|
|
echo "[3] Schreibe minimale gültige JSON-config"
|
|
# Minimal gültiges JSON, n8n ergänzt/überschreibt beim Start seine Keys.
|
|
# Wichtig: NICHTS anderes in die Datei schreiben.
|
|
printf '{\n "encryptionKey": ""\n}\n' > "$CFG"
|
|
|
|
echo "[4] Setze Rechte auf node (1000:1000)"
|
|
chown 1000:1000 "$CFG"
|
|
chmod 600 "$CFG"
|
|
|
|
echo "[5] Starte $C"
|
|
docker start "$C" >/dev/null
|
|
|
|
echo "[6] Warte bis n8n im Container lauscht (max 60s)"
|
|
for i in $(seq 1 60); do
|
|
# Container muss laufen
|
|
if ! docker ps --format '{{.Names}}' | grep -q "^${C}$"; then
|
|
sleep 1; continue
|
|
fi
|
|
# Port check
|
|
if docker exec "$C" sh -lc 'wget -qO- http://127.0.0.1:5678/ >/dev/null' >/dev/null 2>&1; then
|
|
echo "OK: n8n lauscht."
|
|
exit 0
|
|
fi
|
|
sleep 1
|
|
done
|
|
|
|
echo "FAIL: n8n nach 60s nicht healthy. Logs:"
|
|
docker logs --tail=80 "$C" || true
|
|
exit 1
|