# sbsports — Coolify & Woodpecker Setup Despliegue automático de sbsports en Coolify con CI/CD en Woodpecker. ## URLs | Servicio | URL | |----------|-----| | App Web | `https://sbsports.thax.es` | | Registry | `git.thax.es/alexandrump/sbsports` | ## Setup en Coolify ### Paso 1: Crear el servicio 1. Accede a https://panel.thax.es 2. Crea un nuevo **Proyecto** (o usa uno existente) 3. Dentro del proyecto, crea un nuevo servicio: - **Tipo**: Docker Compose - **Nombre**: sbsports - **Contenido**: copia el contenido de `coolify/docker-compose.yml` 4. Click en **Deploy** ### Paso 2: Obtener el UUID Una vez creado, copia el UUID del servicio. Lo encontrarás en: - URL: `https://panel.thax.es/project/{projectId}/service/{UUID}` - O en los detalles del servicio ### Paso 3: Configurar variables de entorno En Coolify, ve a **Environment** del servicio y verifica: - `NODE_ENV=production` - `PORT=3000` - `DATA_DIR=/app/data` ## Setup en Woodpecker CI ### Paso 1: Activar el repositorio 1. Accede a https://ci.thax.es 2. El repositorio sbsports debería aparecer en la lista 3. Haz click en **Activate** (si no está ya activado) 4. Guarda el **Repository ID** (aparece en la URL: `/repos/{id}`) ### Paso 2: Configurar secretos En Woodpecker, ve a **Secrets** del repositorio sbsports y agrega: | Secreto | Valor | Origen | |---------|-------|--------| | `gitea_user` | Tu usuario de Gitea | `git.thax.es` | | `gitea_token` | Token de Gitea | https://git.thax.es/user/settings/applications | | `coolify_api_token` | Token de Coolify API | `panel.thax.es` (del README de invest) | | `SBSPORTS_COOLIFY_UUID` | UUID del servicio | De Coolify (Paso 2) | ### Paso 3: Variables del pipeline Añade la variable `SBSPORTS_COOLIFY_UUID` a los secretos de Woodpecker con el UUID obtenido en Coolify. ## Flujo de despliegue ``` git push → Gitea ↓ Woodpecker detects push ↓ 1. Build imagen: Dockerfile → git.thax.es/alexandrump/sbsports:latest ↓ 2. PATCH compose en Coolify con la nueva imagen ↓ 3. Trigger deploy en Coolify (redeploy automático) ↓ Contenedor reinicia con la nueva imagen ``` ## Despliegue manual (sin Woodpecker) Si necesitas hacer deploy manualmente: ```bash # 1. Build y push a registry docker build -t git.thax.es/alexandrump/sbsports:latest . docker login git.thax.es docker push git.thax.es/alexandrump/sbsports:latest # 2. Redeploy en Coolify COOLIFY_TOKEN="8|qF9w8JziRgUjUsbTMTUIQUP6C2PjD8bpbQ34Gf4e6254af98" COOLIFY_UUID="" curl -sSLk -X GET "https://panel.thax.es/api/v1/deploy?uuid=$COOLIFY_UUID&force=false" \ -H "Authorization: Bearer $COOLIFY_TOKEN" ``` ## Troubleshooting **Imagen no actualiza en Coolify** - Verifica que `pull_policy: always` está en el compose - Força el redeploy con `force=true` en la URL de deploy **Woodpecker falla al buildar** - Verifica credenciales de Gitea en secretos - Comprueba que el Dockerfile existe en la raíz del repo **Dominio no resuelve** - Verifica que Traefik está corriendo en Coolify - Comprueba las labels de la configuración en `coolify/docker-compose.yml` **Contenedor no arranca** - Revisa logs en Coolify: **Monitoring** → **Logs** - Verifica que el puerto 3000 es accesible ## IDs clave ```bash # Coolify service UUID (reemplazar después de crear) SBSPORTS_COOLIFY_UUID="obtén_de_coolify" # Gitea registry (ya configurado) git.thax.es/alexandrump/sbsports # Credenciales (guardadas en memoria de Claude Code) # Ver: /Users/alex/.claude/projects/*/memory/ ``` ## Notas - La imagen se buildeará en el registry de Gitea: `git.thax.es/alexandrump/sbsports:latest` - El volumen `sbsports-data` persiste entre deployments - Traefik maneja el HTTPS automáticamente para `sbsports.thax.es` - Los logs se pueden ver en Coolify → Monitoring → Logs