Я новичок в Ruby и Docker, но имею опыт разработки в других областях. У меня уже работают экземпляры Discourse: один для разработки, другой для продакшена, так что зависимости, похоже, выполнены. Я хотел бы добавить функциональность OAuth 2.0 для no-reply@discourse.example.com, чтобы отправлять уведомления через учётную запись Google Workspace.
Прошу вашей помощи в следующем:
Как создать образ Docker из репозитория Discourse на Git?
В какой части кода реализована аутентификация SMTP для no-reply и отправка уведомлений?
Если всё получится, я хотел бы сделать эту возможность выбираемой в скрипте ./discourse-setup, чтобы веб-мастер мог настроить OAuth 2.0 для большинства почтовых провайдеров, а в случае с Google — автоматически использовать OAuth 2.0. Если это будет полезно, я могу отправить результат на рецензию.
Спасибо за быстрый ответ. Я бы использовал скрипт ./discourse-setup, однако мне нужно настроить Discourse как OAuth-клиент, а не как SMTP-клиент, поэтому сначала мне нужно добавить изменения в исходный код. Я не могу найти исходный код Discourse в репозитории discourse_docker. Как я могу изменить исходный код Discourse, а затем запустить скрипт ./discourse-setup? Если вы не рекомендуете использовать ./launcher, я готов отказаться от этого варианта.
В настоящее время у меня есть репозитории discourse и discourse_docker.
Вы имеете в виду SMTP с аутентификацией OAuth вместо базовой аутентификации? Или вы ищете способ отправки почты через другой канал?
Discourse не поддерживает аутентификацию SMTP через OAuth, поэтому самый простой подход — настроить Discourse так, чтобы он передавал электронную почту локальному почтовому серверу, который настроен на отправку писем с необходимой аутентификацией.
Поддерживаемый Google механизм для этого выглядит так:
Я имею в виду, что в моём случае Discourse должен подключаться к почтовому провайдеру через OAuth 2, а не через SMTP. К сожалению, я обнаружил, что мои письма, скорее всего, попадают в спам, если не использовать крупного почтового провайдера, поэтому я решил добавить аутентификацию OAuth 2 для учётной записи no-reply, используемой Discourse, и подключиться к Google Workspace. Я также пробовал Mailgun, однако мне потребовалась бы поддержка IMAP (для других учётных записей пользователей, а не для no-reply). У меня есть время, я могу поиграть с этим, мне нужна лишь небольшая помощь на старте (и, возможно, ещё позже).
Обычно вы настраиваете какой-либо сервис транзакционной почты для отправки с адреса noreply@forum.example.com, а Mail-Receiver получает отправленные ему письма и передаёт их в Discourse.