# Producción

- Linux estable, Nginx o Apache y PHP-FPM 8.4+.
- MariaDB 11.8 LTS administrada o con réplica/backup.
- HTTPS obligatorio; `SESSION_SECURE_COOKIE=true`.
- `APP_DEBUG=false` y secretos fuera del repositorio.
- DocumentRoot en `/public`.
- S3 privado con cifrado y bloqueo público.
- Workers supervisados por systemd/Supervisor.
- Cron para recordatorios, limpieza y métricas.
- Logs estructurados con correlation ID.
- Backup cifrado y restauración probada.
- WAF/rate limiting y monitoreo de disponibilidad.

## Flujo incorporado en Sprint 21

- Generar el release con `GENERAR_RELEASE_STAGING.bat`.
- Verificar el contenido mediante `DEPLOYMENT_FILES_SHA256.txt`.
- Mantener `.env`, almacenamiento y backups fuera del release.
- Ejecutar `php tools/staging/preflight.php --strict` en el servidor.
- Usar `/api/v1/health/live` y `/api/v1/health/ready` para monitoreo.
- Seguir `docs/68_RUNBOOK_STAGING.md` antes de Sprint 22.
## Gate incorporado en Sprint 22

- Generar y conservar evidencia fuera del release.
- Ejecutar `deploy/scripts/run-release-candidate-audit.sh`.
- Exigir cero hallazgos críticos/altos, restauración real, E2E y aislamiento multiempresa.
- Limitar el primer piloto y documentar el tiempo máximo de rollback.
- Mantener `PRODUCTION_TRAFFIC_ENABLED=false`; el gate no activa tráfico.

