Olá a todos,
Como o título já diz. O discourse-doctor se conecta ao meu servidor de correio (executando na máquina host) através de sua interface externa e acessível pela internet (mas não localhost), mas o próprio discourse simplesmente não o faz.
Nenhuma tentativa por parte do discourse está sendo registrada, nem no log de produção do Rails nem nos logs do meu servidor de correio. Eu até executei um analisador de pacotes na interface do Docker e não vi nenhum tráfego de correio.
O discourse-doctor, no entanto, produz entradas de log no meu servidor de correio, como esperado, e consigo ler o e-mail no meu cliente de correio.
Reconstruí o contêiner Docker várias vezes com a seguinte configuração:
## este é o modelo de contêiner Docker Discourse all-in-one, standalone
##
## Após fazer alterações neste arquivo, você DEVE reconstruir
## /var/discourse/launcher rebuild app
##
## TENHA *MUITO* CUIDADO AO EDITAR!
## ARQUIVOS YAML SÃO SUPER SUPER SENSÍVEIS A ERROS DE ESPAÇAMENTO OU ALINHAMENTO!
## visite http://www.yamllint.com/ para validar este arquivo conforme necessário
templates:
- "templates/postgres.template.yml"
- "templates/redis.template.yml"
- "templates/web.template.yml"
- "templates/web.ratelimited.template.yml"
## Descomente estas duas linhas se quiser adicionar o Lets Encrypt (https)
### - "templates/web.ssl.template.yml"
### - "templates/web.letsencrypt.ssl.template.yml"
## quais portas TCP/IP este contêiner deve expor?
## Se você quiser que o Discourse compartilhe uma porta com outro servidor web como Apache ou nginx,
## consulte https://meta.discourse.org/t/17247 para detalhes
expose:
- "127.0.0.1:1234:80" # http
### - "127.0.0.1:1235:443" # https
params:
db_default_text_search_config: "pg_catalog.english"
## Defina db_shared_buffers para no máximo 25% da memória total.
## será definido automaticamente pelo bootstrap com base na RAM detectada, ou você pode substituir
db_shared_buffers: "256MB"
## pode melhorar o desempenho de classificação, mas adiciona uso de memória por conexão
#db_work_mem: "40MB"
## Qual revisão do Git este contêiner deve usar? (padrão: tests-passed)
#version: tests-passed
env:
LANG: en_US.UTF-8
# DISCOURSE_DEFAULT_LOCALE: en
## Quantas solicitações web simultâneas são suportadas? Depende da memória e dos núcleos da CPU.
## será definido automaticamente pelo bootstrap com base nas CPUs detectadas, ou você pode substituir
UNICORN_WORKERS: 4
## TODO: O nome de domínio ao qual esta instância do Discourse responderá
## Obrigatório. O Discourse não funcionará com um número IP bruto.
DISCOURSE_HOSTNAME: example.com
## Descomente se quiser que o contêiner seja iniciado com o mesmo
## nome de host (opção -h) especificado acima (padrão "$hostname-$config")
#DOCKER_USE_HOSTNAME: true
## TODO: Lista de e-mails delimitados por vírgula que serão feitos administradores e desenvolvedores
## no cadastro inicial, exemplo 'user1@example.com,user2@example.com'
DISCOURSE_DEVELOPER_EMAILS: 'me@another.com'
## TODO: O servidor de correio SMTP usado para validar novas contas e enviar notificações
# ENDEREÇO SMTP, nome de usuário e senha são obrigatórios
# AVISO: o caractere '#' na senha SMTP pode causar problemas!
DISCOURSE_SMTP_ADDRESS: submission.example.com # Registro A funciona, mas não CNAME
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: somedumbuser
DISCOURSE_SMTP_PASSWORD: somedumbpass
#DISCOURSE_SMTP_ENABLE_START_TLS: true # (opcional, padrão true)
## Se você adicionou o modelo Lets Encrypt, descomente abaixo para obter um certificado SSL gratuito
LETSENCRYPT_ACCOUNT_EMAIL: ssl@yetanother.com
## O endereço http ou https do CDN para esta instância do Discourse (configurado para buscar)
## consulte https://meta.discourse.org/t/14857 para detalhes
#DISCOURSE_CDN_URL: https://discourse-cdn.example.com
## O contêiner Docker é sem estado; todos os dados são armazenados em /shared
volumes:
- volume:
host: /var/discourse/shared/standalone
guest: /shared
- volume:
host: /var/discourse/shared/standalone/log/var-log
guest: /var/log
## Plugins vão aqui
## consulte https://meta.discourse.org/t/19157 para detalhes
hooks:
after_code:
- exec:
cd: $home/plugins
cmd:
- git clone https://github.com/discourse/docker_manager.git
## Quaisquer comandos personalizados para executar após a construção
run:
- exec: echo "Início dos comandos personalizados"
## Se quiser definir o endereço de e-mail 'De' para seu primeiro cadastro, descomente e altere:
## Após receber o primeiro e-mail de cadastro, comente novamente a linha. Só precisa ser executado uma vez.
#- exec: rails r "SiteSetting.notification_email='info@unconfigured.discourse.org'"
- replace:
filename: /etc/nginx/conf.d/discourse.conf
from: "types {"
to: |
set_real_ip_from 0.0.0.0/0;
real_ip_header X-Forwarded-For;
real_ip_recursive on;
types {
- exec: echo "Fim dos comandos personalizados"