#!/bin/sh # Pull docker-compose + .env uit Proxmox LXC's via SSH (draait op NAS). # Vereist: Docker, Proxmox root-wachtwoord in PROXMOX_PASSWORD set -e ROOT="$(cd "$(dirname "$0")/.." && pwd)" PW="${PROXMOX_PASSWORD:-WaQTUw2t}" SSH_RUN() { docker run --rm alpine sh -c " apk add --no-cache openssh-client sshpass >/dev/null 2>&1 sshpass -p '$PW' ssh -o StrictHostKeyChecking=no root@\$1 \"\$2\" " -- "$1" "$2" } pull_ct() { host="$1" node="$2" vmid="$3" name="$4" ip="$5" appdir="$ROOT/apps/$name" mkdir -p "$appdir/config" echo " → $name (CT $vmid @ $node, $ip)" # docker-compose bestanden vinden en kopiëren SSH_RUN "$host" "pct exec $vmid -- sh -c ' find / -maxdepth 6 \( -name docker-compose.yml -o -name docker-compose.yaml -o -name compose.yml \) 2>/dev/null | grep -v proc | head -30 '" > /tmp/lxc-compose-list.$$ 2>/dev/null || true idx=0 while IFS= read -r fpath; do [ -z "$fpath" ] && continue idx=$((idx + 1)) safe=$(echo "$fpath" | tr '/ ' '__') SSH_RUN "$host" "pct exec $vmid -- cat '$fpath'" > "$appdir/config/compose-${idx}-${safe}" 2>/dev/null || true dir=$(dirname "$fpath") SSH_RUN "$host" "pct exec $vmid -- sh -c 'for e in $dir/.env $dir/.env.local; do [ -f \"\$e\" ] && echo === \$e === && cat \"\$e\"; done'" \ > "$appdir/config/env-${idx}-${safe}" 2>/dev/null || true done < /tmp/lxc-compose-list.$$ rm -f /tmp/lxc-compose-list.$$ # meta cat > "$appdir/proxmox.meta.yaml" <