Commit Graph

19 Commits

Author SHA1 Message Date
e092a8d054 fix(deploy): replace Dragonfly CRD with plain Valkey deployment
Tenant SA lacks dragonflydb.io CRD permissions. Use a standard
Valkey Deployment+Service instead. Also re-enable CNPG (created
via kubectl), migrate job, and add seccompProfile to migrate pod.
2026-02-22 10:53:33 +01:00
f48a29c433 fix(deploy): disable CNPG and migrate job (tenant SA lacks CRD permissions)
Postgres, Dragonfly, and NetworkPolicy must be provisioned by the
platform admin or via itsh.dev dashboard, not by the tenant SA.
2026-02-22 10:32:10 +01:00
7c2e2cebff fix(deploy): disable Dragonfly CRD (tenant SA lacks dragonflydb.io permission) 2026-02-22 10:25:50 +01:00
e99ab896d3 fix(deploy): disable NetworkPolicy (tenant SA lacks networkpolicies permission) 2026-02-22 10:22:18 +01:00
ae54910f51 fix(docker): use existing nobody user instead of creating UID 65534 2026-02-22 10:19:19 +01:00
f07eac1811 fix(ci): add gcc/musl-dev for race detector in test step 2026-02-22 10:15:17 +01:00
a796443b1c fix(lint): remove revive linter (only producing doc-comment noise) 2026-02-22 10:13:42 +01:00
3e42f59f96 fix(lint): exclude revive exported/package-comments via issues filter 2026-02-22 10:11:42 +01:00
3145dba255 fix(lint): resolve all golangci-lint v2 issues
- Disable revive exported/package-comments rules (style, not correctness)
- Use errors.Is instead of == for pgx.ErrNoRows comparisons
- Use errors.As instead of type assertion on validator errors
- Use http.NewRequestWithContext instead of client.Get (noctx)
- Check resp.Body.Close error return (errcheck)
- Run gofmt on files with formatting drift
2026-02-22 10:09:46 +01:00
dd5366f931 fix(lint): remove gosimple (merged into staticcheck in golangci-lint v2) 2026-02-22 10:05:37 +01:00
4b871c67cc fix(lint): remove goimports from linters (formatter in golangci-lint v2) 2026-02-22 10:04:09 +01:00
f6f07b2139 fix(deploy): add seccompProfile RuntimeDefault to satisfy PodSecurity restricted policy 2026-02-22 10:03:41 +01:00
a58368e9d0 fix(lint): move gofmt to formatters section for golangci-lint v2 2026-02-22 10:02:25 +01:00
015189e648 fix(ci): force GOTOOLCHAIN=local to compile golangci-lint with go1.25 2026-02-22 09:57:06 +01:00
a12c1b48f1 fix(ci): correct registry to somegit.dev, add golangci-lint v2 version field 2026-02-22 09:50:46 +01:00
10e1d15462 chore(deploy): remove superseded raw k8s manifests 2026-02-22 09:33:41 +01:00
7780c3378b feat(deploy): add Helm chart and update CI for k8s deployment
- Replace raw k8s manifests with a full Helm chart (deploy/helm/)
- Add CloudNativePG cluster with PostGIS extensions and hcloud-volumes storage
- Add DragonflyDB (Redis-compatible) cache via operator CRD
- Add migration Job as Helm pre-install/pre-upgrade hook
- Add NetworkPolicy restricting ingress to nginx-gateway, egress to DB/cache/DNS/HTTPS
- Add ServiceAccount with automountServiceAccountToken disabled
- Use HTTPRoute (Gateway API) instead of Ingress to match cluster setup
- Fix Dockerfile: explicit UID 65534, add golang-migrate CLI for migration Job
- Update CI: push immutable SHA tags, deploy via helm upgrade --install --atomic
2026-02-22 09:32:01 +01:00
a1d93f7a8e feat: implement MVP backend API
Go backend with Gin, pgx, Valkey (go-valkey), and PostGIS.

Domains:
- Market search with PostGIS geo-queries (ST_DWithin, ST_Distance),
  German full-text search (tsvector + ILIKE fallback for compound words),
  date range filtering, pagination, and slug-based detail endpoint
- Auth with email+password (bcrypt), JWT access tokens (15min),
  session tokens (30d, dual Valkey+Postgres storage), OAuth
  (Google/GitHub/Facebook), magic links, and TOTP 2FA
- User profile with CRUD, soft-delete (30d grace), and restore

Infrastructure:
- 6 database migrations (users, sessions, oauth_accounts, magic_links,
  markets with PostGIS+FTS, totp_secrets)
- Middleware: recovery, request ID, structured logging (slog), CORS,
  per-IP rate limiting, JWT auth
- Seed data: 10 medieval markets across DACH region
- Docker Compose (PostGIS 17 + Valkey 8), multi-stage Dockerfile,
  Woodpecker CI pipeline, Kubernetes manifests
- Justfile, golangci-lint config, env example
2026-02-18 05:52:20 +01:00
9784d93a4a initial commit 2026-02-18 04:49:23 +01:00