From 8351ee1e863f6c87e3eb341509df85e40e2d3217 Mon Sep 17 00:00:00 2001 From: josedario87 Date: Sun, 5 Oct 2025 02:19:11 -0600 Subject: [PATCH] Add Gitea Actions workflow for auto-deploy --- .gitea/workflows/deploy.yml | 43 +++++++++++++++++++++++++++++++++++++ README.md | 29 ++++++++++++++++++++++--- 2 files changed, 69 insertions(+), 3 deletions(-) create mode 100644 .gitea/workflows/deploy.yml diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml new file mode 100644 index 0000000..ce05622 --- /dev/null +++ b/.gitea/workflows/deploy.yml @@ -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/.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 diff --git a/README.md b/README.md index ae288d3..5b57306 100644 --- a/README.md +++ b/README.md @@ -18,8 +18,9 @@ El wildcard `*.nucleoriofrio.com` apunta todo el tráfico a Traefik, que se enca - Docker y Docker Compose instalados - 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 +- Gitea Runner configurado (para auto-deploy con Gitea Actions) ## 🚀 Setup @@ -118,7 +119,29 @@ Traefik recibe el tráfico y: ### 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/.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 @@ -144,7 +167,7 @@ cat credentials.json ```bash # 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 ```