Я запускаю форум, я совершенно новичок в Discourse, хостинг на DO. По какой-то причине возникла проблема с SMTP или портом. Теперь хотел бы узнать, использовали ли вы вход через Google или другие социальные сети, и нет ли проблем, если в вашем форуме отключена локальная регистрация/вход.
По умолчанию SMTP заблокирован на DO. Если вы хотите использовать почту, вам понадобится найти прокси. Многие отмечали, что Mailgun хорошо работает с Discourse в облаке, но у меня нет опыта работы с ним.
Возможно, это то, что вам нужно:
Да, вы можете использовать социальный вход (Discord, Google и др.) или Discourse ID (без настройки) без SMTP. Вы потеряете дайджесты и уведомления по электронной почте, но если ваша цель — просто сообщество, это будет работать нормально, даже при более низкой вовлечённости (дайджесты созданы для повышения удержания).
Отлично, я пробовал SendGrid, Mailgun и Resend. Проблема та же — возможно, дело в портах, перепробовал все. Сейчас хочу проверить, работают ли социальные логины, и отказаться от локальной авторизации.
Вы можете отключить настройку сайта enable local logins, если хотите убрать возможность входа через локальные учётные записи. Вы также можете ознакомиться с Discourse ID.
Привет, @abeen, добро пожаловать
Я делал множество установок с самохостингом с использованием Mailgun и Resend на DigitalOcean (и других облачных серверах) — не могли бы вы предоставить больше информации о возникающей проблеме? Вы редактируете свой app.yml с соответствующими настройками? Я предполагаю, что это стандартная установка?
DO сообщает: «Сообщаем, что, помимо ранее заблокированного порта 25, с 6 марта 2025 года на droplets также заблокированы порты 465 и 587. Это сделано для того, чтобы серверы DigitalOcean не использовались для отправки спам-писем».
В панели администратора я вижу, что 30 задач по отправке писем не выполнились. Проверьте ваш файл app.yml и убедитесь, что настройки почтового сервера указаны верно. Посмотрите невыполненные задачи в Sidekiq.
Я воссоздал API сервиса Resend, изменил порт на 587, пробовал также порт 2525. Ничего не работает.
это, вероятно, основная проблема, вызывающая у вас трудности: вы используете фигурные кавычки. Файлы YAML их не принимают и обычно ломаются. Вам нужно использовать одинарные или двойные прямые кавычки, например 'пароль' или "пароль".
вы устанавливали стандартную версию на поддомене или это установка на корневом домене? Если первое, то должно быть что-то вроде forum.dobato.au или discourse.dobato.au (проверьте, что указано в вашем nameserver). Если вы не планировали установку на корневом домене, это нужно исправить.
эта строка излишня, удалите её.
хотя Resend поддерживает этот порт, и он должен работать, стандартом является 587.
эта строка не нужна; нет смысла заставлять почтовый клиент принудительно начинать STARTTLS — базовый Ruby-клиент (ActionMailer) использует enable_starttls_auto: true, что означает автоматическое обновление соединения до TLS, если сервер (Resend) его поддерживает. Удалите эту строку.
Ваш правильный раздел app.yml должен выглядеть так:
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_actual_api_key_here" # обратите внимание на прямые кавычки!
DISCOURSE_SMTP_PORT: 587
DISCOURSE_NOTIFICATION_EMAIL: noreply@dobato.au
Ой, я забыл про DO, лол. Я перешёл с них довольно давно. В голове я думал о Resend и Hetzner. Так что да, используй 2525 (я теперь вспомнил, что сменил это при миграции).
edit: Я исправил свой пост. Спасибо, Jakee
Мой сайт сейчас упал. Это новый сайт с небольшим количеством участников, не уверен, как скачать мои пользовательские страницы и данные участников. Совсем не хочу использовать SMTP.
Да, ваш файл yml, скорее всего, повреждён. Опубликуйте его полностью здесь (но без адресов электронной почты и паролей). На самом деле запуск не должен быть таким сложным.
Просто из любопытства: какой размер droplet вы используете в DigitalOcean?
Удалось ли вам проверить, правильно ли настроен ваш сервер имён?
этого должно быть достаточно для форума с небольшой нагрузкой. Есть ли у вас вообще файл подкачки? Выполните команду free -h в командной строке и опубликуйте результат здесь.
Понятно. Размещение Discourse на Lightsail с использованием SES возможно (некоторые пользователи здесь так делают). Или вы можете попробовать порт 2525, если ещё не пробовали. Но если вы хотите избежать проблем с портами, можно перейти на другого хостинг-провайдера, например Hetzner или Lightsail.