Si los inicios de sesión locales están desactivados

Hola,

estoy iniciando un foro, soy completamente nuevo en Discourse, alojado en DO. Por alguna razón, tengo problemas con SMTP o con el puerto. Ahora, quería saber si optaste por iniciar sesión con Google o con redes sociales, y si no hay problema con que no haya registro o inicio de sesión local en tu foro.

SMTP está bloqueado en DO por defecto. Si quieres usar correo, necesitarás encontrar un proxy en algún lugar. Mucha gente ha dicho que Mailgun funciona bien para Discourse en la nube, pero no tengo experiencia con eso.

Esto podría ser lo que buscas:

Sí, puedes usar el inicio de sesión social (Discord, Google, …) o Discourse ID (sin configuración) sin SMTP. Perderás los resúmenes y las notificaciones por correo, pero si tu objetivo es solo tener una comunidad, funcionará bien incluso con una participación más baja (los resúmenes están diseñados para ayudar a la retención).

Genial, he probado SendGrid, Mailgun y Resend. Tengo el mismo problema; podría ser un problema de puerto, he probado todos los puertos. Por ahora, quiero ver si los inicios de sesión sociales funcionan bien y eliminar los inicios de sesión locales.

Puedes desactivar la configuración del sitio enable local logins si deseas eliminar los inicios de sesión locales. También puedes probar Discourse ID.

Hola @abeen, ¡bienvenido! :wave:
He realizado numerosas instalaciones autoalojadas con Mailgun y Resend en DigitalOcean (y otros servidores en la nube). ¿Podrías darnos más información sobre el problema que estás encontrando? ¿Estás editando tu app.yml con la configuración adecuada? Asumo que se trata de una instalación estándar.

Para Resend:

  DISCOURSE_HOSTNAME: <forum.yourforum.etc>
  DISCOURSE_DEVELOPER_EMAILS: <tu-email@direccion.com>
  DISCOURSE_SMTP_ADDRESS: smtp.resend.com
  DISCOURSE_SMTP_PORT: 2525
  DISCOURSE_SMTP_USER_NAME: resend
  DISCOURSE_SMTP_PASSWORD: "xxxx"

Para Mailgun:

  DISCOURSE_HOSTNAME: <forum.yourforum.etc>
  DISCOURSE_DEVELOPER_EMAILS: <tu-email@direccion.com>
  DISCOURSE_SMTP_ADDRESS: smtp.mailgun.org
  DISCOURSE_SMTP_PORT: 2525
  DISCOURSE_SMTP_USER_NAME: <tu.cuenta.mailgun@email.com>
  DISCOURSE_SMTP_PASSWORD: "xxxx"

DO dice: «Por favor, tenga en cuenta que, además del puerto 25 previamente bloqueado, los puertos 465 y 587 han sido bloqueados en los droplets a partir del 6 de marzo de 2025. Esto es para asegurar que los servidores de DigitalOcean no se utilicen para enviar correos electrónicos no deseados».

Y veo en el panel de administración:
Hay 30 trabajos de correo electrónico que fallaron. Verifique su archivo app.yml y asegúrese de que la configuración del servidor de correo sea correcta. Vea los trabajos fallidos en Sidekiq.

Recreé la API de resend, cambié el puerto al 587, probé también con el 2525. Nada funciona para mí.

Este es mi archivo yaml:


LC_ALL: en_US.UTF-8
LANG: en_US.UTF-8
LANGUAGE: en_US.UTF-8
DISCOURSE_HOSTNAME: dobato.au
DISCOURSE_DEVELOPER_EMAILS: myemail@outlook.com
DISCOURSE_SMTP_ADDRESS: smtp.resend.com
DISCOURSE_SMTP_USER_NAME: resend
DISCOURSE_SMTP_PASSWORD: «re_my password here»
DISCOURSE_SMTP_PORT: 2525
DISCOURSE_SMTP_ENABLE_START_TLS: true
DISCOURSE_NOTIFICATION_EMAIL: noreply@dobato.au
DISCOURSE_SMTP_DOMAIN: dobato.au
  • este es probablemente el problema principal que te está causando dificultades: estás usando comillas curvas. Los archivos YAML no las soportan y suelen causar errores. Debes usar comillas simples o dobles rectas como 'password' o "password".
  • ¿realizaste una instalación estándar en un subdominio o es una instalación en el dominio raíz? Si es lo primero, debería ser algo como forum.dobato.au o discourse.dobato.au (verifica lo que tienes configurado en tu servidor de nombres). A menos que hayas tenido la intención de instalar en el dominio raíz, esto necesita corrección.
  • esta línea es innecesaria; elimínala.
  • aunque Resend lo soporta y debería funcionar, el estándar es 587.
  • esta línea no es necesaria; no tiene sentido forzar al sistema de correo a iniciar STARTTLS. El gestor de correo Ruby subyacente (ActionMailer) utiliza enable_starttls_auto: true, lo que significa que actualizará automáticamente la conexión a TLS si el servidor (Resend) lo soporta. Elimina esta línea.

Tu sección correcta de app.yml debería verse así:

DISCOURSE_HOSTNAME: dobato.au # (verifica esto; ¡podría ser incorrecto!)
DISCOURSE_DEVELOPER_EMAILS: myemail@outlook.com
DISCOURSE_SMTP_ADDRESS: smtp.resend.com
DISCOURSE_SMTP_USER_NAME: resend
DISCOURSE_SMTP_PASSWORD: "re_actual_api_key_here" # ¡fíjate en las comillas rectas!
DISCOURSE_SMTP_PORT: 587
DISCOURSE_NOTIFICATION_EMAIL: noreply@dobato.au

Los archivos YAML son muy estrictos con la sintaxis y los espacios, por lo que es importante conservar el formato del archivo de plantilla existente (consulta discourse_docker/samples/standalone.yml at main · discourse/discourse_docker · GitHub).

Pero DigitalOcean ha bloqueado el puerto 587, y por eso se utiliza el 2525.

oh, se me olvidó DO, jaja. :woman_facepalming:t2: los dejé hace un tiempo. En mi cabeza estaba pensando en Resend y Hetzner. Así que sí, usa 2525 (ahora recuerdo que cambié eso cuando también migré).
edición: arreglé mi publicación. Gracias, Jakee.

Junto con el excelente consejo anterior, ejecutar rake emails:test (consulta Troubleshoot email on a new Discourse install) para mostrar inmediatamente el error probablemente te ayudará.

Mi sitio se ha caído ahora. Es un sitio nuevo con pocos miembros, no estoy seguro de cómo descargar mis páginas personalizadas y miembros. No quiero usar SMTP en absoluto.

Lamento que te esté ocurriendo esto.

Sí, es probable que tu archivo yml esté roto. Publica todo aquí (sin las direcciones de correo electrónico y las contraseñas). Realmente no debería ser tan difícil ponerlo en marcha.

Solo por curiosidad, ¿qué tamaño de droplet en DigitalOcean estás usando?

¿Has podido configurar si tu servidor de nombres está correctamente configurado?

Hola,

Tengo Basic / 1 vCPU / 2 GB de RAM / 50 GB de disco

env:
LC_ALL: en_US.UTF-8
LANG: en_US.UTF-8
LANGUAGE: en_US.UTF-8
DISCOURSE_HOSTNAME: dobato.au
DISCOURSE_DEVELOPER_EMAILS: ``myemail@outlook.com
DISCOURSE_SMTP_ADDRESS: ``smtp.resend.com
DISCOURSE_SMTP_USER_NAME: resend
DISCOURSE_SMTP_PASSWORD: „re_mypassword“
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_ENABLE_START_TLS: true
DISCOURSE_NOTIFICATION_EMAIL: noreply@dobato.au
DISCOURSE_SMTP_DOMAIN: dobato.au
DISCOURSE_SMTP_AUTHENTICATION: login
DISCOURSE_SMTP_FROM_ADDRESS: noreply@dobato.au
UNICORN_WORKERS: 4

No quiero usar SMTP. Al buscar el problema en Google con algunos comandos, aparece que Nginx y Unicorn no se están ejecutando.

Por favor, lee cuidadosamente mi publicación anterior aquí. Tu archivo YAML es incorrecto.

Esto debería funcionar para un foro no muy activo. ¿Tienes algún archivo de intercambio? Ejecuta free -h en la línea de comandos y publica la salida aquí.

curl: (52) Respuesta vacía del servidor
root@dobato:~# free -h
total used free shared buff/cache available
Mem: 1.9Gi 201Mi 1.2Gi 4.0Mi 507Mi 1.6Gi
Swap: 2.0Gi 0B 2.0Gi

¿Qué tal Discourse en Amazon Lightsail? También tienen Amazon SES SMTP para correo electrónico.

@abeen ¿Has cambiado estas por comillas rectas?

Prueba a usar estas en su lugar:

"

tengo « ", signo de doble comilla

Entiendo. Es posible alojar Discourse en Lightsail con SES (algunos usuarios aquí lo hacen). O podrías probar el puerto 2525 si aún no lo has hecho. Pero si quieres evitar estos dolores de cabeza con los puertos, podrías cambiar a un proveedor diferente, como Hetzner o Lightsail.

La reconstrucción termina demasiado rápido con esto… no sé por qué.