Pular para o conteúdo principal

Deploy: Cloudflare Pages + Access

Este site é estático (Docusaurus). Publicamos no Cloudflare Pages e protegemos com Cloudflare Access (Zero Trust), permitindo apenas o Google Workspace @appolus.com.br. Nenhuma lógica de autenticação vive no site — o Access fica na frente de tudo.

1. Cloudflare Pages

Conecte o repositório appolustecnologia/docs em Workers & Pages → Create → Pages → Connect to Git e use:

CampoValor
Framework presetNone (ou Docusaurus)
Build commandnpm run build
Build output directorybuild
Root directory/
Variável de ambienteNODE_VERSION = 20

O npm run build roda gen-api antes (gera a referência OpenAPI), então o deploy não depende de arquivos gerados versionados.

Domínio

Em Custom domains, adicione docs.appolus.com.br. Como o DNS da Appolus está na Cloudflare, o registro CNAME é criado automaticamente.

2. Cloudflare Access (login Google restrito)

Em Zero Trust → Access:

a) Identity provider (uma vez por conta)

Settings → Authentication → Login methods → Add new → Google (ou Google Workspace). Configure o OAuth Client ID/Secret no Google Cloud Console (tela de consentimento + credenciais OAuth). Para travar no domínio já no IdP, use o provider Google Workspace informando o domínio appolus.com.br.

b) Application

Access → Applications → Add an application → Self-hosted:

CampoValor
Application nameAppolus Docs
Session durationex.: 24h
Application domaindocs.appolus.com.br

c) Policy

Adicione uma policy Allow com um destes seletores:

  • Emails ending in@appolus.com.br — simples e robusto; ou
  • Login Methods = Google + Email domain = appolus.com.br.

Quem não bater a regra recebe a tela de bloqueio do Access e nunca chega no site.

3. Fluxo final

Usuário → docs.appolus.com.br
→ Cloudflare Access (login Google, valida @appolus.com.br)
→ Cloudflare Pages (site estático)

Notas

  • Custo: Cloudflare Access é gratuito até 50 usuários.
  • Preview deployments: o Access protege o domínio de produção. Se quiser proteger também as URLs *.pages.dev de preview, inclua-as no application domain (ou use uma policy adicional).
  • Sem segredos no site: chaves de API (ex.: a da Athena Query API) não ficam no Docusaurus — a doc só mostra o header a preencher.