Files
sbsports/COOLIFY.md
alexandrump 78c5ed52ac feat: initial sbsports deployment setup
Add Coolify/Woodpecker CI config, .gitignore, and deployment scripts.
2026-04-22 01:01:42 +02:00

3.7 KiB

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:

# 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="<obtén de https://panel.thax.es>"

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: MonitoringLogs
  • Verifica que el puerto 3000 es accesible

IDs clave

# 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