- 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>
54 lines
2.2 KiB
Markdown
54 lines
2.2 KiB
Markdown
# Craftvia
|
|
|
|
**Handwerk. Digital auf Kurs.** — mandantenfähige Einsatz-PWA für Handwerks- und
|
|
Montagebetriebe.
|
|
|
|
- Spezifikation: [docs/craftvia/SPEC-CRAFTVIA.md](docs/craftvia/SPEC-CRAFTVIA.md)
|
|
- Architektur/Datenmodell: [docs/craftvia/ARCHITEKTUR.md](docs/craftvia/ARCHITEKTUR.md) (folgt)
|
|
- Projektregeln für Entwickler und Agenten: [AGENTS.md](AGENTS.md)
|
|
- Branding: [docs/craftvia/BRANDBOOK.md](docs/craftvia/BRANDBOOK.md), [docs/craftvia/BRANDING.md](docs/craftvia/BRANDING.md)
|
|
- Migrationen & RLS: [docs/craftvia/MIGRATIONS.md](docs/craftvia/MIGRATIONS.md)
|
|
|
|
## Stand
|
|
|
|
Fundament aus Certvia übernommen (Auth/Identity/MFA/WebAuthn, Mandanten, RBAC, Audit-Log,
|
|
Mail, Objektspeicher, Backup/DSGVO, Plattform-Administration, i18n). Die ISMS-Fachlichkeit
|
|
ist entfernt; die Craftvia-Fachmodule haben Routen-Platzhalter, Modul-Gates, Navigation und
|
|
Rollen/Permissions als Andockpunkte.
|
|
|
|
## Schnellstart (lokal)
|
|
|
|
Voraussetzungen: Node 22, Docker.
|
|
|
|
```bash
|
|
cp .env.example .env # AUTH_SECRET/PASSWORD_PEPPER erzeugen (siehe Kommentare)
|
|
npm ci
|
|
docker compose up -d postgres redis garage
|
|
GARAGE_ADMIN_URL=http://localhost:3903 npx tsx scripts/garage-provision.ts
|
|
npx prisma migrate deploy
|
|
npx prisma db seed
|
|
npm run dev # http://localhost:3000
|
|
```
|
|
|
|
Login: `admin@demo.example` / `Demo1234!` (weitere Demo-Nutzer siehe AGENTS.md).
|
|
|
|
## Befehle
|
|
|
|
| Befehl | Zweck |
|
|
|---|---|
|
|
| `npm run dev` | Entwicklungsserver |
|
|
| `npm run lint` / `npx tsc --noEmit` | Lint / Typprüfung |
|
|
| `npm run build` | Produktions-Build (inkl. Modul-Guard-Check) |
|
|
| `npm run test` | alle `scripts/test-*.ts` gegen die lokale Infra |
|
|
| `npm run gate` | generate + tsc + lint + build + test |
|
|
| `npm run worker:mail` / `worker:backup` | Hintergrund-Worker |
|
|
| `npm run brand:icons` | Favicon/PWA-Icons aus dem Signet erzeugen |
|
|
|
|
## Betrieb
|
|
|
|
Container-Build über das Multi-Stage-`Dockerfile` (Targets `runner`, `migrate`, `garage`, `worker`),
|
|
Deployment mit `docker-compose.coolify.yml` bzw. `docker-compose.coolify.prebuilt.yml`.
|
|
Hinweise: [`docs/craftvia/DEPLOY.md`](docs/craftvia/DEPLOY.md) (Betrieb, Secrets, Worker, RLS, Backup),
|
|
[`docs/craftvia/API.md`](docs/craftvia/API.md) (`/api/v1`). Übernommene Certvia-Dokumente liegen in
|
|
`docs/_certvia-archiv/`.
|