Configuración de Cloudflare Tunnel con wildcard *.nucleoriofrio.com que apunta a Traefik para mantener autenticación con Authentik. Componentes: - config.yml: Configuración del tunnel con wildcard - docker-compose.yml: Servicio cloudflared - .env.example: Template para variables de entorno - README.md: Documentación completa de setup - .gitignore: Protección de credenciales
Cloudflare Tunnel → Traefik + Authentik
Configuración de Cloudflare Tunnel para exponer servicios a través de Traefik manteniendo la autenticación de Authentik.
🎯 Arquitectura
Internet → Cloudflare Tunnel → Traefik → Authentik Forward Auth → Apps
El wildcard *.nucleoriofrio.com apunta todo el tráfico a Traefik, que se encarga de:
- Enrutamiento correcto según el hostname
- Autenticación con Authentik
- Certificados SSL/TLS
- Redirecciones HTTP → HTTPS
📋 Requisitos previos
- Docker y Docker Compose instalados
- Cuenta de Cloudflare con dominio configurado
- Traefik corriendo en la red
traefik_network - Authentik configurado con Forward Auth en Traefik
🚀 Setup
1. Crear el tunnel en Cloudflare
# Login a Cloudflare
cloudflared tunnel login
# Crear el tunnel (guarda el TUNNEL_ID que te devuelve)
cloudflared tunnel create nucleorio-tunnel
# Esto genera el archivo credentials.json en ~/.cloudflared/
2. Configurar DNS en Cloudflare
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
# Copiar el archivo de ejemplo
cp .env.example .env
# Editar con tu TUNNEL_ID
nano .env
Pega tu TUNNEL_ID en el archivo .env:
TUNNEL_ID=tu-tunnel-id-aqui
4. Copiar credentials.json
Copia el archivo de credenciales generado por Cloudflare:
cp ~/.cloudflared/<TUNNEL_ID>.json ./credentials.json
5. Levantar el servicio
docker-compose up -d
6. Verificar logs
docker-compose logs -f
Deberías ver algo como:
INF Connection registered connIndex=0
INF Registered tunnel connection
🔧 Configuración
config.yml
El archivo config.yml usa wildcard para capturar todo *.nucleoriofrio.com y redirigirlo a Traefik:
ingress:
- hostname: "*.nucleoriofrio.com"
service: http://traefik:80
Traefik recibe el tráfico y:
- Lee el
Hostheader - Aplica las reglas de enrutamiento
- Ejecuta Authentik Forward Auth si está configurado
- Redirige al servicio correcto
docker-compose.yml
El contenedor se conecta a la red traefik_network para poder comunicarse con Traefik.
✅ Verificación
Prueba acceder a tus servicios:
- https://amigos.nucleoriofrio.com → Debería redirigir a Authentik
- https://wifi.nucleoriofrio.com → Debería redirigir a Authentik
- https://portainer.nucleoriofrio.com → Debería redirigir a Authentik
🐛 Troubleshooting
El tunnel no conecta
# Verificar logs
docker-compose logs -f
# Verificar que credentials.json existe y es válido
cat credentials.json
Traefik no recibe el tráfico
# Verificar que el contenedor está en la red correcta
docker network inspect traefik_network
# Debería aparecer 'cloudflared-tunnel' en la lista
Authentik no intercepta
Verifica que Traefik tiene configurado el middleware de Authentik Forward Auth para tus servicios.
El wildcard no funciona
Asegúrate de que:
- El registro DNS CNAME en Cloudflare está configurado como
*o*.nucleoriofrio.com - El proxy (nube naranja) está activado
- El tunnel está corriendo sin errores
📝 Notas importantes
- No expongas servicios directamente: Todo debe pasar por Traefik para mantener Authentik
- Wildcard DNS: Con
*.nucleoriofrio.comno necesitas reconfigurar el tunnel para nuevos subdominios - Multiple WAN: Cloudflare Tunnel maneja automáticamente las reconexiones si tu conexión se cae
- Credenciales: Nunca commitees
credentials.jsono.enval repositorio
🔐 Seguridad
Este setup mantiene toda la seguridad de Authentik porque:
- El tunnel termina en Traefik, no en las apps
- Traefik aplica Forward Auth antes de permitir acceso
- Las apps nunca están expuestas directamente a Internet