Add Gitea Actions workflow for auto-deploy
Some checks failed
deploy-tunnel / deploy (push) Failing after 2s

This commit is contained in:
2025-10-05 02:19:11 -06:00
parent dcf0fe56eb
commit 8351ee1e86
2 changed files with 69 additions and 3 deletions

View File

@@ -0,0 +1,43 @@
name: deploy-tunnel
on:
push:
branches: [ main ]
jobs:
#───────────────── deploy ─────────────────
deploy:
runs-on: docker
steps:
- uses: actions/checkout@v3
- name: Verify credentials.json exists
run: |
if [ ! -f credentials.json ]; then
echo "⚠️ credentials.json not found!"
echo " Make sure to copy it to the repo root before deploying"
echo " cp ~/.cloudflared/<TUNNEL_ID>.json ./credentials.json"
exit 1
fi
echo "✓ credentials.json found"
- name: Verify .env exists
run: |
if [ ! -f .env ]; then
echo "⚠️ .env file not found!"
echo " Copy .env.example to .env and configure TUNNEL_ID"
exit 1
fi
echo "✓ .env file found"
- name: Pull fresh cloudflared image
run: docker compose pull
- name: Clean up stack
run: docker compose --project-name cloudflared-tunnel down
- name: Update stack
run: docker compose --project-name cloudflared-tunnel up -d --remove-orphans --wait
- name: Show tunnel status
run: docker compose --project-name cloudflared-tunnel logs --tail=50

View File

@@ -18,8 +18,9 @@ El wildcard `*.nucleoriofrio.com` apunta todo el tráfico a Traefik, que se enca
- Docker y Docker Compose instalados - Docker y Docker Compose instalados
- Cuenta de Cloudflare con dominio configurado - Cuenta de Cloudflare con dominio configurado
- Traefik corriendo en la red `traefik_network` - Traefik corriendo en la red `principal`
- Authentik configurado con Forward Auth en Traefik - Authentik configurado con Forward Auth en Traefik
- Gitea Runner configurado (para auto-deploy con Gitea Actions)
## 🚀 Setup ## 🚀 Setup
@@ -118,7 +119,29 @@ Traefik recibe el tráfico y:
### docker-compose.yml ### docker-compose.yml
El contenedor se conecta a la red `traefik_network` para poder comunicarse con Traefik. El contenedor se conecta a la red `principal` para poder comunicarse con Traefik.
## 🚀 Auto-deploy con Gitea Actions
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. Verifica 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
**Importante antes del primer deploy:**
```bash
# En el servidor donde corre el gitea-runner, copia los archivos necesarios
cd /ruta/donde/clona/el/runner
cp ~/.cloudflared/<TUNNEL_ID>.json ./credentials.json
cp .env.example .env
nano .env # Configura TUNNEL_ID
```
Una vez configurado, cada `git push` al repo actualizará automáticamente el tunnel.
## ✅ Verificación ## ✅ Verificación
@@ -144,7 +167,7 @@ cat credentials.json
```bash ```bash
# Verificar que el contenedor está en la red correcta # Verificar que el contenedor está en la red correcta
docker network inspect traefik_network docker network inspect principal
# Debería aparecer 'cloudflared-tunnel' en la lista # Debería aparecer 'cloudflared-tunnel' en la lista
``` ```