# 🎯 Resumen de Configuración CI/CD ## ✅ Lo que hemos hecho ### 1. Workflow de Gitea Actions - **Archivo**: `.gitea/workflows/deployment.yml` - **Trigger**: Push a `main` o `master` - **Runner**: `production-ready` (tu runner configurado) - **Acciones**: - ✅ Checkout del código - ✅ Configuración de Node.js 20 - ✅ Detención de contenedores anteriores - ✅ Limpieza de imágenes antiguas - ✅ Construcción de imágenes Docker - ✅ Despliegue con docker-compose_prod.yml - ✅ Verificación de estado - ✅ Logs de debugging ### 2. Documentación - **CI-CD-README.md**: Guía completa de uso y troubleshooting - **monitor-deploy.sh**: Script interactivo de monitoreo ### 3. Commit y Push - ✅ Commit realizado: `273a228` - ✅ Push a origin/main completado - ✅ Workflow debería estar ejecutándose ahora ## 🚀 Próximos Pasos ### 1. Verificar que el Workflow se está ejecutando Abre tu navegador y ve a: ``` http://gitea.local:3000/marti/FranciaOcupada/actions ``` Deberías ver el workflow "CI/CD - Francia Ocupada (La Resistencia)" ejecutándose. ### 2. Monitorear el Despliegue Desde tu servidor donde está el runner, ejecuta: ```bash cd /home/marti/Documentos/Gitea/resistencia ./monitor-deploy.sh ``` O manualmente: ```bash # Ver estado de contenedores docker compose -f docker-compose_prod.yml ps # Ver logs en tiempo real docker compose -f docker-compose_prod.yml logs -f ``` ### 3. Verificar el Despliegue Una vez completado el workflow, verifica: **Frontend**: https://franciaocupada.martivich.es **API**: https://api.franciaocupada.martivich.es ## 🔍 Cómo Saber si Funcionó ### En Gitea Web UI 1. Ve a Actions en tu repositorio 2. Busca el workflow más reciente 3. Todos los pasos deberían tener un ✅ verde 4. El último paso mostrará las URLs de la aplicación ### En el Servidor ```bash # Deberías ver 3 contenedores corriendo docker compose -f docker-compose_prod.yml ps # Salida esperada: # NAME STATUS PORTS # resistencia-client Up 0.0.0.0:3000->3000/tcp # resistencia-server Up 0.0.0.0:4000->4000/tcp # resistencia-db Up 0.0.0.0:5432->5432/tcp ``` ## 🧪 Hacer una Prueba de Despliegue ### Opción A: Cambio real ```bash # Hacer un cambio pequeño echo "# CI/CD Test" >> README.md git add README.md git commit -m "test: Verificación de CI/CD" git push origin main ``` ### Opción B: Commit vacío ```bash # Trigger sin cambios git commit --allow-empty -m "test: Trigger CI/CD workflow" git push origin main ``` ### Opción C: Ejecución manual 1. Ve a http://gitea.local:3000/marti/FranciaOcupada/actions 2. Click en el workflow 3. Click en "Run workflow" 4. Selecciona la rama `main` 5. Click en "Run" ## 📊 Diferencias con el Ejemplo Original ### Tu Proyecto vs HolaMundo | Aspecto | HolaMundo | Francia Ocupada | |---------|-----------|-----------------| | **Imagen** | Una sola imagen | 3 servicios (client, server, db) | | **Herramienta** | `docker build` | `docker compose` | | **Config** | Dockerfile simple | docker-compose_prod.yml | | **Puerto** | 8080 | 3000 (client), 4000 (server) | | **Complejidad** | Baja | Media-Alta | ### Adaptaciones Realizadas 1. **Docker Compose en lugar de Docker directo** - Usamos `docker compose -f docker-compose_prod.yml` en todos los pasos 2. **Múltiples servicios** - Cliente (Next.js) - Servidor (Node.js + Socket.IO) - Base de datos (PostgreSQL) 3. **Variables de entorno de producción** - `NEXT_PUBLIC_API_URL=https://api.franciaocupada.martivich.es` - `CORS_ORIGIN=https://franciaocupada.martivich.es` 4. **Verificación mejorada** - Comprueba que los 3 contenedores estén corriendo - Muestra logs de cada servicio ## 🛠️ Troubleshooting Rápido ### El workflow no se ejecuta - Verifica que el runner esté corriendo: `docker ps | grep gitea-act_runner` - Verifica la conexión del runner con Gitea ### El workflow falla en el build - Revisa los logs en Gitea Actions - Construye manualmente: `docker compose -f docker-compose_prod.yml build` ### Los contenedores no inician - Verifica puertos disponibles: `sudo lsof -i :3000 :4000 :5432` - Revisa logs: `docker compose -f docker-compose_prod.yml logs` ### La aplicación no responde - Espera 30-60 segundos después del deploy - Verifica que los contenedores estén "Up": `docker compose -f docker-compose_prod.yml ps` - Revisa logs del cliente y servidor ## 📝 Archivos Creados ``` resistencia/ ├── .gitea/ │ └── workflows/ │ └── deployment.yml # Workflow de CI/CD ├── CI-CD-README.md # Documentación detallada ├── monitor-deploy.sh # Script de monitoreo └── DEPLOYMENT-SUMMARY.md # Este archivo ``` ## 🎉 ¡Listo! Tu proyecto ahora tiene CI/CD automático. Cada vez que hagas push a `main`, se desplegará automáticamente en producción. **URLs de Verificación**: - 🌐 Frontend: https://franciaocupada.martivich.es - 🔌 API: https://api.franciaocupada.martivich.es - 🔧 Gitea Actions: http://gitea.local:3000/marti/FranciaOcupada/actions