All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
- 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
135 lines
3.7 KiB
Markdown
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
|