Skip to content

Variáveis de Ambiente

Lista completa de todas as variáveis usadas pelo sistema com descrição de cada uma.

Secrets

Nunca commite arquivos com valores reais. Em produção, todos os secrets vêm do Azure Key Vault — o deploy.sh faz isso automaticamente.

Backend (.env.secrets)

Banco de dados

VariávelObrigatóriaDescrição
DATABASE_URLSimConnection string PostgreSQL. Formato: postgresql://user:pass@host:5432/db?sslmode=disable
POSTGRES_USERSimUsuário do PostgreSQL
POSTGRES_PASSWORDSimSenha do PostgreSQL
POSTGRES_DBSimNome do banco de dados

Redis

VariávelObrigatóriaDescrição
REDIS_HOSTSimHost do Redis (ex: crm-galdix-redis-1 em produção)
REDIS_PORTNãoPorta do Redis. Padrão: 6379
REDIS_PASSWORDSimSenha do Redis

Autenticação (Clerk)

VariávelObrigatóriaDescrição
CLERK_SECRET_KEYSimChave secreta do Clerk (começa com sk_)
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEYSimChave pública do Clerk (começa com pk_)
CLERK_WEBHOOK_SECRETSimSecret para verificar webhooks do Clerk (Svix)

Segurança interna

VariávelObrigatóriaDescrição
MASTER_ENCRYPTION_KEYSimChave mestra para criptografia AES-256-GCM de secrets no banco (SMTP password, tokens WhatsApp)
INTERNAL_API_KEYSimChave para comunicação interna entre serviços (guards de endpoints internos)
JWT_SECRETSimSecret para assinatura de JWTs internos

WhatsApp / Meta

VariávelObrigatóriaDescrição
META_APP_IDSimID do App no Facebook Developers
META_APP_SECRETSimSecret do App no Facebook Developers (validação de webhooks)

Azure Key Vault (produção)

VariávelObrigatória em PRDDescrição
AZURE_KEYVAULT_URLSimURL do Key Vault (ex: https://nome.vault.azure.net/)
AZURE_TENANT_IDSimID do tenant Azure
AZURE_CLIENT_IDSimID do client (service principal)
AZURE_CLIENT_SECRETSimSecret do client Azure AD

Armazenamento (MinIO)

VariávelObrigatóriaPadrãoDescrição
MINIO_ENDPOINTNãohttp://minio:9000Endpoint do MinIO
MINIO_PUBLIC_URLNãohttps://minio.galdix.com.brURL pública para acesso aos arquivos
MINIO_BUCKETNãocrm-templatesBucket padrão
MINIO_ACCESS_KEYSimChave de acesso MinIO
MINIO_SECRET_KEYSimSecret MinIO

Aplicação

VariávelObrigatóriaPadrãoDescrição
PORTNão3001Porta que o backend escuta
NODE_ENVSimdevelopment ou production
FRONTEND_URLSimURL do frontend (ex: https://crm.galdix.com.br) — usada para CORS e redirecionamentos de convite

Sync ERP

VariávelObrigatóriaPadrãoDescrição
DISABLE_SYNC_CRONNãofalseSe true, desabilita crons automáticos de sync com o ERP
ERP_SYNC_LOCK_TTL_SECONDSNão7200TTL do lock distribuído de sync (2h)

Bull Board (Dashboard de Filas)

VariávelObrigatóriaDescrição
ENABLE_BULLBOARDNãoSe true, habilita /admin/queues
BULLBOARD_USERSe ENABLE=trueUsuário basic auth para o BullBoard
BULLBOARD_PASSSe ENABLE=trueSenha basic auth para o BullBoard

Chatwoot

VariávelObrigatóriaDescrição
CHATWOOT_CABLE_PREFIXNãoPrefixo do ActionCable do Chatwoot. Padrão: chatwoot_production_action_cable

Surveys

VariávelObrigatóriaDescrição
SURVEY_BASE_URLNãoURL base para links de pesquisa. Padrão: https://galdix.com.br
SURVEY_SECRETSimSecret HMAC para assinar tokens de pesquisa de satisfação
BACKEND_URLNãoURL pública do backend. Padrão: https://apicrm.galdix.com.br

Frontend (variáveis NEXT_PUBLIC_*)

Essas variáveis são injetadas no build da imagem Docker — não em runtime. Mudar exige rebuild.

VariávelDescrição
NEXT_PUBLIC_API_BASE_URLURL pública do backend (ex: https://apicrm.galdix.com.br)
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEYChave pública do Clerk — injetada em build via Azure Key Vault
NEXT_PUBLIC_META_APP_IDID do App Meta para o flow de onboarding WhatsApp
NEXT_PUBLIC_META_CONFIG_IDConfig ID Meta para embedded signup

Por que algumas vars do frontend exigem rebuild?

Variáveis NEXT_PUBLIC_* são embutidas no bundle JavaScript durante o next build. O deploy.sh busca o CLERK_PUBLISHABLE_KEY do Azure Key Vault antes de buildar para garantir o valor correto. Usar docker compose manual ignora essa etapa → Clerk quebra.

Documentação interna — Galdix CRM