Documentação
Configuração de produção
Checklist de ambiente e integrações antes de implantar o Motoko Base em produção.
Use esta checklist antes do primeiro deploy em produção. As variáveis obrigatórias sobem o app; integrações opcionais podem ser ativadas uma de cada vez.
Referência completa de env: Environment Variables.
Obrigatório
Estas quatro variáveis são o mínimo para um app de produção funcional:
| Variável | Valor em produção |
|---|---|
DATABASE_URL | String de conexão Postgres — prefira o transaction pooler do Supabase (porta 6543) em runtime |
BETTER_AUTH_SECRET | Segredo aleatório longo — gere com openssl rand -base64 32; nunca reutilize o segredo de dev |
BETTER_AUTH_URL | Origem HTTPS pública, ex.: https://app.example.com |
NEXT_PUBLIC_APP_URL | A mesma origem pública — usada para short links e redirects |
Mantenha BETTER_AUTH_URL e NEXT_PUBLIC_APP_URL alinhados com a URL que os usuários realmente visitam.
Execute as migrações contra produção antes ou durante o primeiro deploy:
pnpm db:migrateSe o DDL falhar pelo pooler, use temporariamente uma conexão direta (porta 5432). Veja Migrations.
Banco de dados
| Verificação | Ação |
|---|---|
| Postgres em execução | Supabase, Neon, RDS ou self-hosted — qualquer Postgres funciona |
| Migrações aplicadas | pnpm db:migrate contra produção |
| Pooler para runtime | Use a URL do transaction pooler em DATABASE_URL para hosts serverless/multi-instância |
| RLS (Supabase) | O starter vem com RLS habilitado — o app conecta via role do pooler, não com a anon key |
Detalhes: Database.
Better Auth e segredos
| Verificação | Ação |
|---|---|
| Novo segredo de produção | Gere um BETTER_AUTH_SECRET novo — não copie de .env.local |
| Origem HTTPS | BETTER_AUTH_URL deve coincidir com seu domínio ao vivo (cookies + callbacks dependem disso) |
| Trusted origins (opcional) | BETTER_AUTH_TRUSTED_ORIGINS para hosts de preview/staging |
Detalhes: Better Auth.
Callbacks OAuth
Se você usa login com Google ou GitHub, atualize tanto o console do provedor quanto o .env:
| Provedor | URL de callback de produção |
|---|---|
{BETTER_AUTH_URL}/api/auth/callback/google | |
| GitHub | {BETTER_AUTH_URL}/api/auth/callback/github |
Defina credenciais de produção GOOGLE_* / GITHUB_* — apps OAuth de sandbox/dev não funcionarão no seu domínio ao vivo.
Detalhes: OAuth Setup.
Resend
Obrigatório para verificação de cadastro e redefinição de senha em produção.
| Variável | Notas |
|---|---|
RESEND_API_KEY | API key de produção |
EMAIL_FROM | Remetente de domínio verificado, ex.: My App <noreply@yourdomain.com> |
Verifique seu domínio no Resend (SPF/DKIM) antes do go-live.
Detalhes: Email (Resend).
Polar
Mude de sandbox para production quando o billing entrar em produção.
| Variável | Notas |
|---|---|
POLAR_SERVER | production |
POLAR_ACCESS_TOKEN | Token da organização de produção |
POLAR_PRO_MONTHLY_PRODUCT_ID | ID do produto de produção |
POLAR_WEBHOOK_SECRET | Da config de webhook de produção |
URL do webhook: {NEXT_PUBLIC_APP_URL}/api/billing/webhooks/polar
Teste o checkout no sandbox primeiro. Detalhes: Payments (Polar).
Cloudflare R2
| Variável | Notas |
|---|---|
R2_ACCOUNT_ID | Conta Cloudflare |
R2_ACCESS_KEY_ID / R2_SECRET_ACCESS_KEY | Token de API de produção |
R2_BUCKET_NAME | Bucket privado |
Configure CORS do bucket para a origem de produção se uploads no navegador falharem.
Detalhes: Storage (R2).
PostHog
| Variável | Escopo | Notas |
|---|---|---|
NEXT_PUBLIC_POSTHOG_PROJECT_TOKEN | Cliente | Token do projeto de produção |
NEXT_PUBLIC_POSTHOG_HOST | Cliente | Combine com sua região PostHog (US/EU) |
POSTHOG_PERSONAL_API_KEY | Servidor | Para HogQL em /dashboard/analytics |
POSTHOG_PROJECT_ID | Servidor | ID do projeto de produção |
POSTHOG_HOST | Servidor | Host da API (não o host de ingest) |
Detalhes: Analytics (PostHog).
Sentry
| Variável | Notas |
|---|---|
NEXT_PUBLIC_SENTRY_DSN | DSN do projeto de produção |
SENTRY_AUTH_TOKEN | CI/build — upload de source maps |
SENTRY_ORG / SENTRY_PROJECT | CI/build — slugs de org e projeto |
Defina as variáveis do Sentry no seu ambiente de build (CI), não só em runtime, para que os source maps subam durante pnpm build.
O Sentry fica desativado durante next dev — verifique com pnpm build && pnpm start ou no host implantado.
Detalhes: Monitoring (Sentry).
Checklist pré-lançamento
- Variáveis de ambiente de produção definidas no host (nunca faça commit de segredos)
-
BETTER_AUTH_SECRETnovo gerado -
BETTER_AUTH_URLeNEXT_PUBLIC_APP_URLapontam para o domínio HTTPS ao vivo - Migrações aplicadas no banco de produção
- Domínio Resend verificado; teste o email de verificação
- URLs de callback OAuth atualizadas (se usar login social)
- Webhook Polar aponta para a URL de produção (se usar billing)
-
pnpm buildconclui com sucesso localmente ou no CI - Smoke test: cadastro → verificação → dashboard → integrações-chave
Implantação — Implante em qualquer plataforma compatível com Next.js + exemplo Vercel.