Voltar as noticias
Downtime é uma Oportunidade: Domínios Personalizados, Cloudflare e MCP
MCP ProtocolMediaEN

Downtime é uma Oportunidade: Domínios Personalizados, Cloudflare e MCP

Dev.to - MCP·8 de maio de 2026

Você sabe como é no desenvolvimento de IA — às vezes você fica preso assistindo as barras de progresso avançarem lentamente. Eu estive me preparando para a próxima edição da série Local Model Showdown, e isso significa baixar alguns modelos pesados. O Kimi K2.6 decidiu levar seu tempo. Estamos falando de horas.

Mas aqui está a questão: o tempo de inatividade é realmente apenas uma oportunidade disfarçada. Em vez de assistir as porcentagens subirem, eu eliminei três itens da lista de pendências que estavam me incomodando há uma semana. Tudo feito de forma conversacional através de Coder Agents, naturalmente.

A lista de tarefas:

  1. Colocar minha instância do Coder auto-hospedada atrás de um domínio real
  2. Fortalecer a configuração do Cloudflare (e descobrir uma armadilha que todo criador de conteúdo precisa saber)
  3. Conectar servidores MCP para dar superpoderes aos meus agentes

O Objetivo: coder.vibescoder.dev

Minha instância do Coder estava rodando na minha estação de trabalho Ubuntu em casa, acessível através de uma URL de túnel try.coder.app — funcional, mas feia, difícil de lembrar e não exatamente alinhada à marca. Eu comprei vibescoder.dev para o blog. Hora de usar coder.vibescoder.dev para o ambiente de desenvolvimento.

Parece simples. Não era.

Tentativa 1: Registros CNAME (A Abordagem Ingênua)

A primeira ação foi direta — adicionar registros CNAME na gestão de DNS do Vercel (já que comprei o domínio através do Vercel) apontando o subdomínio coder para a URL do túnel existente.

Armadilha #1: O formulário de DNS do Vercel tem como padrão o tipo de registro "A" (que espera um endereço IPv4). Passei um minuto confuso com o erro "o valor deve corresponder ao formato ipv4" antes de perceber que precisava mudar o dropdown de Tipo para "CNAME." Pequena coisa, mas vai te atrapalhar se você não estiver prestando atenção nos padrões do formulário.

Formulário de DNS do Vercel mostrando

O formulário de DNS do Vercel tem como padrão um registro A — mude o tipo para CNAME ou você receberá este erro pouco útil.

Então fui atualizar a URL de Acesso no painel do Coder. Implantação → Geral → URL de Acesso. Está bem ali na tela... e é somente leitura. A interface mostra o valor, mas não pode mudá-lo. Os badges embaixo contam a história: CLI --access-url, ENV CODER_ACCESS_URL, YAML accessURL. Configuração do servidor apenas.

Como o Coder roda via systemd na minha casa, a configuração está em /etc/coder.d/coder.env. Mas antes que eu pudesse atualizá-la, precisava resolver o problema maior: fazer o tráfego da internet chegar até minha máquina.

Tentativa 2: Encaminhamento de Porta (O Desvio Frustrante)

Para que uma abordagem baseada em CNAME funcione, meu homelab precisa ser acessível da internet nas portas 80 e 443. Isso significa encaminhamento de porta no roteador — um TP-Link Archer BE800.

O aplicativo do roteador não expõe o encaminhamento de porta. O aplicativo Tether para iPhone tem um menu "Mais" com várias configurações, mas o Encaminhamento NAT não está lá. Tive que usar a interface web em 192.168.0.1 em vez disso. Encontrei isso em Avançado → Encaminhamento NAT → Encaminhamento de Porta.

Configurei as regras: portas 80 e 443, TCP, encaminhadas para o IP interno da minha máquina (192.168.0.243). Então testei com um simples servidor HTTP em Python:

sudo python3 -c "from http.server import HTTPServer, SimpleHTTPRequestHandler; HTTPServer(('0.0.0.0', 443), SimpleHTTPRequestHandler).handle_request()"

O curl local funcionou. Solicitações externas para meu IP público? "Conexão recusada." Não um tempo limite — recusada. Tentei portas não padrão também. Mesmo resultado.

A diagnose: "Conexão recusada" de fora enquanto "funciona localmente" significa que o tráfego está chegando ao IP público, mas está sendo ativamente rejeitado antes de atingir a máquina. O ISP provavelmente está bloqueando conexões de entrada ou há uma camada NAT além do roteador. Um tempo limite significaria que os pacotes estão sendo descartados. Recusada significa que algo está dizendo "não."

Gastei mais tempo nisso do que gostaria de admitir. Hora do Plano B.

A Solução: Túnel Cloudflare

O Túnel Cloudflare inverte completamente o modelo. Em vez de abrir portas de entrada, ele cria uma conexão de saída da sua máquina para a borda do Cloudflare. Sem encaminhamento de porta. Sem configuração de roteador. Sem exposição de IP público. E é grátis.

Passo 1: Mover Servidores de Nomes

Como eu precisava que o Cloudflare gerenciasse o DNS para vibescoder.dev, eu:

  1. Criei uma conta gratuita no Cloudflare
  2. Adicionei vibescoder.dev como um site
  3. Deixei ele importar automaticamente meus registros DNS existentes (registros A do Vercel, registros CAA, tudo)
  4. Selecionei o plano gratuito
  5. Atualizei os servidores de nomes no Vercel (o registrador) para apontar para os servidores de nomes do Cloudflare

O blog continua funcionando — o Cloudflare importou todos os registros existentes, então vibescoder.dev ainda direciona para os servidores do Vercel.

Página de configuração de DNS do Cloudflare mostrando

O Cloudflare importa automaticamente seus registros DNS existentes — o blog continua funcionando enquanto você configura o túnel.

Passo 2: Criar o Túnel

No computador do homelab:

curl -L --output cloudflared.deb https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb
sudo dpkg -i cloudflared.deb
cloudflared tunnel login
cloudflared tunnel create coder-tunnel

Página de sucesso da instalação do certificado Cloudflared

Após cloudflared tunnel login, o navegador confirma que o certificado está instalado e você está autorizado.

Arquivo de configuração em ~/.cloudflared/config.yml:

tunnel: a1b2c3d4-e5f6-7890-abcd-ef1234567890
credentials-file: /home/youruser/.cloudflared/a1b2c3d4-e5f6-7890-abcd-ef1234567890.json

ingress:
  - hostname: coder.vibescoder.dev
    service: http://localhost:3000
  - hostname: "*.coder.vibescoder.dev"
    service: http://localhost:3000
  - service: http_status:404

A entrada wildcard lida com o proxy da aplicação do Coder — encaminhamento de porta, terminais web e aplicativos de espaço de trabalho usam todos subdomínios como 8080--main--ws--user--coder.vibescoder.dev.

Passo 3: Conectar DNS e Coder

Contexto Triplo Up

Empresas brasileiras podem se beneficiar ao entender como gerenciar suas infraestruturas de TI de forma mais eficiente. O uso de soluções como Cloudflare pode melhorar a segurança e a acessibilidade de serviços online. Além disso, a integração com protocolos MCP pode otimizar o desempenho de aplicações baseadas em IA.

Noticias relacionadas

Gostou do conteudo?

Receba toda semana as principais novidades sobre WebMCP.