Tutorial Self-Hosting
Exponha um servidor local com Cloudflare Tunnel

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

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.