Skip to content

Visión General de Deployment

AppPlataformaRamaNotas
apps/webVercelmainSPA estática + edge
apps/docsVercelmainSitio estático Astro
apps/apiRailwaymainContainer Node.js
apps/ai-backendRailwaymainContainer Node.js, puerto 3001

El pipeline principal corre en cada push a main y en PRs:

graph LR
Push --> Lint
Lint --> Build
Build --> Test[Unit Tests]
Test --> E2E[E2E access-control]
E2E -->|✅ Pasa| Deploy
E2E -->|❌ Falla| Block[PR Bloqueado]

Stages del pipeline:

  1. lint — ESLint en todo el monorepo
  2. buildpnpm build (Turborepo build cache)
  3. test — Jest unit tests
  4. e2e:access-controlBlocking — suite de access-control Playwright
  5. deploy — Deploy a Vercel (web + docs) y Railway (api + ai-backend)

Ver apps/api/.env.example y apps/ai-backend/.env.example para la lista completa. Las críticas:

apps/api
DATABASE_URL= # Neon pooler URL
DIRECT_URL= # Neon direct URL (migraciones)
JWT_SECRET= # Mín. 64 caracteres
AIBACKEND_API_KEY= # Shared secret con ai-backend
STRIPE_SECRET_KEY=
STRIPE_WEBHOOK_SECRET=
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=
FRONTEND_URL= # https://fluency.nappai.ai
# apps/ai-backend
AIBACKEND_API_KEY= # Mismo que en apps/api
AI_CREDENTIALS_MASTER_KEY= # 64 chars hex — AES-256
FLUENCY_API_URL= # URL de apps/api
QDRANT_URL=

Las migraciones Prisma se aplican manualmente antes de cada deploy que incluya cambios de schema:

Terminal window
# Aplicar migraciones en producción
pnpm db:migrate

No están automatizadas en el pipeline para evitar migraciones destructivas accidentales.