Hola a todos,
Como dice el título. discourse-doctor se conectará a mi servidor de correo (que se ejecuta en la máquina anfitriona) a través de su interfaz externa y accesible desde Internet (pero no localhost), pero discourse simplemente no lo hará.
No se registra ningún intento por parte de discourse, ni en el registro de producción de Rails ni en los registros de mi servidor de correo. Incluso he ejecutado un analizador de paquetes en la interfaz de Docker y no veo tráfico de correo.
Sin embargo, discourse-doctor sí genera entradas de registro en mi servidor de correo, como se esperaba, y puedo leer el correo electrónico en mi cliente de correo.
He reconstruido el contenedor Docker varias veces con la siguiente configuración:
## Esta es la plantilla del contenedor Docker Discourse todo en uno, independiente
##
## Después de realizar cambios en este archivo, DEBES reconstruir
## /var/discourse/launcher rebuild app
##
## ¡TEN *MUCHO* CUIDADO AL EDITAR!
## ¡LOS ARCHIVOS YAML SON SUPER SENSIBLES A ERRORES EN EL ESPACIO EN BLANCO O LA ALINEACIÓN!
## visita http://www.yamllint.com/ para validar este archivo según sea necesario
templates:
- "templates/postgres.template.yml"
- "templates/redis.template.yml"
- "templates/web.template.yml"
- "templates/web.ratelimited.template.yml"
## Descomenta estas dos líneas si deseas agregar Lets Encrypt (https)
### - "templates/web.ssl.template.yml"
### - "templates/web.letsencrypt.ssl.template.yml"
## ¿Qué puertos TCP/IP debe exponer este contenedor?
## Si deseas que Discourse comparta un puerto con otro servidor web como Apache o nginx,
## consulta https://meta.discourse.org/t/17247 para obtener detalles
expose:
- "127.0.0.1:1234:80" # http
### - "127.0.0.1:1235:443" # https
params:
db_default_text_search_config: "pg_catalog.english"
## Establece db_shared_buffers a un máximo del 25% de la memoria total.
## se establecerá automáticamente durante el arranque según la RAM detectada, o puedes sobrescribirlo
db_shared_buffers: "256MB"
## puede mejorar el rendimiento de clasificación, pero añade uso de memoria por conexión
#db_work_mem: "40MB"
## ¿Qué revisión de Git debe usar este contenedor? (predeterminado: tests-passed)
#version: tests-passed
env:
LANG: en_US.UTF-8
# DISCOURSE_DEFAULT_LOCALE: en
## ¿Cuántas solicitudes web concurrentes se admiten? Depende de la memoria y los núcleos de CPU.
## se establecerá automáticamente durante el arranque según los CPUs detectados, o puedes sobrescribirlo
UNICORN_WORKERS: 4
## TODO: El nombre de dominio al que responderá esta instancia de Discourse
## Obligatorio. Discourse no funcionará con una dirección IP desnuda.
DISCOURSE_HOSTNAME: example.com
## Descomenta si deseas que el contenedor se inicie con el mismo
## nombre de host (opción -h) que se especificó anteriormente (predeterminado "$hostname-$config")
#DOCKER_USE_HOSTNAME: true
## TODO: Lista de correos electrónicos separados por comas que se convertirán en administradores y desarrolladores
## en el registro inicial, por ejemplo 'usuario1@ejemplo.com,usuario2@ejemplo.com'
DISCOURSE_DEVELOPER_EMAILS: 'me@another.com'
## TODO: El servidor de correo SMTP utilizado para validar nuevas cuentas y enviar notificaciones
# SE REQUIERE la DIRECCIÓN SMTP, el nombre de usuario y la contraseña
# ADVERTENCIA: el carácter '#' en la contraseña SMTP puede causar problemas
DISCOURSE_SMTP_ADDRESS: submission.example.com # El registro A funciona pero no el CNAME
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: somedumbuser
DISCOURSE_SMTP_PASSWORD: somedumbpass
#DISCOURSE_SMTP_ENABLE_START_TLS: true # (opcional, predeterminado true)
## Si agregaste la plantilla de Lets Encrypt, descomenta a continuación para obtener un certificado SSL gratuito
LETSENCRYPT_ACCOUNT_EMAIL: ssl@yetanother.com
## La dirección CDN http o https para esta instancia de Discourse (configurada para extraer)
## consulta https://meta.discourse.org/t/14857 para obtener detalles
#DISCOURSE_CDN_URL: https://discourse-cdn.example.com
## El contenedor Docker es sin estado; todos los datos se almacenan en /shared
volumes:
- volume:
host: /var/discourse/shared/standalone
guest: /shared
- volume:
host: /var/discourse/shared/standalone/log/var-log
guest: /var/log
## Los plugins van aquí
## consulta https://meta.discourse.org/t/19157 para obtener detalles
hooks:
after_code:
- exec:
cd: $home/plugins
cmd:
- git clone https://github.com/discourse/docker_manager.git
## Cualquier comando personalizado para ejecutar después de la compilación
run:
- exec: echo "Inicio de comandos personalizados"
## Si deseas establecer la dirección de correo electrónico 'De' para tu primer registro, descomenta y cambia:
## Después de recibir el primer correo electrónico de registro, vuelve a comentar la línea. Solo necesita ejecutarse una 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 "Fin de comandos personalizados"