Exponha um servidor local com o Cloudflare Tunnel
Expor seu servidor local à internet sem lidar com redirecionamento de portas ou endereços IP estáticos é simples usando o Cloudflare Tunnels. Este guia orienta você na configuração de um túnel via Docker para direcionar o tráfego para sua infraestrutura local.
Para seguir este tutorial, você precisa de um servidor Linux local com o Docker instalado e seu domínio gerenciado no Cloudflare.
Autentique-se no Cloudflare
Primeiro, faça login na sua conta do Cloudflare e autorize seu domínio a partir do seu terminal usando a interface de linha de comando:
docker run -it --rm --user root -v cloudflared-auth:/root/.cloudflared cloudflare/cloudflared:latest tunnel login
Crie o túnel e o registro DNS
Em seguida, crie um túnel. Substitua <tunnel_name> por qualquer identificador de sua preferência:
docker run -it --rm --user root -v cloudflared-auth:/root/.cloudflared cloudflare/cloudflared:latest tunnel create <tunnel_name>
Este comando cria um registro DNS automaticamente, portanto, certifique-se de que o registro ainda não exista no seu painel do Cloudflare:
docker run -it --rm --user root -v cloudflared-auth:/root/.cloudflared cloudflare/cloudflared:latest tunnel route dns <tunnel_name> <domain>
Configure a rede e a configuração do Docker
Crie a rede externa compartilhada que conecta o túnel às suas aplicações:
docker network create ingress
mkdir -p /srv/core-and-shared/cloudflared/
cd /srv/core-and-shared/cloudflared/
Defina o serviço Docker Compose para o túnel criando /srv/core-and-shared/cloudflared/compose.yaml com a seguinte configuração:
services:
cloudflared:
image: cloudflare/cloudflared:latest
container_name: cloudflared
restart: unless-stopped
command: tunnel --no-autoupdate run --token ${TUNNEL_TOKEN} --url http://whoami:80
networks:
- ingress
networks:
ingress:
name: ingress
external: true
Para obter o token do seu túnel, execute este comando para consultar os detalhes da sua conta:
docker run -it --rm --user root -v cloudflared-auth:/root/.cloudflared cloudflare/cloudflared:latest tunnel token <tunnel_name>
Crie um arquivo .env em /srv/core-and-shared/cloudflared/.env para armazenar seu token:
TUNNEL_TOKEN=<tunnel_token>
Execute e teste o túnel
Inicie o túnel do Cloudflare em segundo plano usando o Docker Compose:
docker compose up -d
Para testar a configuração, você pode iniciar um contêiner temporário para verificar o roteamento:
docker run --rm -d --name whoami --network ingress traefik/whoami
curl https://<domain>
Quando terminar os testes, pare o contêiner temporário e ele será removido automaticamente:
docker stop whoami
Use o Caddy como reverse proxy em um servidor local
Aprenda a configurar o Caddy como proxy reverso local usando Docker e Docker Compose, com roteamento automático e integração com o Cloudflare Tunnel.