Infra: Worker/Garage/Test-Runner

- docker-compose.yml: explizite Build-Targets (runner/migrate) — Ursache für
  "npx not found" bei garage-provision war das Default-Target (letzte Stage =
  Garage-Image ohne Node); worker startet npm run worker:mail; Defaults craftvia
- Coolify-Compose: incident-inbound-worker und sync-policy-templates entfernt,
  Rollen-/Bucket-/Image-Namen auf craftvia
- Dockerfile: seed/ und docs/wizard-uebergabe entfernt, messages/ im Runner
- npm: Name craftvia, Scripts test (scripts/run-tests.ts) und gate, ISMS-Pakete
  entfernt (handlebars, marked, sanitize-html, @xyflow/react, @dagrejs/dagre,
  html-to-image, imapflow, mailparser, exceljs, @dnd-kit/core)
- .env-Beispiele, launch.json (craftvia-dev), CI-Kommentare umbenannt

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-14 11:44:58 +02:00
co-authored by Claude Opus 5
parent 6f3f5a5947
commit ba7d6ac3ed
45 changed files with 167 additions and 7932 deletions
+10 -10
View File
@@ -1,13 +1,13 @@
# Referenz für die Coolify-Environment-Variablen (Testserver, intern).
# ECHTE Secrets NUR in Coolify eintragen — diese Datei enthält nur Platzhalter.
# In Coolify: Ressource -> Environment Variables (Bulk-Paste möglich).
# Referenz für die Coolify-Environment-Variablen (Testserver, intern).
# ECHTE Secrets NUR in Coolify eintragen –€” diese Datei enthält nur Platzhalter.
# In Coolify: Ressource -> Environment Variables (Bulk-Paste möglich).
# Hostnamen sind die Compose-Service-Namen (postgres/redis/garage), NICHT localhost.
# --- Datenbank (Service "postgres") ---
POSTGRES_USER=isms
POSTGRES_USER=craftvia
POSTGRES_PASSWORD=CHANGE_ME_db_password
POSTGRES_DB=isms
DATABASE_URL=postgresql://isms:CHANGE_ME_db_password@postgres:5432/isms?schema=public
POSTGRES_DB=craftvia
DATABASE_URL=postgresql://craftvia:CHANGE_ME_db_password@postgres:5432/craftvia?schema=public
# --- Redis (Service "redis") ---
# F-18: Redis läuft mit requirepass. NUR REDIS_PASSWORD setzen — REDIS_URL wird in der
@@ -24,7 +24,7 @@ REDIS_PASSWORD=CHANGE_ME_redis_password
S3_ENDPOINT=http://garage:3900
S3_ACCESS_KEY=GK000000000000000000000000
S3_SECRET_KEY=CHANGE_ME_openssl_rand_hex_32
S3_BUCKET=isms-documents
S3_BUCKET=craftvia-documents
S3_REGION=us-east-1
# Garage-Secrets: der Daemon liest sie aus der Env (NICHT in deploy/garage.toml).
# In Coolify LITERAL setzen, NICHT via ${...} referenzieren (Interpolationsfalle).
@@ -47,12 +47,12 @@ BACKUP_LOCAL_DIR=/app/.backups
# --- Auth (NextAuth) ---
# AUTH_SECRET: openssl rand -base64 32
# AUTH_URL: exakt die Coolify-Domain des app-Service (http:// für intern)
# AUTH_URL: exakt die Coolify-Domain des app-Service (http:// für intern)
AUTH_SECRET=CHANGE_ME_openssl_rand_base64_32
# PASSWORD_PEPPER (Härtung §1): openssl rand -hex 32 — frisch je Umgebung, NICHT rotierbar, nie ins Artefakt.
PASSWORD_PEPPER=CHANGE_ME_openssl_rand_hex_32
AUTH_URL=http://REPLACE-WITH-COOLIFY-SSLIP-DOMAIN
# Hinter Reverse-Proxy (Coolify/Traefik) für Auth.js v5 zwingend, sonst UntrustedHost:
# Hinter Reverse-Proxy (Coolify/Traefik) für Auth.js v5 zwingend, sonst UntrustedHost:
AUTH_TRUST_HOST=true
# --- Demo-Seed (NUR Testserver!) ---
@@ -69,4 +69,4 @@ SMTP_HOST=
SMTP_PORT=1025
SMTP_USER=
SMTP_PASSWORD=
SMTP_FROM=isms@example.com
SMTP_FROM=craftvia@example.com