Variáveis de ambiente
Este projeto lê variáveis de ambiente em:
.env.local(recomendado localmente).env(opcional)- variáveis passadas em runtime (ex.: Docker/ambiente do servidor)
O arquivo .env.example contém um conjunto completo com comentários. Abaixo está um resumo por “família” de configuração.
API base (principal)
A base do backend é montada por src/config/api.ts:
- prioridade no servidor:
BACKEND_API_URL - fallback no browser (e também servidor se BACKEND não existir):
NEXT_PUBLIC_API_URL - fallback final:
DEFAULT_API_BASE_URL(hoje:https://defaultcrmapi.gevtech.com.br/api)
Desenvolvimento (npm run dev)
O arquivo .env.development (versionado) define automaticamente:
NEXT_PUBLIC_API_URL=http://localhost:3001/api
BACKEND_API_URL=http://localhost:3001/api
Assim, browser e proxies server-side (/api/auth/*, SSR) apontam para o backend local.
- Ajuste a porta em
.env.developmentse o API local usar outra. - Para testar contra produção no dev:
npm run dev:prod-apiou copie.env.development.local.example→.env.development.local.
Formato aceito:
https://host/api(recomendado)https://host/api/(normalizado — remove a barra final)http://localhost:3000(sem/api— o código adiciona quando necessário em rotas específicas)
Exemplo (local — já coberto por .env.development ao rodar npm run dev):
NEXT_PUBLIC_API_URL="http://localhost:3001/api"
BACKEND_API_URL="http://localhost:3001/api"
Exemplo (produção, server-side com runtime):
BACKEND_API_URL="https://defaultcrmapi.gevtech.com.br/api"
Tenant / Login
NEXT_PUBLIC_TENANT_SLUG: valor default preenchido no formulário de login (quando aplicável).
Timeouts do proxy de login (server-side)
A rota src/app/api/auth/login/route.ts faz proxy para o backend usando undici e expõe timeouts via env:
BACKEND_FETCH_CONNECT_TIMEOUT_MS(default: 15000)BACKEND_FETCH_HEADERS_TIMEOUT_MS(default: 60000)BACKEND_FETCH_BODY_TIMEOUT_MS(default: 60000)
Use quando houver redes lentas/instáveis e erros como UND_ERR_HEADERS_TIMEOUT.
Criptografia no cliente (opcional)
NEXT_PUBLIC_ENC_SALT: salt usado emsrc/models/utils/encryption.ts.- Se não definido, usa fallback
"crm_front_v1".
- Se não definido, usa fallback
Simulador de taxas (HTML “modelo”)
NEXT_PUBLIC_MODELO_TAXAS_HTML_URL: URL absoluta para um HTML externo (ex.: legado).- Se vazio, o app usa um modelo interno (arquivo em
public/).
- Se vazio, o app usa um modelo interno (arquivo em
NEXT_PUBLIC_MODELO_TAXAS_NOME_EMPRESA: nome exibido no cabeçalho do modelo (white label).
Cadastro de usuário (precificação)
NEXT_PUBLIC_USUARIO_PRECIFICACAO- Valores esperados:
"mdr"(altera etapa/campos do wizard) ou vazio (padrão).
- Valores esperados:
Proxies para legado (PHP) — server-side (recomendado)
Algumas áreas integram com endpoints PHP legados. Em produção, prefira configurar as URLs no servidor/contêiner e consumir via rotas /api/* do Next, para evitar CORS e manter cookies/sessão sob controle.
Terminais locais
Rotas:
GET /api/terminais/locais(proxy paralistar_terminais_locais.php)POST /api/terminais/cadastrarPOST /api/terminais/usuarios-vincular
Variáveis (server-side):
TERMINAIS_LISTAR_URLTERMINAIS_CADASTRAR_URLTERMINAIS_USUARIOS_VINCULAR_URL
Em NODE_ENV=development, se TERMINAIS_LISTAR_URL não estiver configurada, /api/terminais/locais devolve mocks.
Gestão de taxas padrão
Rotas:
GET /api/gestao-taxas-padrao(actionlistar_taxas)POST /api/gestao-taxas-padrao(atualização)
Variável (server-side):
GESTAO_TAXAS_PADRAO_URL
Em NODE_ENV=development, sem URL configurada, a rota devolve mocks.
Integração legado (PHP) direto no browser — NEXT_PUBLIC_* (opcional)
Para alguns serviços existe alternativa direta no client (normalmente requer cookies/sessão válidos e CORS liberado no legado):
NEXT_PUBLIC_TERMINAIS_LISTAR_URLNEXT_PUBLIC_TERMINAIS_CADASTRAR_URLNEXT_PUBLIC_TERMINAIS_USUARIOS_VINCULAR_URLNEXT_PUBLIC_GESTAO_TAXAS_PADRAO_URL
Quando possível, prefira o proxy server-side (TERMINAIS_*_URL, GESTAO_TAXAS_PADRAO_URL).
Mocks no client (forçar)
Alguns hooks permitem forçar mocks por env:
NEXT_PUBLIC_USE_TERMINAIS_MOCK="true"NEXT_PUBLIC_USE_DASHBOARD_MOCK="true"