Setup locale
Come avviare FireFeed in sviluppo.
Prerequisiti
- Node 20+
- pnpm 10.17+
- Docker Desktop (per Postgres + Redis locali)
- Accesso al Keycloak remoto (le credenziali girano in
.env.local)
Componenti
In dev:
- Postgres + Redis: in Docker locale (
docker compose up -d db redis) - Keycloak: remoto (non c'è bisogno di sollevarlo in locale)
- web + worker: nativi via
pnpm dev
Bootstrap
git clone <repo>
cd FireFeed
pnpm install
cp .env.example packages/web/.env.local
cp .env.example packages/worker/.env.local
# Edita le due .env.local con DATABASE_URL, REDIS_URL, AUTH_KEYCLOAK_*, …
docker compose up -d db redis
pnpm db:migrate # applica schema control plane
pnpm db:seed # opzionale, seed dati di esempio
pnpm dev # avvia web (3000) + worker (4000) in parallelo (Turbo)Web disponibile su http://localhost:3000, worker API interna su http://localhost:4000/health.
Docs in locale
pnpm --filter @firefeed/docs devServito su http://localhost:3001.
Generare lo spec OpenAPI
pnpm gen:openapiGlobs tutti i moduli sotto packages/{web,worker}/**/openapi/**/*.ts, popola il registry condiviso e scrive:
packages/docs/public/openapi/web.jsonpackages/docs/public/openapi/worker.json
Il comando è idempotente: girarlo due volte di seguito non produce diff. In CI, pnpm gen:openapi:check fallisce se il diff è non-zero.
Le route dell'app packages/oms sono documentate nel catalogo
API OMS, ma non sono ancora incluse nel generatore. Non aggiungere
manualmente endpoint OMS ai due JSON: la copertura formale richiederà un target
oms e schemi Zod dedicati.
Test
pnpm test # tutti i package
pnpm -F @firefeed/worker test
pnpm -F @firefeed/web test