Site estático servido em daeese.me via GitHub Pages, com a Cloudflare na
frente (proxy + rota /api/*).
| Caminho | O que é |
|---|---|
index.html |
Página inicial — perfil, links, projetos e o "Now Playing" do Spotify via Lanyard. |
cornwallcore/ |
Showcase do bot ccore - 'chavinhoCORE' (12° Regimento de Infantaria "Chaves"). |
cornwallcore/status/ |
Página pública de estado do bot: uptime, latência, servidores e membros, lidos de GET /api/status. Sem dados da máquina. |
cornwallcore/termsofservice/, cornwallcore/privacypolicy/ |
Termos de Serviço e Política de Privacidade vigentes do app no Discord. |
cornwallcore/administration/dashboard/ |
Painel administrativo do bot, em abas (Moderação, Auditoria, Comunicações, Alistamento, Logs). Fala com a API do bot em /api/*. Acesso restrito — noindex. |
cornwallcore/administration/spreadsheetviewer/ |
Leitor da planilha regimental (Google Sheets via gviz). noindex — veja o aviso abaixo. |
cornwallcore/fun/ |
Sollarety: página do bot, convite por OAuth2 e as políticas dele. |
gabfirmino/ |
"Meias UwU" — página de estudo em HTML/CSS. |
cloudflare/ |
Os três Workers (proxy da API, roteador de subdomínios e OAuth do Sollarety), o script de deploy e o guia de setup do tunnel. |
filearchive/ |
Imagens usadas pelas páginas. |
- Proxy da API via Cloudflare Worker + Tunnel: cloudflare/CLOUDFLARE_API_PROXY_SETUP.md
- Tunnel, serviço do bot e pendências de configuração fora do repositório: INFRA.md
A API do bot é servida em daeese.me/api/* por um Worker da Cloudflare, que encaminha para
api.daeese.me através de um tunnel cloudflared rodando na máquina do bot. Tanto o tunnel
(cloudflared.service) quanto o bot (ccore-bot.service, serviço de usuário) sobem no boot.
O visualizador lê a planilha regimental direto do Google Sheets, no navegador do visitante. Isso só
funciona porque a planilha está compartilhada como "qualquer pessoa com o link". A página está
marcada com noindex, mas quem tiver a URL continua conseguindo ver os dados. (O
robots.txt da raiz não tem Disallow para esse caminho: ele foi retirado de propósito,
porque /cornwallcore/* hoje responde 301 para os subdomínios e um Disallow impediria os
buscadores de enxergarem o redirecionamento. A garantia de não-indexação é a meta noindex da
própria página, mais o X-Robots-Tag que o daeese-site-router aplica no host.)
O botão que apontava para o viewer saiu da home pública do ccore justamente por isso. Se o roster passar a ser considerado sensível, o caminho é restringir o
compartilhamento no Google e servir os dados pelo /api autenticado, como o dashboard já faz.
python3 -m http.server 8080
# http://localhost:8080O dashboard detecta localhost e usa http://127.0.0.1:5056 como API por padrão; em produção usa
/api. A página de status segue o mesmo critério.
cornwallcore/administration/dashboard/stamp-assets.pyO GitHub Pages serve o HTML com max-age=600 e os assets com max-age=14400. Sem isso o
navegador pega o HTML novo e segura o style.css antigo por até quatro horas — e HTML novo com
CSS velho não é "um pouco desatualizado", é uma página quebrada, porque as classes novas não
existem na folha antiga. O script carimba o hash do conteúdo na URL
(style.css?v=abc12345), então o par nunca fica descasado. Rode antes de commitar.
Os três Workers em cloudflare/ não sobem pelo GitHub Pages. Quem os publica é
cloudflare/deploy-workers.sh, rodado no boot pelo serviço de
usuário ccore-workers-deploy.service — ele compara o hash do fonte com o da última publicação e
só chama o wrangler deploy quando algo mudou. Para publicar na hora:
cloudflare/deploy-workers.sh # so o que mudou
cloudflare/deploy-workers.sh --force # tudo, ignorando o carimboA allowlist de CORS do proxy da API (cloudflare/api-proxy-worker/src/worker.js) precisa conter
toda origem que chame /api/* — hoje dashboard.daeese.me, ccore.daeese.me e daeese.me.