Handoff | Execução Final
Tudo que dependia do meu lado (scaffolds, tagagem, contrato, automação) está pronto. Este documento lista exatamente o que Pedro precisa executar — na ordem — para colocar as 3 wikis no ar. Tempo estimado: ~1h30 (com DNS já propagado).
Status atual
✅ Feito (vault)
- Scaffold Quartz completo (README)
- Contrato de publicação (publish-contract)
- Esquema de frontmatter (audience-scheme)
- Workflow GitHub Actions (wiki.yml)
- Guia de Cloudflare (cloudflare-setup)
- Opções de sync (sync-options)
- Deployment guide completo (deployment-guide)
- 15 arquivos-chave tagados com frontmatter
publish: - Brief executivo do board Q2 criado (brief-board-2026-q2)
bootstrap.shque automatiza Fase 1 inteira
✅ Feito (externo)
- Repo GitHub Anouk-Partners/colliers-costal-wiki criado
- DNS no Cloudflare propagado
🔄 A executar (Pedro)
- Fase 1: rodar
bootstrap.sh(~10 min) - Fase 2: Cloudflare Pages + Access (~45 min)
- Fase 3: rclone + secrets GitHub (~15 min)
- Fase 5: validação final (~15 min)
Checkbox de execução
🔧 1. Rodar bootstrap local (~10 min)
cd "/Users/ppvilla/Library/CloudStorage/GoogleDrive-pedro.villa@anoukpartners.com/Meu Drive/Colliers_Projeto/99-operacao/publish"
bash bootstrap.shO script faz: clone → merge Quartz v4 → copy scaffold → install deps → 3 builds locais → commit.
- Builds passam (3 pastas
public-*geradas) - Validar localmente:
cd ~/workspace/colliers-costal-wiki && npx quartz build --serve --output public-internal - Abrir
http://localhost:8080e navegar - Push manual:
cd ~/workspace/colliers-costal-wiki && git push origin main
Alternativa automática com push: bash bootstrap.sh ~/workspace --push
☁️ 2. Cloudflare Pages (~20 min)
Dashboard Cloudflare → Workers & Pages → Create application → Pages → Direct upload.
Criar 3 projetos com Direct upload (não conectar ao GitHub — o Action faz upload via API):
| Projeto | Nome no Cloudflare |
|---|---|
| 1 | colliers-interno |
| 2 | colliers-cliente |
| 3 | colliers-board |
Após criar cada um:
- Custom domain em cada projeto:
colliers-interno→interno.colliers.wiki.anoukpartners.comcolliers-cliente→cliente.colliers.wiki.anoukpartners.comcolliers-board→board.colliers.wiki.anoukpartners.com
Cloudflare cria CNAMEs automaticamente.
🔐 3. Cloudflare Access (~25 min)
Zero Trust → Settings → Authentication → Login methods → Add new → Google Workspace
- App ID + Secret: criar em
https://console.cloud.google.com(OAuth 2.0 credential para Cloudflare) - Admin email:
pedro.villa@anoukpartners.com - Testar:
https://anoukpartners.cloudflareaccess.com/cdn-cgi/access/login/test
Zero Trust → Access → Groups — criar 2 grupos antes das applications:
-
lista-costal— e-mails do Igor + designados Costal -
lista-board— Ricardo, Bruno, Lucas, Pedro
Zero Trust → Access → Applications → Add self-hosted — criar 3 aplicações:
| Application | Domain | Session | Policy: Allow |
|---|---|---|---|
| Colliers — Interno | interno.colliers.wiki.anoukpartners.com | 24h | Emails ending in: @anoukpartners.com |
| Colliers — Cliente | cliente.colliers.wiki.anoukpartners.com | 12h | @anoukpartners.com OR group lista-costal |
| Colliers — Board | board.colliers.wiki.anoukpartners.com | 2h | group lista-board OR pedro.villa@anoukpartners.com |
🔄 4. Sync Drive → git + secrets GitHub (~15 min)
brew install rclone
rclone config # escolher "n" (new remote), nome: gdrive, type: drive
# autorizar via browser
rclone lsd "gdrive:Colliers_Projeto" # testar acesso (gdrive: já é raiz de "Meu Drive")
cat ~/.config/rclone/rclone.conf # copiar TODO o conteúdoNo repo GitHub → Settings → Secrets and variables → Actions → New repository secret:
-
VAULT_REMOTE_CONFIG= conteúdo completo de~/.config/rclone/rclone.conf -
CLOUDFLARE_API_TOKEN= criar emhttps://dash.cloudflare.com/profile/api-tokens(template “Edit Cloudflare Workers” — permissãoCloudflare Pages: Edit) -
CLOUDFLARE_ACCOUNT_ID= copiar do canto direito do dashboard Cloudflare
🚀 5. Primeiro deploy via CI (~5 min)
Repo GitHub → Actions → Build e deploy das wikis → Run workflow → branch main → Run workflow.
- Job
sync-vaulttermina verde (commit automático emcontent/) - 3 jobs
build-and-deployterminam verde (um por audiência) - Abrir as 3 URLs e logar com e-mail apropriado
✅ 6. Validação final (~10 min)
-
interno.colliers.wiki.anoukpartners.com— acessível com e-mail Anouk; bloqueado para outros -
cliente.colliers.wiki.anoukpartners.com— acessível com Anouk e Igor; bloqueado para outros -
board.colliers.wiki.anoukpartners.com— acessível só paralista-board - Arquivos
memory/,feedback/,scripts/não aparecem em nenhuma wiki -
HOME.mdaparece como home em todas - Links internos funcionam; links cruzados entre audiências degradam graciosamente
- Busca Quartz funcional; grafo e backlinks renderizam
- Registrar em decisoes: “Wiki do projeto no ar — 3 audiências”
Se algo falhar
| Sintoma | Solução rápida |
|---|---|
bootstrap.sh falha em npm install | Verificar Node ≥ 22 (Quartz 4.5+ exige): node -v |
Argumento desconhecido: config | Versão antiga do bootstrap; rebaixar bootstrap.sh (audiência controlada por env var, não por --config) |
quartz build erra em AudienceFilter | Conferir que exports foram adicionados em quartz/plugins/filters/index.ts (o bootstrap faz isso automaticamente) |
CI sync-vault falha | Validar VAULT_REMOTE_CONFIG é o conteúdo completo do .conf, com [gdrive] no topo |
| CI deploy retorna 403 | Conferir permissão do CLOUDFLARE_API_TOKEN (precisa Pages: Edit) |
| Custom domain sem SSL | Aguardar ~5 min após adicionar no Pages — CF emite cert automático |
| SSO Google não carrega | Verificar OAuth credential no Google Cloud Console + domínio autorizado |
Troubleshooting completo: deployment-guide § Troubleshooting.
Manutenção pós-deploy
| Tarefa | Cadência | Owner |
|---|---|---|
| Sync automático Drive → repo | diário 06:00 UTC (cron no workflow) | CI |
| Revisar logs Cloudflare Access | semanal | Pedro |
Tagar novos arquivos com publish: | por gatilho | Pedro / Axios |
Revisar publish-contract | mensal | Pedro |
Atualizar lista-costal / lista-board | por gatilho | Pedro |
| Upgrade Quartz | trimestral | devops Anouk |
Ver também
- Publish — visão geral
- deployment-guide — detalhe técnico de cada fase
- publish-contract — contrato canônico
- audience-scheme — como tagar
- cloudflare-setup — detalhe Cloudflare
- sync-options — alternativas de sync
- bootstrap.sh