Add Gitea Actions workflow for auto-deploy
Some checks failed
deploy-tunnel / deploy (push) Failing after 2s
Some checks failed
deploy-tunnel / deploy (push) Failing after 2s
This commit is contained in:
43
.gitea/workflows/deploy.yml
Normal file
43
.gitea/workflows/deploy.yml
Normal 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
|
||||
29
README.md
29
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/<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
|
||||
|
||||
@@ -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
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user