Cloudflare Tunnel¶
Túnel saliente que expone servicios web sin abrir puertos en el router.
Arquitectura¶
graph LR
User[Usuario] --> CF[Cloudflare Edge]
CF --> T[cloudflared]
T --> NPM[NPM :80/:443]
El contenedor cloudflared mantiene una conexión saliente persistente hacia Cloudflare. El tráfico entrante viaja por ese túnel hasta NPM.
Configuración¶
| Campo | Valor |
|---|---|
| Contenedor | cloudflared |
| Imagen | cloudflare/cloudflared:latest |
| Compose | infra/docker-compose.infra.yml |
| Token | Variable CLOUDFLARE_TOKEN en .env |
| Dependencia | nginx-proxy-manager (debe estar arriba primero) |
command: tunnel --no-autoupdate run --token ${CLOUDFLARE_TOKEN}
Flujo¶
- Crear túnel en el dashboard de Cloudflare Zero Trust.
- Copiar el token al
.envdel host. - Configurar rutas del túnel apuntando a
http://nginx-proxy-manager:80(o la IP del host). - NPM enruta cada dominio al contenedor destino.
Operaciones¶
# Ver logs del túnel
docker compose logs -f cloudflared
# Reiniciar
docker compose restart cloudflared