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

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