Files
sbsports/COOLIFY.md
alexandrump 898d021ae8
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
feat: add authentication system (login, users, auth middleware)
- server/auth.js: JWT middleware and auth routes
- src/stores/auth.js + useAuthFetch.js: client-side auth state
- src/views/LoginView.vue + UsersView.vue: login and user management UI
- router, sidebar, App.vue: guard routes behind auth
- COOLIFY.md: add real deployment IDs
2026-04-22 01:22:05 +02:00

135 lines
3.7 KiB
Markdown

# 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="<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: **Monitoring****Logs**
- Verifica que el puerto 3000 es accesible
## IDs clave
```bash
# Coolify application UUID
SBSPORTS_COOLIFY_UUID="ng00g8sskks0ok0okk0cg8kw"
# Coolify project UUID
SBSPORTS_PROJECT_UUID="cwo848sgwgk0gk8kgkwkoskg"
# Gitea repo ID
GITEA_REPO_ID=39
# Woodpecker repo ID
WP_REPO_ID=5
```
## 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