- docker-compose.coolify(.prebuilt).yml: Service craftvia-worker (Target worker, Chromium, shm_size 1gb, gleiche Härtung), Craftvia-Variablen für app und worker. - Dockerfile: worker-Stage mit HOME=/home/app (Chromium-Profil für non-root); lokaler docker build der Targets runner und worker erfolgreich, PDF-Erzeugung im Image geprüft. - .env.example/.env.prod.example/.env.coolify.example: alle Craftvia-Variablen inkl. RLS, KI-Provider, PDF_CHROMIUM_PATH, OFFLINE_MAX_DAYS, API_RATE_LIMIT_*, AI_GENERATION_RETENTION_DAYS, AI_MONTHLY_TOKEN_LIMIT. - CI (.github, .gitea): Job gate mit Postgres (pgvector) und Redis als Service: migrate deploy, seed, Passwort für craftvia_app, tsc, lint, build, npm run test. - docs/craftvia/DEPLOY.md (aus den Certvia-Deploy-Docs abgeleitet): Architektur, Domains, Secrets, Worker, Migrationen, RLS-Aktivierung, Backup/Restore, KI, Rate Limits, Aufbewahrung, Smoke, Update/Rollback. build-and-push-images.sh baut craftvia-worker. - Certvia-/ISMS-Dokumente aus docs/ nach docs/_certvia-archiv/ (mit README); Verweise in README.md und Skript-Kommentaren angepasst. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
1.1 KiB
1.1 KiB
Sicherheit & Administration — Übergabepaket
Inhalt / Reihenfolge
- Sicherheit-und-Administration-Konzept.md — PO-Konzept: Ist-Abgleich, Empfehlungen, Roadmap.
- Aufgabenpaket-Sicherheit-Administration.md — Ein-Entwickler-Backlog SEC1–SEC6 (Branches
dev/sec<n>-…). - SEC1-Mail-Fundament-Detail.md — ausgearbeiteter Prompt: SMTP-Mail (Fundament).
- SEC2-Auth-SelfService-Detail.md — ausgearbeiteter Prompt: Passwort-Reset, Passwort ändern, E-Mail-Änderung, Session-Invalidierung.
Fixierte Entscheidungen
- Mail via SMTP (nodemailer) im ersten Schritt.
- 1 Entwickler, sequenziell: SEC1 → SEC2 → SEC3 → SEC4 → SEC5 → SEC6.
- 2FA optional, aber pro Tenant im Adminportal als Pflicht (
mfaRequired) erzwingbar; Passkeys dabei. - DSGVO-Funktionen enthalten.
Naht SEC1 ↔ SEC2
SEC1 liefert Versand + Templates; SEC2 erzeugt die Tokens (single-use, gehasht) und übergibt SEC1 nur die fertige actionUrl — keine Klartext-Secrets im MailLog.
Start
Mit SEC1 beginnen, dann SEC2. DNS-Vorbedingung: SPF/DKIM/DMARC vor Produktivversand. Secrets nur aus Env/Secret-Store.