# Deploy del monolito MercadoDeVida ## ¿Basta con copiar `project/`? Sí, para levantar el monolito en un host basta con traer la carpeta `project/` completa y ejecutar: ```bash cd project ./scripts/monolith.sh prod start ``` o, para reemplazar una versión anterior ya corriendo: ```bash cd project ./scripts/monolith.sh prod restart ``` ## Qué hace `monolith.sh prod start/restart` 1. Limpia procesos antiguos del proyecto y listeners en puertos gestionados. 2. Arranca PostgreSQL y Redis con Docker Compose. 3. Instala dependencias con `npm ci` en backend, admin, TPV, frontend y storefront. 4. Ejecuta migraciones. 5. Compila backend y frontends. 6. Arranca servicios con `nohup` y guarda PID/logs en `project/.runtime/prod/`. 7. Verifica HTTP para cada servicio. Servicios por defecto: | Servicio | Puerto | |---|---:| | Backend API | 3000 | | Admin | 3001 | | TPV | 3002 | | Frontend | 3003 | | Storefront SEO | 3004 | ## Requisitos del host - Node.js >= 22 - npm - Docker + Docker Compose - Bash, curl, lsof - Variables/secretos en `project/.env` Si no existe `.env`, el script crea uno de desarrollo. En producción real conviene crear `.env` explícito antes de arrancar. ## Lo que NO gestiona - Traefik/Nginx/Authelia o certificados TLS. - Arranque automático tras reinicio del host. - Backups de base de datos. Para producción estable conviene envolver `./scripts/monolith.sh prod restart` con systemd, supervisor o el orquestador elegido.