Phase 0+1: Repo-Skelett für Cards-Greenfield

Strategie B (beschlossen 2026-05-08): Cards wird als eigenständige
föderierte App neu gebaut, ohne Code-Übernahme aus mana-monorepo.

Skelett enthält:
- apps/api: Hono+Bun mit /healthz, /version, Manifest-Endpoint, leere
  pgSchema('cards'), Drizzle-Config, erstem Vitest
- apps/web: SvelteKit 2 + Svelte 5 (runes), Vite auf 3082
- packages/cards-domain: Pure-TS, CardType-Discriminated-Union,
  SubIndex-Granularität für Reviews, Future-CardType-Set vorbereitet
- infrastructure/docker-compose.yml: Postgres 16 auf 5435
- app-manifest.json: v1.0.0, Verein-owned, beta-tier
- .github/workflows/ci.yml
- docs/LESSONS_FROM_MANA_MONOREPO.md (Read-Day-Output, 15 Lehren)

Pre-Flight für Phase 2 (Auth-Föderation): DNS cardecky.mana.how,
GitHub-Repo mana-ev/cards, Cards-App-Registrierung in mana-auth,
NPM_AUTH_TOKEN für Verdaccio.

Plan: mana/docs/playbooks/CARDS_GREENFIELD.md

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Till 2026-05-08 14:08:41 +02:00
commit 8605b1b517
37 changed files with 1197 additions and 0 deletions

36
.env.example Normal file
View file

@ -0,0 +1,36 @@
# Cards-Greenfield — Local Dev Defaults
# Copy to .env (git-ignored) and adjust as needed.
# === API + DB ===
NODE_ENV=development
DATABASE_URL=postgresql://cards:cards@localhost:5435/cards
CARDS_API_PORT=3081
CARDS_WEB_PORT=3082
# === Plattform-Endpunkte ===
# Lokal mit Mana-Plattform-Stack auf Default-Ports laufend
MANA_AUTH_URL=http://localhost:3001
MANA_CREDITS_URL=http://localhost:3061
MANA_MEDIA_URL=http://localhost:3065
MANA_SHARE_URL=http://localhost:3072
MANA_LINKS_URL=http://localhost:3073
MANA_EVENTS_URL=http://localhost:3074
MANA_MCP_URL=http://localhost:3069
MANA_SEARCH_URL=http://localhost:3076
# === App-Identität (von mana-auth ausgegeben) ===
# Cards-Service-Key für interne Cross-Service-Calls.
# Production: aus mana-auth.apps-Tabelle bei App-Onboarding.
CARDS_APP_SERVICE_KEY=msk_dev_change_me
# === JWT-Validation ===
# JWKS-URL für User-JWT-Verification (5-Min-Cache).
MANA_AUTH_JWKS_URL=http://localhost:3001/.well-known/jwks.json
# === Verdaccio (für pnpm install) ===
# Lokal: npm login --registry=https://pkg.mana.how
# Production: GitHub Secret
NPM_AUTH_TOKEN=
# === MinIO (über mana-media) ===
CARDS_MEDIA_BUCKET=cards-storage