Проблемы с Discourse 3.5.0.beta2-dev — SMTP и фоновые задачи

У меня по-прежнему возникают трудности с установкой Discourse. Вот ещё один отчёт, составленный ChatGPT. Я считаю, что он точно отражает мой опыт.

Отчёт: Проблемы с установкой Discourse и отсутствием службы Sidekiq

Контекст:
Мы попытались выполнить чистую установку Discourse на экземпляре Vultr, намереваясь создать стабильную и рабочую развёрнутую систему. Однако мы столкнулись с серьёзными проблемами, особенно с отсутствием служб, таких как Sidekiq, что препятствовало доставке электронной почты и фоновой обработке задач.


Краткое описание encountered проблем

  1. Установлена неожиданная версия
  • Вместо ожидаемой v3.4.0.beta4-dev установка по умолчанию перешла на tests-passed, загрузив потенциально нестабильную версию.
  • Файл VERSION отсутствовал, поэтому не было ясно, какая именно версия была установлена.
  1. Отсутствует служба Sidekiq
  • Директория /etc/service/sidekiq отсутствовала внутри контейнера Discourse.
  • Это привело к тому, что все фоновые задачи (электронная почта, уведомления, запланированные задачи) не выполнялись.
  1. Проблемы с репозиторием Git Discourse
  • Запуск команды git rev-parse --abbrev-ref HEAD внутри контейнера вернул tests-passed, что подтверждает установку нежелательной версии.
  • Git выдал ошибку “detected dubious ownership” (обнаружено сомнительное владение), потребовав ручного вмешательства (git config --global --add safe.directory /var/www/discourse).
  1. Возможные проблемы с зависимостями
  • Даже если будет проверена более старая версия Discourse, существует опасение, что во время установки могут быть подтянуты новые зависимости (Ruby, Redis, Sidekiq), что потенциально вызовет проблемы совместимости.
  • Если зависимости Discourse не зафиксированы правильно, установка может вести себя непоследовательно в разных средах.
  1. Ограничение скорости выдачи SSL-сертификатов
  • Попытка получить новый SSL-сертификат Let’s Encrypt не удалась из-за превышения лимита скорости.
  • Это привело к тому, что Nginx не смог запуститься, так как не смог загрузить ожидаемый файл сертификата.

План следующих шагов

  1. Полная очистка и повторная установка
  • Полностью удалить /var/discourse и заново клонировать репозиторий.
  • Вручную проверить стабильную версию (например, v3.4.1) перед запуском установки.
  • Использовать ./discourse-setup вместо полагания на параметры по умолчанию, чтобы обеспечить правильные настройки.
  1. Обеспечить установку Sidekiq
  • Перед пересборкой убедиться, что служба sidekiq правильно включена в процесс сборки.
  • Если Sidekiq отсутствует после пересборки, вручную проверить его установку с помощью команды bundle list | grep sidekiq.
  1. Зафиксировать зависимости на стабильных версиях
  • Избежать проблем, связанных с зависимостями, явно используя известный стабильный образ Docker Discourse (например, discourse/discourse:2.0.20240101).
  • Зафиксировать версии gem-пакетов внутри контейнера (bundle install --deployment --without test development).
  1. Повторить попытку выпуска SSL-сертификата
  • Дождаться сброса лимита скорости Let’s Encrypt и повторить попытку генерации SSL-сертификата.
  • Если проблемы сохранятся, рассмотреть возможность временного использования самоподписанного сертификата для устранения неполадок.

Запрос обратной связи

Учитывая эти трудности, мы были бы признательны за мнение команды Discourse и сообщества по следующим вопросам:

  • Отсутствие Sidekiq в /etc/service/ при чистой установке – Столкнулся ли кто-нибудь ещё с этой проблемой?
  • Лучшие практики обеспечения стабильности зависимостей – Есть ли рекомендуемый способ фиксации версий зависимостей для установок Discourse?
  • Возможные проблемы с установкой tests-passed по умолчанию – Может ли быть проблема с тем, как версии извлекаются?

Любые insights будут полезны перед тем, как мы приступим к повторной установке. Заранее спасибо!