Add automated setup script for tunnel management
Some checks failed
deploy-tunnel / deploy (push) Failing after 1s
Some checks failed
deploy-tunnel / deploy (push) Failing after 1s
- setup.sh: Script interactivo que verifica/crea el tunnel automáticamente - Detecta si ya existe el tunnel nucleorio-tunnel - Instala cloudflared si no está presente - Genera credentials.json y .env automáticamente - Configura DNS opcionalmente - Actualizado README con instrucciones de setup rápido - Workflow actualizado con mejores mensajes de error
This commit is contained in:
152
README.md
152
README.md
@@ -22,83 +22,107 @@ El wildcard `*.nucleoriofrio.com` apunta todo el tráfico a Traefik, que se enca
|
||||
- Authentik configurado con Forward Auth en Traefik
|
||||
- Gitea Runner configurado (para auto-deploy con Gitea Actions)
|
||||
|
||||
## 🚀 Setup
|
||||
## 🚀 Setup Rápido (Recomendado)
|
||||
|
||||
### 1. Crear el tunnel en Cloudflare
|
||||
### Setup Automático con Script
|
||||
|
||||
En una PC nueva, solo necesitas clonar el repo y ejecutar el script de setup:
|
||||
|
||||
```bash
|
||||
# Login a Cloudflare
|
||||
cloudflared tunnel login
|
||||
# Clonar el repositorio
|
||||
git clone https://gitea.nucleoriofrio.com/nucleo000/cloudflareTunnel.git
|
||||
cd cloudflareTunnel
|
||||
|
||||
# Crear el tunnel (guarda el TUNNEL_ID que te devuelve)
|
||||
cloudflared tunnel create nucleorio-tunnel
|
||||
|
||||
# Esto genera el archivo credentials.json en ~/.cloudflared/
|
||||
# Ejecutar setup (verifica si existe el tunnel, si no lo crea)
|
||||
./setup.sh
|
||||
```
|
||||
|
||||
### 2. Configurar DNS en Cloudflare
|
||||
El script automáticamente:
|
||||
1. ✅ Instala `cloudflared` si no está instalado
|
||||
2. ✅ Te autentica con Cloudflare (abre el navegador)
|
||||
3. ✅ Verifica si ya existe el tunnel `nucleorio-tunnel`
|
||||
4. ✅ Si no existe, lo crea
|
||||
5. ✅ Genera `credentials.json` y `.env`
|
||||
6. ✅ Opcionalmente configura DNS automáticamente
|
||||
|
||||
En el dashboard de Cloudflare, crea un registro CNAME:
|
||||
|
||||
```
|
||||
Type: CNAME
|
||||
Name: *.nucleoriofrio.com (o solo *)
|
||||
Target: <TUNNEL_ID>.cfargotunnel.com
|
||||
Proxy: Activado (nube naranja)
|
||||
```
|
||||
|
||||
Opcionalmente, también para el dominio raíz:
|
||||
|
||||
```
|
||||
Type: CNAME
|
||||
Name: @ (o nucleoriofrio.com)
|
||||
Target: <TUNNEL_ID>.cfargotunnel.com
|
||||
Proxy: Activado
|
||||
```
|
||||
|
||||
### 3. Configurar este repositorio
|
||||
|
||||
```bash
|
||||
# Copiar el archivo de ejemplo
|
||||
cp .env.example .env
|
||||
|
||||
# Editar con tu TUNNEL_ID
|
||||
nano .env
|
||||
```
|
||||
|
||||
Pega tu `TUNNEL_ID` en el archivo `.env`:
|
||||
|
||||
```env
|
||||
TUNNEL_ID=tu-tunnel-id-aqui
|
||||
```
|
||||
|
||||
### 4. Copiar credentials.json
|
||||
|
||||
Copia el archivo de credenciales generado por Cloudflare:
|
||||
|
||||
```bash
|
||||
cp ~/.cloudflared/<TUNNEL_ID>.json ./credentials.json
|
||||
```
|
||||
|
||||
### 5. Levantar el servicio
|
||||
### Levantar el servicio
|
||||
|
||||
```bash
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
### 6. Verificar logs
|
||||
### Verificar logs
|
||||
|
||||
```bash
|
||||
docker-compose logs -f
|
||||
```
|
||||
|
||||
Deberías ver algo como:
|
||||
|
||||
Deberías ver:
|
||||
```
|
||||
INF Connection registered connIndex=0
|
||||
INF Registered tunnel connection
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔧 Setup Manual (Alternativo)
|
||||
|
||||
<details>
|
||||
<summary>Click para expandir instrucciones manuales</summary>
|
||||
|
||||
### 1. Instalar cloudflared
|
||||
|
||||
```bash
|
||||
# Debian/Ubuntu
|
||||
wget -q https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb
|
||||
sudo dpkg -i cloudflared-linux-amd64.deb
|
||||
```
|
||||
|
||||
### 2. Crear/Verificar el tunnel
|
||||
|
||||
```bash
|
||||
# Login a Cloudflare
|
||||
cloudflared tunnel login
|
||||
|
||||
# Listar tunnels existentes
|
||||
cloudflared tunnel list
|
||||
|
||||
# Si no existe, crear uno nuevo
|
||||
cloudflared tunnel create nucleorio-tunnel
|
||||
|
||||
# Copiar credentials
|
||||
cp ~/.cloudflared/<TUNNEL_ID>.json ./credentials.json
|
||||
```
|
||||
|
||||
### 3. Configurar .env
|
||||
|
||||
```bash
|
||||
cp .env.example .env
|
||||
nano .env # Agregar TUNNEL_ID
|
||||
```
|
||||
|
||||
### 4. Configurar DNS
|
||||
|
||||
```bash
|
||||
# Opción A: Automático
|
||||
cloudflared tunnel route dns <TUNNEL_ID> *.nucleoriofrio.com
|
||||
cloudflared tunnel route dns <TUNNEL_ID> nucleoriofrio.com
|
||||
|
||||
# Opción B: Manual en dashboard de Cloudflare
|
||||
# Crea registros CNAME:
|
||||
# - Name: *
|
||||
# Target: <TUNNEL_ID>.cfargotunnel.com
|
||||
# Proxy: ON
|
||||
```
|
||||
|
||||
### 5. Levantar servicio
|
||||
|
||||
```bash
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 🔧 Configuración
|
||||
|
||||
### config.yml
|
||||
@@ -132,16 +156,20 @@ Este repositorio incluye un workflow de Gitea Actions (`.gitea/workflows/deploy.
|
||||
4. Levanta el stack actualizado
|
||||
5. Muestra los logs del tunnel
|
||||
|
||||
**Importante antes del primer deploy:**
|
||||
**Setup inicial en el servidor:**
|
||||
|
||||
En el servidor donde corre el gitea-runner, ejecuta el setup una sola vez:
|
||||
|
||||
```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
|
||||
# El gitea-runner clonará el repo automáticamente
|
||||
# Solo necesitas ejecutar setup.sh la primera vez
|
||||
cd /ruta/donde/runner/clona/el/repo
|
||||
./setup.sh
|
||||
```
|
||||
|
||||
Una vez configurado, cada `git push` al repo actualizará automáticamente el tunnel.
|
||||
Una vez configurado, cada `git push` actualizará automáticamente el tunnel.
|
||||
|
||||
**Nota**: `credentials.json` y `.env` se generan localmente y NO se commitean al repo (están en `.gitignore`), por seguridad.
|
||||
|
||||
## ✅ Verificación
|
||||
|
||||
|
||||
Reference in New Issue
Block a user