chore: sync CLAUDE.md with GitLab migration; add SOURCE_DATE_EPOCH to builds

- CLAUDE.md: correct stale Woodpecker/submodules claims; note
  registry.itsh.dev's attestation requirement and the docker-container
  driver prerequisite so future contributors don't rediscover the issue.
- .gitlab-ci.yml: export SOURCE_DATE_EPOCH from commit time so the
  rewrite-timestamp=true buildx flag produces genuinely reproducible
  images (layer digests stable across rebuilds of the same commit).
This commit is contained in:
2026-04-18 04:16:13 +02:00
parent cd7ea0b47b
commit 0b797aec66
2 changed files with 7 additions and 3 deletions

View File

@@ -18,6 +18,7 @@ backend:docker:
- docker login -u "$REGISTRY_USER" -p "$REGISTRY_PASSWORD" $REGISTRY
- docker context create tls-env
- docker buildx create --name ci-builder --driver docker-container --use tls-env
- export SOURCE_DATE_EPOCH=$(git log -1 --format=%ct)
script:
- docker buildx build --output "type=image,push=true,rewrite-timestamp=true" -f backend/deploy/Dockerfile -t "$BACKEND_IMAGE:${CI_COMMIT_SHORT_SHA}" backend/
rules:
@@ -63,6 +64,7 @@ web:docker:
- docker login -u "$REGISTRY_USER" -p "$REGISTRY_PASSWORD" $REGISTRY
- docker context create tls-env
- docker buildx create --name ci-builder --driver docker-container --use tls-env
- export SOURCE_DATE_EPOCH=$(git log -1 --format=%ct)
script:
- |
docker buildx build --output "type=image,push=true,rewrite-timestamp=true" \

View File

@@ -10,7 +10,7 @@ All planning documents are in `planning/`. Read `17-roadmap.md` for the phased f
## Architecture
Root repo (`marktvogt.de/root`) with submodules. Each component is a separate repo within the `marktvogt.de` org on somegit.dev:
Monorepo at `gitlab.com/vikingowl/marktvogt.de`. Components are regular directories (not git submodules):
- **`backend/`** — Go REST API + WebSocket (chat). PostgreSQL (+ PostGIS), Redis, S3 (self-hosted on itsh.dev).
- **`web/`** — SvelteKit + Tailwind 4. SSR for SEO. Consumes the Go API.
@@ -27,7 +27,7 @@ Root repo (`marktvogt.de/root`) with submodules. Each component is a separate re
| Auth | Custom (Go libs), E-Mail+PW / Magic Link / OAuth / 2FA |
| Payments | Stripe Connect |
| LLM | OpenRouter |
| CI/CD | Woodpecker (somegit.dev) |
| CI/CD | GitLab CI (gitlab.com) — evaluation vs Woodpecker; sister project infinity-tales still on Woodpecker |
| Hosting | Kubernetes (itsh.dev) |
| Monitoring | Prometheus, Loki, Grafana, Sentry |
@@ -47,4 +47,6 @@ Root repo (`marktvogt.de/root`) with submodules. Each component is a separate re
## Current Status
Project is in planning phase. The `app/`, `backend/`, and `web/` directories are empty placeholders. Start with `planning/17-roadmap.md` to understand the build order.
Project is in active development as of 2026-04-18. `backend/`, `web/`, and `app/` contain working code (Go API scaffolding + auth, SvelteKit pages, Flutter iOS/Android skeleton). Refer to `planning/17-roadmap.md` for feature sequencing and `planning/15-mvp.md` for current MVP scope.
Container registry is `registry.itsh.dev/vikingowl/marktvogt.de/{backend,web}` — a hosted Zot-backed registry that **requires attestations** on every pushed image. Builds must use buildx's `docker-container` driver (not the default `docker` driver). See `.gitlab-ci.yml` for the working pattern.