Skip to content

Infra: transferir Vercel, Supabase e domínio da conta pessoal para a HashLoad #4

Description

@isaquepinheiro

Contexto

O portal (pubpascal-dev) e os apps nativos (pubpascal-app) acabaram de ser
importados para a organização HashLoad. O código já está sob a HashLoad,
mas toda a infraestrutura que mantém o site no ar continua em contas
pessoais
(conta do Isaque). Enquanto isso não mudar, a HashLoad é dona do
repositório mas não do ambiente de produção — cobrança, acesso, chaves e
suporte seguem atrelados a uma pessoa física.

Esta issue é o pedido formal para transferir essas contas/projetos para a
organização. Não é urgente e não deve ser feita agora — é uma tarefa de
pós-handover, para ser executada em janela combinada, porque envolve
troca de credenciais e risco de indisponibilidade.

Inventário — o que hoje está em nome pessoal

Serviço Para que serve no portal Ação
Vercel (projeto que serve pubpascal.dev) build e hospedagem do Next.js, variáveis de ambiente de produção, Analytics transferir o projeto para uma Team da HashLoad
Supabase (projeto do portal) Postgres (pacotes, publishers, workspaces), Auth, RLS, Storage transferir o projeto para uma Organization da HashLoad
Cloudflare (zona pubpascal.dev) DNS apontando para a Vercel (registro em nuvem cinza, não laranja) transferir o domínio/zona para conta da HashLoad
Upstash Redis rate limiting das rotas de API (@upstash/ratelimit) recriar/transferir o banco e rotar o token
Asaas gateway de pagamento (patrocínios/checkout) conta precisa ser da pessoa jurídica que emite as cobranças
Cloudflare Turnstile anti-bot dos formulários recriar as chaves sob a conta da HashLoad
GitHub OAuth App login com GitHub e o fluxo de contribuição (fork/PR) recriar como OAuth App da organização e atualizar o callback

Variáveis/segredos que precisam ser reemitidos ou reapontados

Sem valores aqui — a lista serve de checklist na hora da migração.

  • Vercel (Environment Variables): NEXT_PUBLIC_SUPABASE_URL, NEXT_PUBLIC_SUPABASE_ANON_KEY,
    SUPABASE_SERVICE_ROLE_KEY, NEXT_PUBLIC_SITE_URL, UPSTASH_REDIS_REST_URL,
    UPSTASH_REDIS_REST_TOKEN, ASAAS_API_KEY, ASAAS_BASE_URL, ASAAS_WEBHOOK_SECRET,
    NEXT_PUBLIC_TURNSTILE_SITE_KEY, TURNSTILE_SECRET_KEY,
    NEXT_PUBLIC_GITHUB_AUTH_ENABLED, PUBLISH_VALIDATION_ENFORCE
  • GitHub Actions (secrets do repositório, usados pela esteira e pelo job de expiração de patrocínio):
    SUPABASE_URL, SUPABASE_SERVICE_ROLE_KEY
  • Webhook do Asaas: reapontar a URL de callback depois que o projeto mudar de dono
  • Supabase Auth: revisar as Redirect URLs e o provider do GitHub após recriar o OAuth App

Checklist da migração

  • Criar Team na Vercel e Organization no Supabase sob a HashLoad
  • Transferir o projeto Supabase (confirmar que a transferência preserva dados, RLS e migrations)
  • Transferir o projeto Vercel e reconfigurar o domínio pubpascal.dev no projeto (lição já registrada: domínio precisa estar no projeto e a nuvem no Cloudflare precisa ficar cinza — laranja dá erro 525)
  • Transferir a zona DNS no Cloudflare
  • Recriar Upstash, Turnstile e o OAuth App do GitHub sob a organização; rotar tokens
  • Migrar a conta Asaas para a pessoa jurídica e reapontar o webhook
  • Republicar as variáveis na Vercel e os secrets do repositório
  • Rotar todas as chaves antigas que ficaram na conta pessoal
  • Deploy de verificação + smoke test: home, busca, detalhe de pacote, login, publish, download de SBOM

Riscos

  • A troca de domínio/DNS pode causar indisponibilidade curta — fazer em janela combinada.
  • Chaves antigas continuam válidas até serem rotadas; rotar é parte da entrega, não um extra.
  • O login com GitHub quebra no momento em que o OAuth App mudar, até o callback ser atualizado.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions