Se os logins locais estiverem desativados

Olá,

estou iniciando um fórum, totalmente novo no Discourse, hospedado na DO. Por algum motivo, estou tendo problemas com SMTP ou com a porta. Agora, gostaria de saber se vocês optaram por login com Google ou login social e se não há problema em não ter opção de cadastro/login local no fórum.

O SMTP está bloqueado no DO por padrão. Se você quiser usar e-mail, precisará encontrar um proxy em algum lugar. Muitas pessoas disseram que o Mailgun funciona bem para o Discourse na nuvem, mas isso não é algo com o qual eu tenha experiência.

Isso pode ser o que você está procurando:

Sim, você pode usar login social (Discord, Google, …) ou Discourse ID (sem configuração) sem SMTP. Você perderá os resumos e as notificações por e-mail, mas se seu objetivo for apenas uma comunidade, funcionará bem mesmo com um engajamento menor (os resumos são projetados para ajudar na retenção).

Ótimo, já tentei o SendGrid, Mailgun e Resend. Tenho o mesmo problema, pode ser um problema de porta; tentei todas as portas. Por enquanto, quero verificar se os logins sociais estão funcionando e eliminar os logins locais.

Você pode desativar a configuração do site enable local logins se desejar remover os logins locais. Você também pode tentar o Discourse ID.

Olá @abeen, seja bem-vindo(a) :wave:

Já realizei diversas instalações auto-hospedadas com Mailgun e Resend no DigitalOcean (e em outros servidores de nuvem). Você poderia fornecer mais detalhes sobre o problema que está enfrentando? Você está editando seu app.yml com as configurações apropriadas? Assumo que se trata de uma instalação padrão?

Para o Resend:

  DISCOURSE_HOSTNAME: <forum.seuforum.etc>
  DISCOURSE_DEVELOPER_EMAILS: <seu-email@enderecoemail.com>
  DISCOURSE_SMTP_ADDRESS: smtp.resend.com
  DISCOURSE_SMTP_PORT: 2525
  DISCOURSE_SMTP_USER_NAME: resend
  DISCOURSE_SMTP_PASSWORD: "xxxx"

Para o Mailgun:

  DISCOURSE_HOSTNAME: <forum.seuforum.etc>
  DISCOURSE_DEVELOPER_EMAILS: <seu-email@enderecoemail.com>
  DISCOURSE_SMTP_ADDRESS: smtp.mailgun.org
  DISCOURSE_SMTP_PORT: 2525
  DISCOURSE_SMTP_USER_NAME: <seu.email.conta.mailgun>
  DISCOURSE_SMTP_PASSWORD: "xxxx"

A DO informa: “Por favor, tome ciência de que, além da porta 25 previamente bloqueada, as portas 465 e 587 foram bloqueadas nos droplets a partir de 6 de março de 2025. Isso visa garantir que os servidores da DigitalOcean não sejam utilizados para envio de e-mails de spam.”

E vejo no painel de administração:
Há 30 trabalhos de e-mail que falharam. Verifique seu app.yml e assegure-se de que as configurações do servidor de e-mail estão corretas. Veja os trabalhos falhados no Sidekiq.

Recriei a API de resend, alterei a porta para 587, tentei também com 2525. Nada está funcionando para mim.

Este é o meu 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 é provavelmente o principal problema que está causando seus erros: você está usando aspas curvas. Arquivos YML não aceitam isso e geralmente quebram. Você precisa usar aspas simples ou duplas retas, como 'senha' ou "senha".
  • você fez uma instalação padrão em um subdomínio ou esta é uma instalação no domínio raiz? Se for o primeiro caso, deveria ser algo como forum.dobato.au ou discourse.dobato.au (verifique o que está configurado no seu servidor de nomes). A menos que você tenha planejado uma instalação no domínio raiz, isso precisa ser corrigido.
  • esta linha é desnecessária, remova-a.
  • embora o Resend suporte essa porta e ela deva funcionar, o padrão é 587.
  • esta linha não é necessária; não há sentido em forçar o correio a iniciar STARTTLS — o correio Ruby subjacente (ActionMailer) usa enable_starttls_auto: true, o que significa que ele atualizará automaticamente a conexão para TLS se o servidor (Resend) suportar. Apague esta linha.

Sua seção correta de app.yml deve ficar assim:

DISCOURSE_HOSTNAME: dobato.au # (verifique isso — pode estar incorreto!)
DISCOURSE_DEVELOPER_EMAILS: meuemail@outlook.com
DISCOURSE_SMTP_ADDRESS: smtp.resend.com
DISCOURSE_SMTP_USER_NAME: resend
DISCOURSE_SMTP_PASSWORD: "re_chave_api_real_aqui" # observe as aspas retas!
DISCOURSE_SMTP_PORT: 587
DISCOURSE_NOTIFICATION_EMAIL: noreply@dobato.au

Arquivos YML são muito rigorosos quanto à sintaxe e ao espaçamento, por isso é importante manter a formatação do arquivo de modelo existente (veja discourse_docker/samples/standalone.yml at main · discourse/discourse_docker · GitHub)

Mas o DigitalOcean bloqueou a porta 587, e é por isso que a 2525 é utilizada.

Ah, esqueci do DO, haha. :woman_facepalming:t2: Eu migrei deles há um tempo. Na minha cabeça, eu estava pensando em Resend e Hetzner. Então, sim, use o 2525 (agora me lembro de ter trocado isso quando migrei também).
edit: corrigi minha postagem. Obrigado, Jakee

Além das excelentes dicas acima, executar rake emails:test (veja Troubleshoot email on a new Discourse install) para mostrar imediatamente o erro provavelmente vai ajudar.

meu site caiu agora. é um site novo com poucos membros, não sei como baixar minhas páginas personalizadas e os membros. não quero usar SMTP de jeito nenhum.

Sinto muito que isso esteja acontecendo com você.

Sim, seu arquivo yml provavelmente está com problemas. Poste o conteúdo completo aqui (sem os endereços de e-mail e senhas). Isso realmente não deveria ser tão difícil para colocar tudo no ar.

Só por curiosidade, qual o tamanho da instância (droplet) que você está usando no DigitalOcean?

Você conseguiu verificar se o seu servidor de nomes (name server) está configurado corretamente?

Olá,

Tenho 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

Não quero usar SMTP. Ao pesquisar o problema com alguns comandos, descobri que o Nginx e o Unicorn não estão em execução.

Por favor, leia com atenção minha postagem anterior aqui. Seu arquivo yml está incorreto.

isso deve funcionar para um fórum não muito ativo. Você tem algum arquivo de swap? Execute free -h no terminal e poste a saída aqui.

curl: (52) Resposta vazia do 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

Que tal o Discourse no Amazon Lightsail? Eles também têm o Amazon SES com SMTP para e-mail.

@abeen Você trocou essas aspas por aspas retas?

Tente usar estas em vez:

"

eu tenho " ", aspas duplas

Entendi. É possível hospedar o Discourse no Lightsail com o SES (alguns usuários aqui fazem isso). Ou você pode tentar a porta 2525, caso ainda não tenha feito. Mas, se quiser evitar essas dores de cabeça com portas, pode migrar para um provedor diferente, como o Hetzner ou o Lightsail.

A reconstrução termina muito rápido com isso… não sei por quê?