From 52e30010f13deb1c3126db97bc519403804e91b9 Mon Sep 17 00:00:00 2001 From: Martin Date: Mon, 20 Jul 2026 14:22:43 +0200 Subject: [PATCH] Feat: optionaler Demo-Seed im migrate-Job via RUN_DEMO_SEED (Testserver) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Der migrate-Container beendet sich nach 'migrate deploy' (restart:no) und der app-Container hat kein tsx/keine Seed-Dateien -> manueller Seed unpraktisch. Lösung: migrate führt bei RUN_DEMO_SEED=true nach der Migration den idempotenten Demo-Seed aus (admin@demo.example / Demo1234!). In Prod die Variable weglassen. Co-Authored-By: Claude Opus 4.8 --- .env.coolify.example | 5 +++++ docker-compose.coolify.yml | 5 ++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/.env.coolify.example b/.env.coolify.example index 9f45256..f822fa5 100644 --- a/.env.coolify.example +++ b/.env.coolify.example @@ -29,6 +29,11 @@ AUTH_URL=http://REPLACE-WITH-COOLIFY-SSLIP-DOMAIN # Hinter Reverse-Proxy (Coolify/Traefik) für Auth.js v5 zwingend, sonst UntrustedHost: AUTH_TRUST_HOST=true +# --- Demo-Seed (NUR Testserver!) --- +# true => migrate-Job legt nach der Migration den Demo-Mandanten + Nutzer an +# (admin@demo.example / Demo1234!). In Produktion NICHT setzen / auf false lassen. +RUN_DEMO_SEED=true + # --- KI-Provider (optional, aktuell ungenutzt) --- AI_PROVIDER=anthropic AI_API_KEY= diff --git a/docker-compose.coolify.yml b/docker-compose.coolify.yml index b6ed317..9daf60a 100644 --- a/docker-compose.coolify.yml +++ b/docker-compose.coolify.yml @@ -8,13 +8,16 @@ services: # Einmaliger Migrations-Job. Nutzt die builder-Stage (volle node_modules inkl. # Prisma-CLI/tsx), da die runner-Stage kein Prisma-CLI enthält. Idempotent. + # Optionaler Demo-Seed nur, wenn RUN_DEMO_SEED=true (Testserver) — der Seed ist + # idempotent (upserts). In Produktion die Variable NICHT setzen. migrate: build: context: . target: builder - command: sh -c "npx prisma migrate deploy" + command: sh -c "npx prisma migrate deploy && if [ \"$$RUN_DEMO_SEED\" = \"true\" ]; then echo '>> Demo-Seed läuft…'; npx tsx prisma/seed.ts; else echo '>> Demo-Seed übersprungen (RUN_DEMO_SEED != true)'; fi" environment: DATABASE_URL: ${DATABASE_URL} + RUN_DEMO_SEED: ${RUN_DEMO_SEED:-false} depends_on: postgres: condition: service_healthy