Covil do Mineiro — Docs

Deploy e produção

O projeto roda na Vercel (deploy automático a cada push na branch de produção). O banco e o storage são o projeto Supabase de produção.

1. Vercel

  • Importe o repositório na Vercel (framework detectado: Next.js).
  • Configure as variáveis de ambiente (seção 3) em Production (e Preview, se quiser previews funcionais).
  • Domínio próprio: aponte atleticacovildomineiro.com.br para a Vercel e defina NEXT_PUBLIC_SITE_URL=https://atleticacovildomineiro.com.br.

2. Migrations em produção

Aplique no SQL Editor do Supabase de produção as migrations de supabase/migrations/ que ainda não foram aplicadas, em ordem cronológica (lista em banco-de-dados.md).

⚠️ Verifique especialmente se estas já estão aplicadas (são recentes e/ou críticas):

  • 20260807120000_security_hardening.sqlsegurança (crítica).
  • 20260803120000_loyalty_pepitas.sql — programa de pepitas.
  • 20260804120000_membership_card.sql, 20260805120000_member_photo.sql, 20260805130000_member_photo_storage.sql — carteirinha e foto.
  • 20260810120000_page_banners.sql — banners por página.

Como conferir rápido: procure a tabela/coluna/função da migration no schema (ex.: existe loyalty_transactions? existe can_admin_section?). Se não existir, aplique.

Ao aplicar uma migration que muda o schema, garanta que src/types/supabase.ts reflete o estado novo.

3. Segredos e variáveis (produção)

Todas as variáveis de setup.md, com os valores de produção. Pontos de atenção:

  • SICOOB_ENV — defina production (o padrão é sandbox).
  • SICOOB_CLIENT_ID — client_id da aplicação no portal developers.sicoob.com.br.
  • SICOOB_PIX_KEY — chave PIX da conta recebedora (é nela que as cobranças caem).
  • SICOOB_CERT_PFX_BASE64 — certificado ICP-Brasil A1 (.pfx em base64) para o mTLS. Obrigatório em produção (o sandbox não usa certificado).
  • SICOOB_CERT_PASSWORD — senha do .pfx. Só produção.
  • SUPABASE_SERVICE_ROLE_KEY — a chave de produção.
  • CARD_SIGNING_SECRET — defina um segredo forte e estável (mudá-lo invalida os códigos de autenticidade das carteirinhas já emitidas).
  • GMAIL_USER / GMAIL_APP_PASSWORD — conta e senha de app para os e-mails.

4. Sicoob (PIX + webhook)

  1. Em produção, gere o certificado ICP-Brasil A1 (.pfx), converta para base64 e configure SICOOB_CERT_PFX_BASE64 + SICOOB_CERT_PASSWORD (sem eles o mTLS não sobe). Defina também SICOOB_ENV=production, SICOOB_CLIENT_ID e SICOOB_PIX_KEY.
  2. Cadastre o webhook via API do Sicoob (PUT /webhook/{chave}) apontando para https://atleticacovildomineiro.com.br/api/sicoob/webhook (o Sicoob concatena /pix ao notificar). Não há "webhook secret": a confirmação é garantida pela reconsulta da cobrança por txid na API.
  3. Faça uma cobrança PIX de teste e confirme no /admin/financeiro que o pedido mudou de status.

5. Supabase Auth

  • Configure Site URL e Redirect URLs com o domínio de produção (para o callback OAuth /auth/callback e o fluxo de recuperação de senha funcionarem).
  • Se usar Google OAuth, configure o provedor e as credenciais.
  • Decida a política de confirmação de e-mail conforme o fluxo desejado.

6. SEO

  • Com NEXT_PUBLIC_SITE_URL correto, sitemap.ts/robots.ts e as metatags saem com o domínio certo. Cadastre o site no Google Search Console.
  • Ative o Analytics definindo NEXT_PUBLIC_GA_ID.

Checklist de go-live

  • Domínio apontado e NEXT_PUBLIC_SITE_URL = domínio de produção.
  • Migrations pendentes aplicadas (em especial a de segurança).
  • Todos os segredos configurados na Vercel (produção).
  • Sicoob configurado (SICOOB_ENV=production, certificado A1, SICOOB_*) e webhook cadastrado via API + testado.
  • Auth (Site URL, redirects, provedores) configurada.
  • npm run build passa; typecheck e test verdes.
  • Pelo menos um super_admin promovido no banco de produção.

On this page