# ============================================================ # .env.example — COPIE PARA .env E PREENCHA OS VALORES REAIS # NUNCA versione o arquivo .env no Git! # ============================================================ # Ambiente Rails # ⚠️ NO SERVIDOR DE PRODUÇÃO use `production` (modo development expõe páginas de # erro com código-fonte/stack, o rack-mini-profiler e desliga otimizações). # Use `development` só na sua máquina local. RAILS_ENV=production # Fuso horário do sistema operacional dentro dos containers. # Já é o padrão no Dockerfile — só mexa se a operação mudar de estado. # ⚠️ Isto define o FUSO, não a HORA. Se a data/hora do servidor está errada # (atrasa, ou volta errada depois de reboot/deploy), o problema é o relógio # do HOST: rode uma vez `sudo bash deploy/ntp-seguro.sh`. TZ=America/Sao_Paulo # ── Banco de dados (seu PostgreSQL já existente) ───────────── # Aponte DB_HOST para o IP ou hostname do seu servidor PostgreSQL DATABASE_URL=postgresql://postgres:senha_segura@SEU_IP:5432/logistica_db DB_HOST=SEU_IP # ex: 192.168.1.100 ou db.gade.com.br DB_PORT=5432 DB_NAME=logistica_db # nome do banco NOVO que o sistema vai criar DB_USER=postgres DB_PASSWORD=senha_segura # ── SimpliRoute — API de escrita (edição de lançamentos pelo ADM) ───── # A base de rastreio (DB_EXISTING_TABLE) é só LEITURA e sincroniza a partir # do SimpliRoute. Para CORRIGIR um lançamento (status/motivo/comentário) o # sistema grava direto na API do SimpliRoute usando este token. # Pegue em: SimpliRoute → Configurações → API. NUNCA versione o token real. SIMPLIROUTE_TOKEN= SIMPLIROUTE_BASE_URL=https://api.simpliroute.com # ── Tabela existente (apenas leitura — NÃO modificar) ──────── DB_EXISTING_TABLE=db_reem_simplerout_2026 DB_EXISTING_SCHEMA=public # Conta(s) consideradas. A coluna account_id é texto e pode vir vazia. # 95907 → só essa conta # 95907,12345 → várias contas # 95907, → essa conta + os registros de conta vazia # all (ou vazio)→ NÃO filtra por conta (conta tudo da tabela) ← recomendado aqui DB_EXISTING_ACCOUNT_ID=all # ── Rails Security ──────────────────────────────────────────── # Gere com: docker-compose exec app bundle exec rails secret SECRET_KEY_BASE=gere_com_rails_secret_e_cole_aqui # Força HTTPS: redireciona HTTP→HTTPS e marca cookies como "Secure". # Deixe "true" no servidor (atrás do Cloudflare). Em desenvolvimento local # deixe vazio/false para não forçar https em localhost. FORCE_SSL=true # ══════════════════════════════════════════════════════════════ # NOTIFICAÇÕES (WhatsApp e e-mail) # # ⚠️ Estas variáveis são apenas FALLBACK. A configuração preferencial fica no # BANCO e é editada pelo ADM em Configurações → Notificações e E-mail # (/admin/configuracao_notificacao), valendo sem reiniciar o container. # Enquanto a tela não for preenchida e ativada, valem os valores abaixo. # ══════════════════════════════════════════════════════════════ # ── Twilio — WhatsApp (opcional, Fase 8) ───────────────────── TWILIO_ACCOUNT_SID= TWILIO_AUTH_TOKEN= TWILIO_WHATSAPP_FROM=whatsapp:+14155238886 # ── E-mail (opcional, Fase 8) ──────────────────────────────── SMTP_ADDRESS=smtp.gmail.com SMTP_PORT=587 SMTP_USERNAME= SMTP_PASSWORD= SMTP_DOMAIN=gade.com.br # ── Criptografia dos segredos gravados pela tela (opcional) ── # A senha do SMTP e o token do Twilio salvos no banco são cifrados com uma # chave derivada do SECRET_KEY_BASE. Se você trocar o SECRET_KEY_BASE, esses # dois valores viram ilegíveis (o sistema volta a usar o .env e a tela avisa # para redigitar). Defina NOTIFICACAO_SECRET com uma string longa e FIXA para # desacoplar os segredos da rotação do SECRET_KEY_BASE. # ⚠️ Se mudar depois de já ter salvo, os valores gravados também se perdem. NOTIFICACAO_SECRET= # ── App ─────────────────────────────────────────────────────── APP_HOST=localhost:3000 APP_NAME=Reem Logística # ── WhatsApp (ponte própria — sessão pareada por QR code) ────────────────── # Token compartilhado entre o Rails e o container `whatsapp`. Qualquer string # longa e aleatória: `openssl rand -hex 32`. Sem ele a ponte recusa TUDO. WHATSAPP_TOKEN=troque_por_uma_string_aleatoria_longa # URL da ponte dentro da rede do compose (não mexa, a menos que troque o nome # do serviço no docker-compose.yml). # (o nome antigo `BAILEYS_URL` ainda é aceito, para .env já em produção) WHATSAPP_URL=http://whatsapp:3001 # ── Erros na tela ──────────────────────────────────────────────────────── # Mostra a página de debug do Rails (parâmetros, SESSÃO, cookies, IP, trace). # Deixe SEMPRE vazia/false em qualquer servidor: esse painel vai para a tela de # quem provocou o erro. Ligue só na sua máquina, quando estiver depurando. ERROS_DETALHADOS=false