Schritt7_SQL_Docker2

This commit is contained in:
2026-01-09 20:41:12 +01:00
parent b3433eedfe
commit 939b9a576e

View File

@@ -183,3 +183,60 @@ fi
info "Step 6 OK: Docker + Compose Plugin installiert, Locales gesetzt, Basis-Verzeichnisse erstellt"
info "Next: Schritt 7 (finales docker-compose + Secrets + n8n/supabase up + Healthchecks)"
# ===== Step 7: Compose + Secrets + Start =====
step "7" "Deploy docker-compose + generate secrets + start stack"
# Annahmen:
# - CTID ist in $CTID
# - Hostname ist in $CT_HOSTNAME (z.B. supabase$(date +%s))
# - Domain: zq0.de -> ergibt FQDN
N8N_FQDN="${CT_HOSTNAME}.zq0.de"
POSTGRES_PASSWORD="$(rand_alnum 32)"
DASHBOARD_USERNAME="$(rand_alnum 12)"
DASHBOARD_PASSWORD="$(rand_alnum 24)"
N8N_ENCRYPTION_KEY="$(rand_hex 64)"
# Dateien in den CT kopieren
pct push "$CTID" "${SCRIPT_DIR}/templates/docker-compose.yml" "/opt/customer-stack/docker-compose.yml" --perms 0644
pct push "$CTID" "${SCRIPT_DIR}/sql/init_pgvector.sql" "/opt/customer-stack/sql/init_pgvector.sql" --perms 0644
# .env im CT erstellen
pct exec "$CTID" -- bash -lc "cat > /opt/customer-stack/.env <<'EOF'
TZ=Europe/Berlin
N8N_HOST=${N8N_FQDN}
N8N_EDITOR_BASE_URL=https://${N8N_FQDN}/
WEBHOOK_URL=https://${N8N_FQDN}/
DASHBOARD_USERNAME=${DASHBOARD_USERNAME}
DASHBOARD_PASSWORD=${DASHBOARD_PASSWORD}
N8N_ENCRYPTION_KEY=${N8N_ENCRYPTION_KEY}
POSTGRES_USER=postgres
POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
POSTGRES_DB=postgres
EOF
chmod 600 /opt/customer-stack/.env"
# Stack hochfahren
pct exec "$CTID" -- bash -lc "cd /opt/customer-stack && docker compose up -d"
# Warten bis n8n antwortet
pct exec "$CTID" -- bash -lc '
set -e
for i in $(seq 1 60); do
if curl -fsS http://127.0.0.1:5678/ >/dev/null; then
echo "[INFO] n8n is up"
exit 0
fi
sleep 2
done
echo "[ERROR] n8n did not become ready in time" >&2
exit 1
'
log_info "Step 7 OK: Stack running"
log_info "URL: https://${N8N_FQDN}"
log_info "BasicAuth user: ${DASHBOARD_USERNAME}"
log_info "BasicAuth pass: ${DASHBOARD_PASSWORD}"