Configuração e Execução Local
Variáveis de ambiente e como rodar o frontend localmente.
Variáveis de ambiente
| Variável | Arquivo | Uso |
|---|---|---|
NEXT_PUBLIC_API_URL | .env.development / .env.production | Base URL da API do backend usada pelo axios (shared/lib/api.ts) |
RESEND_API_KEY | .env.local (não versionado) | Usada pela rota /api/send-email; destinatários/remetente vêm de Configurações |
.env.local não é versionado (está no .gitignore) — cada dev precisa criar o seu com a própria chave do
Resend pra testar os envios localmente. Se a API de configurações globais não responder, /api/send-email
usa os destinatários antigos como fallback para não bloquear o envio.
Supabase (DevBlog)
A página Início busca os posts direto do Supabase (features/home/supabase/supabase.ts), sem passar
pela API do backend. URL e chave pública (anon/publishable) estão hardcoded nesse arquivo — não é uma
variável de ambiente, então não precisa de configuração extra pra rodar localmente. É seguro porque a
chave é a pública (só permite o que as Row Level Security policies do Supabase liberarem), mas se algum
dia o projeto migrar essa lógica pra dentro do backend, vale revisar esse acoplamento direto.
Rodando localmente
npm install
npm run devAbre em http://localhost:3000. Sem NEXT_PUBLIC_API_URL configurado, todas as chamadas à API vão falhar
(o axios não tem baseURL) — o app carrega, mas nenhuma tela com dados reais funciona.
Scripts completos
npm run dev # servidor de desenvolvimento
npm run build # build de produção
npm run lint # eslint
npm run lint:fix # eslint --fix
npm run format # prettier --write
npm run format:check # prettier --check
npm run typecheck # tsc --noEmit
npm run test # vitest run
npm run test:watch # vitest (watch mode)
npm run test:coverage # vitest run --coverage
npm run verify:quick # lint + typecheck + test
npm run verify # lint + typecheck + test + buildDeploy (Azure Pipelines → Vercel)
azure-pipelines.yml dispara só em push na branch main, um único estágio: npm install, instala a
Vercel CLI e roda vercel --prod --force --token=$(VERCEL_PAT) (token e IDs de projeto/organização vêm do
variable group VERCEL_DEPLOY_GNOQCORE_FRONTEND no Azure DevOps).
Diferente do backend, aqui não tem estágio de dev/homologação nem passo de lint/typecheck/test
antes do deploy — o --force do Vercel builda e publica direto. Vale ter isso em mente: um erro de
lint/type que passe despercebido só vai aparecer em produção (ou no build da própria Vercel, que falha o
deploy se o next build quebrar).