Die Anwendung ohne Vercel als Container betreiben und Images nur aus geprüftem Code bauen.
Umgesetzt
Multi-Stage-Dockerfile mit zwei Zielen: runner (Next.js-Standalone, Nicht-Root uid 1001, Node 22) und tools (Migration, Worker, admin:create), Prisma-Schema-Engine und OpenSSL im Tools-Image (b9d6f08)
Gitea-Workflow .gitea/workflows/docker-build.yml seit dem ersten Commit: Push auf main ergibt latest und sha-<kurz>, Tags v* zusätzlich die Version; Push über den clusterinternen Gitea-Service, weil Cloudflare große Uploads abweist
Images heißen artista-modelcamp und artista-modelcamp-tools, unabhängig vom Repo-Namen (c18c628, 95e3733)
Qualitäts-Gate (0421d7d, 14.10.2026): lint mit pnpm audit, typecheck und test (PostgreSQL 18.6 als Service) auf ci-isolated, erst danach build-and-push auf docker-builder; Runner-Prüfskript scripts/ci-runner-isolation.sh
Letzter grüner Build: sha-0421d7d (14.10.2026, nach Neustart wegen Registry-Fehler)
docs/BETRIEB.md Abschnitt 1, Dockerfile, docker-compose.yml (lokal mit Mailpit).
Status
Code: ja · Geprüft: ja (CI) · Gemergt: ja · Produktiv: ja
Stand: 2026-10-16 (Quelle: git origin/main 9785eb2, Gitea-CI-Läufe und Registry, Memory der Sessions)
## Ziel
Die Anwendung ohne Vercel als Container betreiben und Images nur aus geprüftem Code bauen.
## Umgesetzt
- [x] Multi-Stage-Dockerfile mit zwei Zielen: `runner` (Next.js-Standalone, Nicht-Root uid 1001, Node 22) und `tools` (Migration, Worker, `admin:create`), Prisma-Schema-Engine und OpenSSL im Tools-Image (`b9d6f08`)
- [x] Gitea-Workflow `.gitea/workflows/docker-build.yml` seit dem ersten Commit: Push auf `main` ergibt `latest` und `sha-<kurz>`, Tags `v*` zusätzlich die Version; Push über den clusterinternen Gitea-Service, weil Cloudflare große Uploads abweist
- [x] Images heißen `artista-modelcamp` und `artista-modelcamp-tools`, unabhängig vom Repo-Namen (`c18c628`, `95e3733`)
- [x] Qualitäts-Gate (`0421d7d`, 14.10.2026): `lint` mit `pnpm audit`, `typecheck` und `test` (PostgreSQL 18.6 als Service) auf `ci-isolated`, erst danach `build-and-push` auf `docker-builder`; Runner-Prüfskript `scripts/ci-runner-isolation.sh`
- [x] Letzter grüner Build: `sha-0421d7d` (14.10.2026, nach Neustart wegen Registry-Fehler)
## Offen
- [ ] Image-Build für `9785eb2` ist fehlgeschlagen: #20
## Grundlage
`docs/BETRIEB.md` Abschnitt 1, `Dockerfile`, `docker-compose.yml` (lokal mit Mailpit).
## Status
Code: ja · Geprüft: ja (CI) · Gemergt: ja · Produktiv: ja
Stand: 2026-10-16 (Quelle: git origin/main 9785eb2, Gitea-CI-Läufe und Registry, Memory der Sessions)
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Ziel
Die Anwendung ohne Vercel als Container betreiben und Images nur aus geprüftem Code bauen.
Umgesetzt
runner(Next.js-Standalone, Nicht-Root uid 1001, Node 22) undtools(Migration, Worker,admin:create), Prisma-Schema-Engine und OpenSSL im Tools-Image (b9d6f08).gitea/workflows/docker-build.ymlseit dem ersten Commit: Push aufmainergibtlatestundsha-<kurz>, Tagsv*zusätzlich die Version; Push über den clusterinternen Gitea-Service, weil Cloudflare große Uploads abweistartista-modelcampundartista-modelcamp-tools, unabhängig vom Repo-Namen (c18c628,95e3733)0421d7d, 14.10.2026):lintmitpnpm audit,typecheckundtest(PostgreSQL 18.6 als Service) aufci-isolated, erst danachbuild-and-pushaufdocker-builder; Runner-Prüfskriptscripts/ci-runner-isolation.shsha-0421d7d(14.10.2026, nach Neustart wegen Registry-Fehler)Offen
9785eb2ist fehlgeschlagen: #20Grundlage
docs/BETRIEB.mdAbschnitt 1,Dockerfile,docker-compose.yml(lokal mit Mailpit).Status
Code: ja · Geprüft: ja (CI) · Gemergt: ja · Produktiv: ja
Stand: 2026-10-16 (Quelle: git origin/main
9785eb2, Gitea-CI-Läufe und Registry, Memory der Sessions)