Skip to main content

Pré-requisitos

  • Conta na Vercel
  • Repositório no GitHub conectado à Vercel
  • Banco PostgreSQL disponível (ex.: Neon)

Configuração do Projeto

1. Importar o Repositório

No painel da Vercel:
  1. Clique em Add New → Project
  2. Selecione o repositório plataforma-testes
  3. A Vercel detecta automaticamente o framework Next.js

2. Configurar Variáveis de Ambiente

Em Settings → Environment Variables, adicione todas as variáveis do guia de variáveis. Variáveis obrigatórias para o funcionamento correto:
DATABASE_URL
DATABASE_URL_UNPOOLED
POSTGRES_PRISMA_URL          ← alternativa pooled para o Neon
AUTH_SECRET
NEXTAUTH_URL                 ← URL do projeto no Vercel
NEXTAUTH_SECRET
CRF_SECRET                   ← mínimo 32 chars; gere com: openssl rand -hex 32
RESEND_API_KEY
EMAIL_FROM
NEXT_PUBLIC_APP_URL
NEXT_PUBLIC_SENTRY_DSN
SENTRY_AUTH_TOKEN
ENCRYPTION_KEY               ← 64 chars hex; gere com: openssl rand -hex 32
CRON_SECRET                  ← protege /api/cron/* contra chamadas externas
Configure para os três ambientes: Development, Preview e Production.
As variáveis CSRF_SECRET, REDIS_URL e ENCRYPTION_KEY existem apenas no .env.local por padrão e nunca são enviadas ao Vercel automaticamente. Você precisa adicioná-las manualmente no painel. Sem CSRF_SECRET, a proteção CSRF é desabilitada silenciosamente. Sem CRON_SECRET, o cron de backup falha e o Neon pode suspender após dias sem atividade.

3. Deploy

Clique em Deploy. A Vercel fará:
  1. pnpm install
  2. pnpm build
  3. Deploy dos arquivos estáticos e funções serverless

Deploy via CLI

# Instale a CLI da Vercel
pnpm add -g vercel

# Faça login
vercel login

# Deploy em produção
vercel --prod --yes

Migrações de Banco Automáticas

O projeto tem um GitHub Action (.github/workflows/db-deploy.yml) que aplica migrações do Prisma automaticamente:
  • PRs → aplica na branch de preview do banco
  • Push para main → aplica no banco de produção
Configure os secrets no GitHub:
SecretDescrição
PREVIEW_DATABASE_URLBanco do ambiente de preview
PROD_DATABASE_URLBanco de produção

Domínio Customizado

Em Settings → Domains, adicione seu domínio e configure os registros DNS conforme instruído pela Vercel. O SSL é provisionado automaticamente.

Neon + Vercel: Cold-Start

O plano free do Neon suspende o banco automaticamente após 5 dias sem atividade. Ao receber a primeira requisição, o servidor Postgres pode demorar até 15 segundos para acordar. O projeto já tem dois mecanismos para lidar com isso:
  1. connect_timeout=30 na URL do Prisma — aguarda até 30s para estabelecer conexão
  2. Cron diário (/api/cron/database-backup às 3h UTC) mantém o banco ativo com acesso diário
Se CRON_SECRET não estiver configurado no Vercel, o cron falha e o banco pode suspender. Configure essa variável para garantir que o backup diário rode corretamente.

Limites do Plano Free

RecursoLimite Free
Deploys/mêsIlimitados
Bandwidth100 GB/mês
Serverless invocations100k/mês
Execução de função10s máx (Hobby)
Tamanho de bundle250 MB comprimido