From 939b9a576e8515ae0f64050d9c8732b151c77b88 Mon Sep 17 00:00:00 2001 From: Wolfgang Date: Fri, 9 Jan 2026 20:41:12 +0100 Subject: [PATCH] Schritt7_SQL_Docker2 --- install.sh | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/install.sh b/install.sh index f1e369f..55ed72b 100755 --- a/install.sh +++ b/install.sh @@ -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}"