Upgrade runtime to Go 1.25 and add container orchestration.
CI / test (push) Failing after 35s

Add a cache-optimized multi-stage Dockerfile with non-root runtime, compose service definitions for local/dev execution, CI Go version alignment, and docs/path cleanup updates.

Made-with: Cursor
This commit is contained in:
2026-03-01 11:44:07 +00:00
parent f0afa8221f
commit ba7cd51a84
7 changed files with 99 additions and 23 deletions
+21 -21
View File
@@ -36,7 +36,7 @@ isProject: false
## Current Project Context
- No existing backend source files were found in `/home/ano/projects/produktor.io/tenerife.baby/backend`, so this plan assumes a greenfield implementation in that directory.
- No existing backend source files were found in this repository root, so this plan assumes a greenfield implementation.
- Stack confirmed: **Go + PostgreSQL (+ PostGIS)**.
- Invitation model confirmed: **Hybrid** (signed token + inviter lineage tracking).
- Client scope confirmed: **both** a reusable TS library and a plain JS frontend integration.
@@ -72,31 +72,31 @@ flowchart TD
## Planned Files and Components
- Backend bootstrap:
- `/home/ano/projects/produktor.io/tenerife.baby/backend/cmd/api/main.go`
- `/home/ano/projects/produktor.io/tenerife.baby/backend/internal/http/routes.go`
- `/home/ano/projects/produktor.io/tenerife.baby/backend/internal/config/config.go`
- `cmd/api/main.go`
- `internal/http/routes.go`
- `internal/config/config.go`
- Auth/invitation domain:
- `/home/ano/projects/produktor.io/tenerife.baby/backend/internal/auth/challenge.go`
- `/home/ano/projects/produktor.io/tenerife.baby/backend/internal/auth/ed25519_verify.go`
- `/home/ano/projects/produktor.io/tenerife.baby/backend/internal/invite/token.go`
- `/home/ano/projects/produktor.io/tenerife.baby/backend/internal/invite/service.go`
- `internal/auth/challenge.go`
- `internal/auth/ed25519_verify.go`
- `internal/invite/token.go`
- `internal/invite/service.go`
- Geo domain:
- `/home/ano/projects/produktor.io/tenerife.baby/backend/internal/geo/collections_service.go`
- `/home/ano/projects/produktor.io/tenerife.baby/backend/internal/geo/features_service.go`
- `internal/geo/collections_service.go`
- `internal/geo/features_service.go`
- Database:
- `/home/ano/projects/produktor.io/tenerife.baby/backend/migrations/0001_init_users_invites.sql`
- `/home/ano/projects/produktor.io/tenerife.baby/backend/migrations/0002_geo_collections_features.sql`
- `migrations/0001_init_users_invites.sql`
- `migrations/0002_geo_collections_features.sql`
- Frontend (no npm/bundling):
- `/home/ano/projects/produktor.io/tenerife.baby/backend/web/index.html`
- `/home/ano/projects/produktor.io/tenerife.baby/backend/web/app.js`
- `/home/ano/projects/produktor.io/tenerife.baby/backend/web/api.js`
- `web/index.html`
- `web/app.js`
- `web/api.js`
- Reusable TypeScript client library (separate package):
- `/home/ano/projects/produktor.io/tenerife.baby/backend/libs/geo-api-client/package.json`
- `/home/ano/projects/produktor.io/tenerife.baby/backend/libs/geo-api-client/tsconfig.json`
- `/home/ano/projects/produktor.io/tenerife.baby/backend/libs/geo-api-client/src/GeoApiClient.ts`
- `/home/ano/projects/produktor.io/tenerife.baby/backend/libs/geo-api-client/src/keys.ts`
- `/home/ano/projects/produktor.io/tenerife.baby/backend/libs/geo-api-client/src/storage.ts`
- `/home/ano/projects/produktor.io/tenerife.baby/backend/libs/geo-api-client/dist/` (build output consumed by frontend)
- `libs/geo-api-client/package.json`
- `libs/geo-api-client/tsconfig.json`
- `libs/geo-api-client/src/GeoApiClient.ts`
- `libs/geo-api-client/src/keys.ts`
- `libs/geo-api-client/src/storage.ts`
- `libs/geo-api-client/dist/` (build output consumed by frontend)
## API Surface (v1)