initial COM2 system snapshot
This commit is contained in:
45
com-stack/hxki_fix_n8n_perms.sh
Executable file
45
com-stack/hxki_fix_n8n_perms.sh
Executable file
@@ -0,0 +1,45 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
C="hxki-n8n"
|
||||
DEST="/home/node/.n8n"
|
||||
|
||||
echo "=== HXKI FIX n8n PERMS ==="
|
||||
|
||||
# Container muss existieren (auch wenn er crasht)
|
||||
docker inspect "$C" >/dev/null 2>&1 || { echo "FEHLT: Container $C"; exit 1; }
|
||||
|
||||
# Mount-Quelle für /home/node/.n8n bestimmen
|
||||
SRC="$(docker inspect "$C" --format '{{range .Mounts}}{{if eq .Destination "'"$DEST"'"}}{{println .Source}}{{end}}{{end}}' | head -n1)"
|
||||
[[ -n "${SRC:-}" ]] || { echo "FEHLT: Kein Mount auf $DEST gefunden."; exit 1; }
|
||||
echo "Mount: $SRC -> $DEST"
|
||||
|
||||
# Image bestimmen (für UID/GID, falls Container nicht exec-fähig ist)
|
||||
IMG="$(docker inspect "$C" --format '{{.Config.Image}}')"
|
||||
echo "Image: $IMG"
|
||||
|
||||
# UID/GID aus dem Image holen (funktioniert auch wenn Container restartet)
|
||||
N8N_UID="$(docker run --rm --entrypoint sh "$IMG" -lc 'id -u node 2>/dev/null || id -u' )"
|
||||
N8N_GID="$(docker run --rm --entrypoint sh "$IMG" -lc 'id -g node 2>/dev/null || id -g' )"
|
||||
echo "Ziel-Owner: $N8N_UID:$N8N_GID"
|
||||
|
||||
# Container stoppen (damit keine Writes während chown)
|
||||
echo "Stoppe $C..."
|
||||
docker stop "$C" >/dev/null 2>&1 || true
|
||||
|
||||
# Rechte setzen
|
||||
echo "Setze Owner/Rechte auf Host-Pfad: $SRC"
|
||||
chown -R "$N8N_UID:$N8N_GID" "$SRC"
|
||||
chmod -R u+rwX,g+rwX "$SRC"
|
||||
|
||||
# Container starten
|
||||
echo "Starte $C..."
|
||||
docker start "$C" >/dev/null 2>&1 || true
|
||||
|
||||
echo "Status:"
|
||||
docker ps --format 'NAME={{.Names}} STATUS={{.Status}}' | grep "$C" || true
|
||||
|
||||
echo "Letzte Logs:"
|
||||
docker logs --tail=30 "$C" || true
|
||||
|
||||
echo "=== ENDE ==="
|
||||
Reference in New Issue
Block a user