Skip to main content

Stack do servidor

Variáveis de ambiente

Crie um arquivo .env na raiz do backend. Todas as variáveis sem valor padrão indicado são obrigatórias para a funcionalidade correspondente.
FRONTEND_URL é obrigatória — o servidor chama process.exit(1) na inicialização se ela não estiver definida.

Notas por grupo

SessãoSESSION_COOKIE_NAME e SESSION_EXPIRES_DAYS controlam o cookie de autenticação do frontend. O padrão imob_session com 5 dias é adequado para produção. CRON_SECRET — qualquer string aleatória e longa serve (ex: resultado de openssl rand -hex 32). Ela é comparada literalmente com o header Authorization: Bearer <CRON_SECRET> no endpoint do cron. MinIO — os dois buckets são independentes e devem ser criados manualmente no MinIO antes de iniciar o servidor. O bucket de fotos (MINIO_BUCKET_FOTOS) deve ter política de leitura pública configurada no console do MinIO. BrevoBREVO_API_KEY é a chave global usada pelo SUPER_ADMIN. Cada locador pode configurar sua própria chave em Configurações > Notificações, que sobrescreve a global para os disparos daquele tenant. Evolution API — necessário apenas se o canal evolutionAtivo estiver habilitado nas configurações de notificação. A instância por usuário é criada automaticamente com o nome imob_{userId} via POST /configuracoes/whatsapp/gerar-qr.

Middlewares globais

Os middlewares são aplicados nesta ordem em todas as requisições:

Rotas registradas

Health check

Endpoint público para monitoramento. Não requer autenticação.
Resposta 200

Tratamento de erros global

Erros não capturados pelos handlers de rota chegam ao middleware global, que:
  • Loga o erro com pino incluindo método e URL
  • Retorna 400 para JSON malformado (entity.parse.failed)
  • Retorna 500 para qualquer outro erro inesperado

Logs

A stack usa Pino para logs estruturados em JSON. Em desenvolvimento, o pino-pretty formata a saída com cores no terminal.
O nível de log é configurável via LOG_LEVEL (padrão: info). Valores válidos: trace, debug, info, warn, error, fatal.