Files
FranciaOcupada/DEPLOYMENT-SUMMARY.md
Resistencia Dev fc6bc1ab54
Some checks failed
CI/CD - Francia Ocupada (La Resistencia) / build-and-deploy (push) Failing after 7s
Afegit botó per ocultar/mostrar els jugadors
2025-12-14 22:06:47 +01:00

177 lines
5.0 KiB
Markdown

# 🎯 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