Refactor: Use Gitea Secrets for fully automated deployment
All checks were successful
deploy-tunnel / deploy (push) Successful in 4s

- Workflow ahora crea .env y credentials.json desde secrets
- Eliminado setup-ci.sh (ya no es necesario)
- No requiere setup manual en el servidor
- Workflow verifica/crea la red Docker 'principal'
- README actualizado con instrucciones de configuración de secrets

Configuración requerida en Gitea Settings > Secrets:
- TUNNEL_ID: El ID del tunnel de Cloudflare
- TUNNEL_CREDENTIALS: El contenido completo de credentials.json
This commit is contained in:
2025-10-05 02:26:11 -06:00
parent 2b0f9ec49d
commit da93f352d9
3 changed files with 68 additions and 80 deletions

View File

@@ -150,44 +150,63 @@ El contenedor se conecta a la red `principal` para poder comunicarse con Traefik
Este repositorio incluye un workflow de Gitea Actions (`.gitea/workflows/deploy.yml`) que automáticamente despliega el tunnel cuando haces push a `main`.
**¿Qué hace el workflow?**
1. Ejecuta `setup-ci.sh` para verificar que existan `credentials.json` y `.env`
2. Descarga la última imagen de `cloudflare/cloudflared`
3. Detiene el stack actual
4. Levanta el stack actualizado
5. Muestra los logs del tunnel
1. Crea `.env` y `credentials.json` desde Gitea Secrets
2. Verifica que la red Docker `principal` exista (la crea si no)
3. Descarga la última imagen de `cloudflare/cloudflared`
4. Detiene el stack actual
5. Levanta el stack actualizado
6. Muestra los logs del tunnel
### Setup inicial para CI/CD
### Configurar Secrets en Gitea
**Primera vez en el servidor donde corre el gitea-runner:**
**Paso 1: Crear el tunnel y obtener las credenciales**
En tu PC local (o donde prefieras):
```bash
# 1. El runner clonará el repo automáticamente en su workspace
# 2. SSH al servidor y navega al workspace del runner
cd /ruta/donde/runner/clona/el/repo
# Clonar el repo
git clone https://gitea.nucleoriofrio.com/nucleo000/cloudflareTunnel.git
cd cloudflareTunnel
# 3. Ejecuta setup.sh UNA SOLA VEZ (requiere login interactivo)
# Ejecutar setup para crear el tunnel
./setup.sh
```
El script creará `credentials.json` y `.env` que **persisten** en el workspace del runner entre ejecuciones.
Esto genera:
- `credentials.json` - Contiene las credenciales del tunnel
- `.env` - Contiene el TUNNEL_ID
**De ahí en adelante:**
- Cada `git push` ejecuta el workflow automáticamente
- `setup-ci.sh` verifica que los archivos existan
- Si existen, continúa con el deploy
- Si no existen, el workflow falla con instrucciones
### (Opcional) Variables de entorno en Gitea Secrets
Puedes configurar secrets en Gitea para el workflow (aunque actualmente no son necesarios con el enfoque de setup manual):
**Paso 2: Configurar los secrets en Gitea**
Ve a tu repositorio en Gitea:
```
Settings > Secrets > Actions:
- CLOUDFLARE_ACCOUNT_ID: tu-account-id
- CLOUDFLARE_API_TOKEN: tu-api-token
Settings > Secrets > Actions
```
**Nota**: `credentials.json` y `.env` se generan localmente y NO se commitean al repo (están en `.gitignore`), por seguridad.
Agrega estos **2 secrets**:
1. **`TUNNEL_ID`** (tipo: Secret)
```bash
# Obtén el valor de .env
cat .env
# Copia el valor después de TUNNEL_ID=
```
2. **`TUNNEL_CREDENTIALS`** (tipo: Secret)
```bash
# Copia TODO el contenido de credentials.json
cat credentials.json
# Debe ser un JSON válido que empiece con { y termine con }
```
**Paso 3: ¡Listo!**
Ahora cada `git push` a `main` desplegará automáticamente el tunnel usando los secrets configurados.
**Importante:**
- No necesitas ejecutar nada manualmente en el servidor
- Los secrets están seguros en Gitea
- `credentials.json` y `.env` NUNCA se commitean al repo (están en `.gitignore`)
## ✅ Verificación