Corrige acesso em produção: hosts permitidos, i18n do Devise e config do ambiente no compose
- production.rb (hosts): a linha que parecia só liberar o APP_HOST na verdade
LIGAVA a verificação de Host e recusava todo o resto — o acesso pelo IP
interno caía em 'Blocked hosts: 100.75.222.23:3001'. Agora entram também
localhost/127.0.0.1 e a lista HOSTS_PERMITIDOS.
- production.rb (i18n): 'fallbacks = true' significa cair no default_locale,
que aqui é o próprio pt-BR — o fallback apontava para si mesmo e chave
ausente virava 'Translation missing' na tela do usuário. Agora [:en], igual
ao application.rb.
- pt-BR.yml: traduções do Devise (failure/sessions/passwords). O projeto não
usa devise-i18n; em development o texto vinha em inglês pelo fallback e o
buraco passava despercebido.
- docker-compose.yml / .env.example: porta do host parametrizada
(${PORTA_APP:-3001}) e APP_HOST/APP_NAME/WHATSAPP_URL/HOSTS_PERMITIDOS com
padrão — essa configuração vivia só no .env do servidor e sumiu junto com ele.
This commit is contained in:
@@ -10,7 +10,10 @@ services:
|
||||
# POR QUE NÃO É FIXA: o mesmo NAS roda mais de um stack, e dois containers
|
||||
# não publicam a mesma porta ("driver failed programming external
|
||||
# connectivity ... port is already allocated"). O ambiente de TESTE usa a
|
||||
# 3001; a 3000 já está ocupada.
|
||||
# 3001; a 3000 já está ocupada. Por isso o PADRÃO aqui é 3001 e não 3000:
|
||||
# é o valor que mantém ESTE ambiente de pé se o .env se perder — foi
|
||||
# exatamente o que aconteceu, e o padrão 3000 fez o container morrer com
|
||||
# "port is already allocated". Na produção (branch main) o padrão é 3000.
|
||||
#
|
||||
# Isto vivia como alteração LOCAL no docker-compose.yml do servidor — e em
|
||||
# 27/08/2026 um `git reset --hard` levou junto, derrubando o ambiente com o
|
||||
@@ -21,7 +24,7 @@ services:
|
||||
# ⚠️ Ao mudar, ajuste JUNTO o proxy reverso (DSM/Cloudflare) — senão o 502
|
||||
# só muda de lugar.
|
||||
ports:
|
||||
- "${PORTA_APP:-3000}:3000"
|
||||
- "${PORTA_APP:-3001}:3000"
|
||||
env_file: .env
|
||||
environment:
|
||||
DATABASE_URL: ${DATABASE_URL}
|
||||
@@ -37,6 +40,24 @@ services:
|
||||
# ajuste sem rebuild — basta TZ=... no .env. Ver deploy/ntp-seguro.sh:
|
||||
# a HORA em si é do host, isto aqui só define o fuso de leitura.
|
||||
TZ: ${TZ:-America/Sao_Paulo}
|
||||
|
||||
# Endereço público e nome do sistema. Ficam aqui com PADRÃO porque não são
|
||||
# segredo — assim um .env perdido não leva junto a configuração do
|
||||
# ambiente. O .env continua mandando: se a variável existir lá, ela vence.
|
||||
#
|
||||
# ⚠️ APP_HOST é SÓ O HOST, sem "https://". O código monta os links como
|
||||
# "https://#{APP_HOST}/motorista" (consolidacao_mailer.rb,
|
||||
# notificacao_service.rb, gatilhos.rb) — com o esquema no valor sai
|
||||
# "https://https://..." e todo link de e-mail e WhatsApp quebra.
|
||||
APP_HOST: ${APP_HOST:-teste.reemtransportes.com.br}
|
||||
APP_NAME: "${APP_NAME:-Reem Logística}"
|
||||
# Hosts extras aceitos além do APP_HOST (vírgula separa vários). Com
|
||||
# RAILS_ENV=production o Rails só aceita os hosts listados; o acesso pela
|
||||
# rede interna chega com o IP do NAS e era recusado com
|
||||
# "Blocked hosts: 100.75.222.23:3001". Ver config/environments/production.rb.
|
||||
HOSTS_PERMITIDOS: ${HOSTS_PERMITIDOS:-100.75.222.23}
|
||||
# A ponte do WhatsApp é alcançada pelo nome do serviço na rede do compose.
|
||||
WHATSAPP_URL: ${WHATSAPP_URL:-http://whatsapp:3001}
|
||||
volumes:
|
||||
- ".:/app"
|
||||
- "bundle_cache:/usr/local/bundle"
|
||||
|
||||
Reference in New Issue
Block a user