L10b Betrieb & Aufräumen: Deploy – craftvia-worker, CI-Testjob, DEPLOY.md, Certvia-Doku archiviert
- 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>
This commit is contained in:
@@ -101,5 +101,44 @@ TRANSCRIPTION_API_KEY=
|
||||
TRANSCRIPTION_MODEL=whisper-1
|
||||
|
||||
# --- Craftvia: optionaler Malware-Scan für Uploads (ClamAV clamd) ---
|
||||
# Leer = nur Allowlist/Magic-Byte-Prüfung; gesetzt = zusätzlich clamd INSTREAM.
|
||||
CLAMAV_HOST=
|
||||
CLAMAV_PORT=3310
|
||||
|
||||
# --- Craftvia: Berichts-PDF (Worker, playwright-core + Chromium) ---
|
||||
# Leer = Playwright-Chromium bzw. lokal installiertes Google Chrome (Entwicklerrechner).
|
||||
# Im Docker-Worker-Image fest /usr/bin/chromium.
|
||||
PDF_CHROMIUM_PATH=
|
||||
|
||||
# --- Craftvia: Offline/PWA ---
|
||||
# Ab wie vielen Tagen ein lokal gespeichertes Auftragsbundle als veraltet gilt (1–365).
|
||||
OFFLINE_MAX_DAYS=7
|
||||
|
||||
# --- Craftvia: Rate Limits der REST-API (je Nutzer, Anfragen pro Minute) ---
|
||||
# Allgemein für /api/v1/**.
|
||||
API_RATE_LIMIT_PER_MINUTE=300
|
||||
# Einsatz-/Sync-Endpunkte (/api/v1/sync, /api/v1/uploads, /api/v1/field/**) – höher, weil
|
||||
# die PWA nach Offline-Phasen Outbox und Fotos in Schüben nachsendet.
|
||||
API_FIELD_RATE_LIMIT_PER_MINUTE=1200
|
||||
|
||||
# --- Craftvia: KI-Protokoll & Kostenbremse ---
|
||||
# Nach N Tagen leert/pseudonymisiert ein Worker-Job Ein-/Ausgaben im KI-Protokoll
|
||||
# (AiGeneration); Metadaten (Art, Modell, Tokens, Zeitpunkt) bleiben erhalten.
|
||||
AI_GENERATION_RETENTION_DAYS=180
|
||||
# Tokens (ein + aus) je Mandant je Kalendermonat; darüber lehnen Lotse und
|
||||
# Import-Extraktion ab. 0 = unbegrenzt.
|
||||
AI_MONTHLY_TOKEN_LIMIT=0
|
||||
|
||||
# --- Optionale Fundament-Variablen (Default leer) ---
|
||||
# MFA_ENC_KEY: Schlüssel für TOTP-Secrets at-rest (leer = aus AUTH_SECRET abgeleitet).
|
||||
# ⚠ Nach dem Setzen nicht mehr ändern.
|
||||
# MFA_ENC_KEY=
|
||||
# BACKUP_ENC_KEY: Verschlüsselung der Backup-Artefakte (leer = AUTH_SECRET).
|
||||
# BACKUP_ENC_KEY=
|
||||
# WebAuthn/Passkeys: Origin und RP-ID (leer = aus AUTH_URL abgeleitet).
|
||||
# WEBAUTHN_ORIGIN=http://localhost:3000
|
||||
# WEBAUTHN_RP_ID=localhost
|
||||
# Demo-Seed-Passwort (Default Demo1234!).
|
||||
# SEED_PASSWORD=
|
||||
# RLS-Test hart statt Skip, wenn craftvia_app kein LOGIN hat (CI).
|
||||
# RLS_TEST_REQUIRED=true
|
||||
|
||||
Reference in New Issue
Block a user