Este projeto resolve problemas de CORS ao fazer requisições para APIs externas a partir de uma página estática hospedada no GitHub Pages, usando um Cloudflare Worker como proxy.
- ✅ Proxy CORS completo com Cloudflare Workers
- ✅ Deploy automático via GitHub Actions
- ✅ Suporte a todos os métodos HTTP (GET, POST, PUT, DELETE, etc.)
- ✅ Configuração de token de API via secrets
- ✅ Interface de teste incluída
- ✅ Ambientes de desenvolvimento e produção
GitHub Pages (index.html)
↓ fetch(/api/*)
Cloudflare Worker (CORS Proxy)
↓ proxy para
API Externa (https://dev.ipes.tech)
Vá para Settings → Secrets and variables → Actions e adicione:
CLOUDFLARE_API_TOKEN: Token da API do CloudflareCLOUDFLARE_ACCOUNT_ID: ID da sua conta Cloudflare
-
Cloudflare API Token:
- Acesse: https://dash.cloudflare.com/profile/api-tokens
- Clique em "Create Token"
- Use o template "Edit Cloudflare Workers"
- Ou crie um custom token com permissões:
- Zone:Zone Settings:Read
- Zone:Zone:Read
- Account:Cloudflare Workers:Edit
-
Account ID:
- No dashboard do Cloudflare, lado direito da tela
- Seção "API" → Account ID
- Vá para Settings → Pages
- Source: "Deploy from a branch"
- Branch:
main// (root) - Save
O deploy é automático a cada push na branch main. Verifique o progresso na aba Actions.
IMPORTANTE: Após o primeiro deploy, você precisa configurar a URL correta do worker no index.html.
-
Encontre seu Account ID:
- Vá para o Cloudflare Dashboard
- No lado direito, seção "API" → copie o Account ID
-
Edite o arquivo
index.html(linhas 119-120):// Substitua SUA_CONTA_ID pelo seu Account ID real: baseUrl = 'https://cors-proxy.SUA_CONTA_ID.workers.dev';
-
Ou use a URL custom domain (se configurou):
baseUrl = 'https://cors-proxy.workers.dev';
Edite o arquivo worker/index.js:
// Linha 6: Altere para sua API
const API_BASE_URL = 'https://sua-api.com';Se sua API requer autenticação:
# Configurar token via Wrangler CLI
npx wrangler secret put API_TOKEN
# Ou via GitHub Actions (recomendado)
# Adicione API_TOKEN nos secrets do GitHub# Instalar dependências
npm install
# Rodar worker em desenvolvimento
npm run dev
# Abrir index.html no navegador
# O JavaScript detectará automaticamente o ambiente local- Acesse sua página do GitHub Pages:
https://seu-usuario.github.io/cors-proxy-project - Clique nos botões de teste
- Verifique o console do navegador para logs detalhados
O worker intercepta requisições para /api/* e as redireciona para a API externa:
GET /api/test→GET https://dev.ipes.tech/testPOST /api/users→POST https://dev.ipes.tech/users- etc.
npm run dev # Desenvolvimento local
npm run deploy # Deploy para produção
npm run deploy:dev # Deploy para desenvolvimento
npm run tail # Ver logs em tempo real- Verifique os secrets no GitHub
- Confirme se o deploy foi executado com sucesso na aba Actions
- Verifique logs no Cloudflare Dashboard → Workers & Pages
- Confirme se a requisição está indo para
/api/* - Verifique se o worker está recebendo a requisição
- Use
npm run tailpara ver logs em tempo real
- Confirme se o GitHub Pages está habilitado
- Aguarde alguns minutos após o primeiro deploy
- Verifique se o arquivo index.html está na raiz
MIT License - veja o arquivo LICENSE para detalhes.