Opera y lanza

Checklist de despliegue y seguridad

Despliega web y admin con migraciones explícitas, cron, readiness, red fiable y controles de producción.

Sincronizado con el commit 2a1a04a del starter.

Usa esta lista final cuando la aplicación ya funcione en local. El objetivo no es solo un despliegue verde: es una versión que puedas autenticar, cobrar, operar, restaurar y administrar sin atajos de desarrollo.

Elige la forma del despliegue

  • Web y consola admin son builds separados y deben usar orígenes separados; pueden compartir repositorio, base, secreto de autenticación y etiqueta de versión.
  • Se documenta Vercel porque vercel.json trae cron, pero sirve cualquier host Node con PostgreSQL, Redis, HTTPS, secretos y un programador autenticado.
  • Usa una URL PostgreSQL con pool para tráfico serverless y, si hace falta, una directa para migraciones. Migra antes de promover código; no se ejecuta desde el build.
  • Empieza CSP en report-only, observa hosts de analytics, Turnstile, Stripe y storage y decide después cuándo aplicarla.

Está listo para producción cuando: ambos builds parten de la misma versión, migraciones verificadas, /api/ready sano, backup restaurable, cron y webhook Stripe probados, sin flags demo y roles admin de lectura/escritura correctos.

Despliega web y apps/admin como servicios con orígenes separados. Usa Node >=20.19.0 <23 y pnpm 10.22.0; ejecuta pnpm lint, pnpm test:cov, pnpm build y después pnpm db:check:prod y pnpm db:migrate:prod. Las migraciones nunca son automáticas.

Controles obligatorios

  • BETTER_AUTH_SECRET fuerte, URLs correctas, PostgreSQL productivo y copias con pruebas de restauración.
  • Rate limit distribuido en Redis y fuente/header de IP explícitamente fiable.
  • Turnstile; flags demo y logs de enlaces auth desactivados.
  • CRON_SECRET y /api/cron/jobs cada cinco minutos (vercel.json lo incluye).
  • Stripe live, webhook, Portal seguro y Price IDs si hay facturación.
  • Objetos privados, mínimo privilegio, CORS correcto y URLs breves si hay storage.
  • Dominio de correo verificado y política legal/retención revisada.

Usa /api/health para vida y /api/ready para entorno, base, migraciones, Redis y cola. Una cola degradada requiere alerta aunque sirva tráfico.

Hay HSTS en producción y ruta CSP report-only. Observa reportes antes de aplicar una política compatible. Tras desplegar prueba auth, aislamiento, checkout/webhooks, cron, exportación/borrado y MFA admin. Lee DEPLOYMENT.md, docs/security-headers.md y .env.example.

La versión actual también incluye imágenes reforzadas para web, admin, worker y Content Studio, y pnpm launch:check para unir configuración, contenedores, migraciones, integridad, retención, tests y builds. Sigue Contenedores y lanzamiento y demuestra recuperación con Copias y restore.

Checklist de despliegue y seguridad · Sushi SaaS