Domínio Customizado no GitHub Pages #1: Migração com Zero Downtime Usando Porkbun e Cloudflare DNS (CNAME Flattening & Universal SSL)
Manter um blog no GitHub Pages sob usuario.github.io/projeto é econômico e rápido: basta commitar markdown, dar git push e a página é entregue globalmente.
Porém, ao buscar uma presença profissional e monetização com anúncios, você encontra uma barreira intransponível: o Google AdSense veta totalmente subdomínios gratuitos como *.github.io. Além disso, toda autoridade de domínio construída fica atrelada ao GitHub em vez da sua marca pessoal.
Neste primeiro episódio da nossa série de infraestrutura, demonstramos a migração exata de jbjihwan.github.io/global_blog para https://globaldevlog.com através de uma arquitetura resiliente combinando Porkbun + Cloudflare + GitHub Pages.
1. Configuração Prática Passo a Passo
Passo 1: Delegação de Nameservers no Porkbun
No painel do Porkbun, substitua os nameservers padrão pelos servidores Anycast fornecidos pela Cloudflare:
curt.ns.cloudflare.comroxy.ns.cloudflare.com
Passo 2: Configuração de Registros de DNS na Cloudflare (CNAME Flattening)
Crie dois registros essenciais:
- Tipo:
CNAME| Nome:@(Apex) | Destino:jbjihwan.github.io| Proxy: Ativado (Nuvem Laranja) - Tipo:
CNAME| Nome:www| Destino:jbjihwan.github.io| Proxy: Ativado
Passo 3: Prevenção do Bug de Reset de CNAME no Docusaurus
O GitHub Pages precisa de um arquivo CNAME na raiz da branch de deploy. Ao rodar npm run deploy, o Docusaurus pode recriar a branch e apagar esse arquivo. Para evitar isso permanentemente, crie o arquivo em static/CNAME:
globaldevlog.com
Assim, a cada build, o Docusaurus copia automaticamente o domínio para a raiz de publicação.
2. Criptografia SSL/TLS: O Modo Full (Strict)
No painel SSL/TLS da Cloudflare, selecione o modo Full ou Full (Strict). Como o GitHub Pages emite certificados Let's Encrypt automáticos para domínios customizados, a conexão entre os nós de borda da Cloudflare e os servidores de origem do GitHub Pages permanece criptografada de ponta a ponta.
📌 Resumo Executivo para Gestão (3–5 Linhas)
- Separação de Responsabilidades: Porkbun gerencia o registro, Cloudflare cuida do DNS e borda, e GitHub Pages hospeda os arquivos estáticos.
- CNAME Flattening: Roteamento direto do domínio raiz sem amarras a endereços IP estáticos.
- Blindagem do CNAME no Docusaurus: Guarde o arquivo
CNAMEna pastastatic/para prevenir deleções acidentais em novos deploys. - HTTPS Ininterrupto: Utilize o modo Cloudflare SSL Full para segurança criptográfica contínua.
