A API lê kunk-api/.env. Cada frontend em apps/* lê o próprio .env (prefixo Vite VITE_*). Em produção, as VITE_* entram no build da SPA; na API, as variáveis ficam no ambiente do processo.
Mínimo para subir em local: Postgres (PG_URL ou PG*), PORT na API, e em cada app VITE_API_URL + VITE_URL. O restante depende dos módulos e do branding da instância.
Veja também instância, deploy e o .env.example da API. Detalhes de módulos: API → Módulos.
- Credenciais de módulos (
system_api_credentials) e branding (system_configs): o Admin/banco tem prioridade; a variável de ambiente só entra se o valor no banco estiver vazio. Ativação de módulos é sempre pelo Admin → Serviços externos.
- Bootstrap Vite (
VITE_API_URL, VITE_URL): só build/runtime do frontend — não vêm do banco.
- Demais envs da API (Postgres,
PUBLIC_API_URL, CONFIG_ENCRYPT_KEY, etc.): só ambiente do processo (e defaults do código).
| Variável |
Uso |
PG_URL |
Connection string completa do PostgreSQL. Preferida quando disponível. |
PGHOST, PGPORT, PGUSER, PGPASSWORD, PGDATABASE |
Alternativa a PG_URL: a API monta a URL se as partes estiverem definidas. PGPORT default 5432. |
PORT |
Porta HTTP da API (default 8056; no Docker unificado costuma ser 4250). |
HOST |
Interface de bind (default 0.0.0.0). |
NODE_ENV |
Ambiente Node (development, production, test). Afeta mensagens de erro, cookies e custo de hash de senha. |
| Variável |
Uso |
COOKIE_SECURE |
Se true/1, cookies de sessão exigem HTTPS. Em produção o default é ligado quando a env está vazia. |
SESSION_MAX_HOURS |
Duração máxima da sessão em horas (default 168 = 7 dias). |
CORS_ORIGIN |
Allowlist de Origin do browser (lista separada por vírgula). Vazio ou omitido = CORS desligado. Apps oficiais chamam /api/v1 no próprio host via proxy e em geral não precisam desta env; use só se um front externo falar com a URL pública da API. |
Usadas em callbacks OAuth, webhooks e links de e-mail (reset de senha, convites, termos). Sem barra final.
| Variável |
Uso |
PUBLIC_API_URL |
URL pública da API. Obrigatória em produção. Callbacks OAuth (Google, Melhor Envio) usam só este valor — nunca Host / X-Forwarded-Host. Alias legado: API_PUBLIC_URL. |
PAGARME_WEBHOOK_PUBLIC_URL |
Override opcional só para webhooks Pagar.me quando a URL pública do webhook difere de PUBLIC_API_URL. Precisa ser alcançável pela internet (não localhost). |
KUNK_PUBLIC_URL |
URL pública do app operacional. Links em e-mails e convites. Alias: PUBLIC_APP_URL. Default local http://localhost:4257. |
ADMIN_PUBLIC_URL |
URL pública do Admin. Default local http://localhost:4256. |
REGISTRATION_PUBLIC_URL |
URL pública do cadastramento. Alias: CADASTRO_PUBLIC_URL. Default local http://localhost:4255. |
DOC_SIGN_PUBLIC_URL |
URL pública do doc-sign (assinatura de termos). Fallback na API: VITE_DOC_SIGN_URL. Default local http://localhost:4258. |
| Variável |
Uso |
CONFIG_ENCRYPT_KEY |
Chave mestra AES-256-GCM para valores sensíveis em system_configs e system_api_credentials. Nunca gravar no banco. Necessária em produção se houver secrets persistidos. |
SYSTEM_INVITE_SECRET |
Segredo para assinar tokens de convite (Admin / portal profissional). Se vazio, cai em SESSION_SECRET e depois em fallbacks internos. |
SESSION_SECRET |
Fallback de assinatura quando SYSTEM_INVITE_SECRET não está definido. |
ASSOCIATION_NAME |
Nome curto da associação no lado da API (e-mails de teste SMTP, convites, alguns textos). Preferível alinhar com o branding do Admin. |
AUTH_ENUM_RATE_LIMIT |
Liga rate limit em rotas públicas sensíveis a enumeração (exists, register-email, triagem, falhas de login). Default ligado; 0/false desliga (útil em e2e local). |
Também configurável no Admin → Armazenamento. Env serve de default/fallback.
| Variável |
Uso |
STORAGE_PATH |
Diretório local de arquivos quando o driver é local (default ./storage). |
FILES_DRIVER |
Driver ativo: local (default), s3 ou gcs. |
FILES_KEY_PREFIX |
Prefixo das chaves/objetos no bucket (default kunk/). |
S3_BUCKET |
Nome do bucket S3 (ou compatível). |
S3_REGION |
Região S3 (default us-east-1). |
S3_ACCESS_KEY_ID |
Access key; também fallback da credencial storage_s3. |
S3_SECRET_ACCESS_KEY |
Secret key; também fallback da credencial storage_s3. |
GCS_BUCKET |
Bucket Google Cloud Storage. |
GCS_PROJECT_ID |
Project ID do GCP. |
GCS_CLIENT_EMAIL |
E-mail da service account; fallback da credencial storage_gcs. |
GCS_PRIVATE_KEY |
Private key PEM (\n escapados); fallback storage_gcs. |
GCS_CREDENTIALS_JSON |
JSON completo da service account (alternativa a e-mail + key). |
A ativação do módulo é só pelo Admin. As envs abaixo preenchem system_api_credentials quando o campo correspondente no banco está vazio. Documentação operacional: módulos.
| Variável |
Uso |
PAGARME_SECRET_KEY |
Chave secreta da API v5. Alias legado: PAGARME_TOKEN. |
PAGARME_PUBLIC_KEY |
Chave pública (checkout / front). |
PAGARME_URL_API |
Base URL da API (default https://api.pagar.me/core/v5). |
PAGARME_WEBHOOK_USER |
Usuário HTTP Basic do webhook — o mesmo cadastrado no painel Pagar.me. |
PAGARME_WEBHOOK_PASS |
Senha HTTP Basic do webhook. |
| Variável |
Uso |
LOGGI_CLIENT_ID |
OAuth client_id. |
LOGGI_CLIENT_SECRET |
OAuth client_secret. |
LOGGI_COMPANY_ID |
Company id Loggi. |
LOGGI_URL_API |
Base URL da API Loggi. |
LOGGI_TOKEN_URL |
URL do token OAuth. |
LOGGI_EXTERNAL_SERVICE_IDS |
Lista CSV de SISUs Loggi quando a config de frete no Admin estiver vazia. |
| Variável |
Uso |
MELHOR_ENVIO_CLIENT_ID |
OAuth client_id. |
MELHOR_ENVIO_CLIENT_SECRET |
OAuth client_secret. |
MELHOR_ENVIO_REDIRECT_URI |
Redirect URI do OAuth (a API também deriva a partir de PUBLIC_API_URL). |
MELHOR_ENVIO_API_URL |
Base URL da API Melhor Envio. |
MELHOR_ENVIO_ENVIRONMENT |
production (padrão) ou sandbox. |
MELHOR_ENVIO_USER_AGENT |
User-Agent nas chamadas HTTP (default genérico com contato da associação). |
| Variável |
Uso |
GEOAPIFY_API_KEY |
Chave da API de geocoding. |
| Variável |
Uso |
GOOGLE_CLIENT_ID |
OAuth Client ID. |
GOOGLE_CLIENT_SECRET |
OAuth Client Secret. |
GOOGLE_REDIRECT_URI |
Redirect do callback; opcional — a API grava a partir de PUBLIC_API_URL. |
GOOGLE_REFRESH_TOKEN |
Refresh token após o fluxo OAuth (access token fica só no banco). |
| Variável |
Uso |
SMTP_HOST |
Servidor SMTP. |
SMTP_PORT |
Porta (ex.: 587 ou 465). |
SMTP_SECURE |
TLS implícito (true tipicamente na 465). |
SMTP_USER |
Usuário SMTP. |
SMTP_PASS |
Senha SMTP. |
SMTP_FROM |
Remetente (From). |
SMTP_FROM_NAME |
Nome exibido do remetente. |
| Variável |
Uso |
UTALK_API_TOKEN |
Bearer de um usuário da organização (chats/transfer no OSS). |
UTALK_ORG_ID |
ID da organização Umbler Utalk. |
UTALK_FROM_PHONE |
Telefone do canal no formato +55…. |
UTALK_API_URL |
Base URL da API Utalk. |
| Variável |
Uso |
SOUCANNABIS_ORDERS_BASE_URL |
Base URL do serviço de pedidos SouCannabis. |
SOUCANNABIS_ORDERS_CLIENT_ID |
OAuth client_id. |
SOUCANNABIS_ORDERS_CLIENT_SECRET |
OAuth client_secret. |
SOUCANNABIS_ORDERS_TOKEN_URL |
URL de obtenção do token. |
Uso interno de scripts/containers; raramente necessárias no dia a dia local.
| Variável |
Uso |
PG_DUMP_PATH |
Caminho do binário pg_dump para backups. |
PSQL_PATH |
Caminho do binário psql (imagem Docker da API já define um default). |
SCHEMA_SQL_PATH |
Caminho alternativo do SQL de schema no fluxo de install. |
Arquivo típico: apps/<app>/.env (veja .env.example quando existir). Em produção as VITE_* são embutidas no build.
| Variável |
Uso |
VITE_API_URL |
Base da API no browser. Default /api/v1 (mesmo host + proxy). Bootstrap: não vem do Admin. |
VITE_URL |
URL pública deste app (links absolutos, cookies de contexto). Bootstrap: não vem do Admin. |
VITE_API_PROXY_TARGET |
Só desenvolvimento/Docker: destino do proxy Vite para a API (ex.: http://localhost:8056 ou http://kunk-api:4250 no compose unificado). |
Arquivo de referência: apps/registration/.env.example.
| Variável |
Uso |
VITE_DOC_SIGN_URL |
URL do doc-sign para redirecionar assinatura de termos. |
VITE_KUNK_URL / VITE_KUNK_PUBLIC_URL |
URL do app Kunk (links de consulta/contato). |
VITE_CONTACT_URL |
URL externa ou rota de contato (ex.: agendar consulta). |
VITE_ASSOCIATION_NAME |
Nome curto da associação na UI. |
VITE_ASSOCIATION_FULL_NAME |
Razão social / nome completo. |
VITE_ASSOCIATION_EMAIL |
E-mail de contato exibido. |
VITE_ASSOCIATION_PHONE |
Telefone de contato. |
VITE_ASSOCIATION_SITE |
Site institucional. |
VITE_ASSOCIATION_CNPJ |
CNPJ exibido onde aplicável. |
VITE_ASSOCIATION_CITY / VITE_ASSOCIATION_STATE |
Cidade e UF da associação. |
VITE_ASSOCIATION_LOGO |
Logo principal (path ou URL). |
VITE_ASSOCIATION_LOGO_MENU |
Logo do menu (fallback: logo principal). |
VITE_ASSOCIATION_LOGO_SIZE |
Tamanho CSS do logo (ex.: 180px). |
VITE_ASSOCIATION_LOGO_SQUARE / VITE_ASSOCIATION_LOGO_RECTANGULAR |
Variantes de asset do logo. |
VITE_ASSOCIATION_LOGO_FORMAT |
Formato ativo: square ou rectangular. |
VITE_ASSOCIATION_LOGO_PLACEMENTS |
Onde cada formato aparece (serializado). |
VITE_WELCOME_TEXT |
Texto de boas-vindas do funil. |
VITE_COMPLETION_TEXT |
Texto da tela de conclusão. |
VITE_SHOW_TRIAGE_BUTTON |
Exibe botão de triagem (true/1/yes). |
VITE_TRIAGE_FORM_URL |
URL do formulário/fluxo de triagem. |
A maior parte do branding acima pode ser gerida no Admin (system_configs, system registration) sem redeploy; a env cobre bootstrap e desenvolvimento local.
Arquivo de referência: apps/admin/.env.example (bootstrap mínimo).
| Variável |
Uso |
VITE_API_URL / VITE_URL |
Ver seção comum. |
VITE_KUNK_URL / VITE_KUNK_PUBLIC_URL |
Usadas em fluxos que precisam abrir/apontar o app Kunk (ex.: configuração de triagem). |
Configs de aparência e serviços ficam no próprio Admin (banco), não em um conjunto grande de envs deste app.
Não há .env.example dedicado hoje; o mínimo é o bootstrap comum. Tema/aparência também resolve via Admin (system=kunk) com fallback nestas envs:
| Variável |
Uso |
VITE_KUNK_TITLE |
Título do app. |
VITE_KUNK_LOGO |
Logo do painel. |
VITE_KUNK_BG_MODE |
Modo de fundo (color, image, etc., conforme o tema). |
VITE_KUNK_BG_COLOR / VITE_KUNK_BG_IMAGE |
Cor ou imagem de fundo. |
VITE_KUNK_MENU_BG / VITE_KUNK_MENU_TEXT |
Cores do menu lateral. |
VITE_KUNK_MENU_HOVER_BG / VITE_KUNK_MENU_HOVER_TEXT |
Hover do menu. |
VITE_KUNK_DEFAULT_THEME |
Tema inicial (dark / light). |
VITE_KUNK_DARK_BG / VITE_KUNK_DARK_PRIMARY / VITE_KUNK_DARK_ACCENT / VITE_KUNK_DARK_ACCENT_HOVER |
Tokens do tema escuro. |
VITE_KUNK_LIGHT_BG / VITE_KUNK_LIGHT_PRIMARY / VITE_KUNK_LIGHT_ACCENT / VITE_KUNK_LIGHT_ACCENT_HOVER |
Tokens do tema claro. |
Arquivo de referência: apps/doc-sign/.env.example.
| Variável |
Uso |
VITE_API_URL / VITE_URL |
Ver seção comum. |
VITE_REGISTRATION_URL |
Origem permitida/retorno para o cadastramento após assinatura. |
VITE_KUNK_URL / VITE_KUNK_PUBLIC_URL |
Origens alternativas de retorno para o painel Kunk. |
Imagem em deploy/spa: build Vite + nginx.
| Variável |
Momento |
Uso |
VITE_API_URL, VITE_URL, VITE_DOC_SIGN_URL, VITE_KUNK_URL, VITE_REGISTRATION_URL, VITE_CONTACT_URL, VITE_ASSOCIATION_NAME, VITE_ASSOCIATION_LOGO, VITE_ASSOCIATION_LOGO_MENU, VITE_ASSOCIATION_LOGO_SIZE |
Build (args / variáveis do serviço) |
Embutidas no bundle no npm run build. |
PORT |
Runtime |
Porta em que o nginx escuta (default 8080). |
KUNK_API_PUBLIC_HOST |
Runtime |
Host público da API usado no template nginx para proxy de /api (sem esquema). |
No Docker de desenvolvimento unificado (docker-compose.kunk.yml), os apps recebem VITE_API_PROXY_TARGET=http://kunk-api:4250 e a API publica PUBLIC_API_URL / CORS_ORIGIN conforme o compose.
Variáveis E2E_*, DEMO_* e afins existem apenas nas suítes Playwright dos apps. Não são necessárias para rodar a aplicação localmente ou em produção.