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
|
- 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
|
||||||
```
|
```
|
||||||
|
|||||||
Reference in New Issue
Block a user