Ну, это действительно проблема сети, так как мой сервер находится в Китае.
Я нашел решения, копирую их сюда на китайском языке:
Установка Discourse в условиях Китая 在国内环境下安装Discourse - 主页 - 第 页 - IzIy's Files - MyPress - MyPre.Cn
Обновление версий и обслуживание Discourse осуществляется через GitHub, при этом сам Discourse написан на Ruby.
При использовании CVM и легких серверов от Tencent Cloud, а также ECS от Alibaba Cloud, наблюдается медленный доступ к зарубежным сайтам. Это связано с ограничениями трафика, введенными для поддержки внутренних репозиториев Git.
При клонировании Discourse, размещенного на GitHub, можно ускорить доступ к GitHub, заменив github.com на github.com.cnpmjs.org в ссылке для клонирования. Например:
Замените git clone https://github.com/discourse/discourse_docker.git на git clone https://github.com.cnpmjs.org/discourse/discourse_docker.git.
Кроме того, при запуске ./discourse-setup установщик также устанавливает в Docker некоторые дополнительные проекты.
Например, gem update также требует добавления зеркала Ruby.
Это можно сделать, изменив файлы конфигурации, чтобы добавить адрес зеркала Ruby. Основные затронутые файлы:
discourse/templates/web.template.yml
discourse/containers/app.yml
Перед строками, вызывающими gem update в указанных выше файлах, добавьте следующие команды для настройки зеркала:
gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/
gem update bundler
Для bundle можно добавить зеркало с помощью команды bundle config mirror.https://rubygems.org https://gems.ruby-china.com.
Основные изменения выглядят следующим образом:
diff --git a/templates/web.template.yml b/templates/web.template.yml
index 28fb22d..bb0010c 100644
--- a/templates/web.template.yml
+++ b/templates/web.template.yml
@@ -86,6 +86,9 @@ run:
cd: $home
hook: code
cmd:
+ - git remote -v
+ - git remote set-url origin https://github.com.cnpmjs.org/discourse/discourse.git
+ - gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/
- git reset --hard
- git clean -f
- git remote set-branches --add origin master
@@ -145,6 +148,7 @@ run:
hook: web
cmd:
# ensure we are on latest bundler
+ - gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/
- gem update bundler
- find $home ! -user discourse -exec chown discourse {} \+
@@ -152,6 +156,9 @@ run:
cd: $home
hook: bundle_exec
cmd:
+ - su discourse -c 'gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/'
+ - su discourse -c 'gem update bundler'
+ - su discourse -c 'bundle config mirror.https://rubygems.org https://gems.ruby-china.com'
- su discourse -c 'bundle install --deployment --retry 3 --jobs 4 --verbose --without test developme
- exec:
...skipping...
Вопросы настройки почты
Форуму обычно требуется почтовый сервер для отправки различных кодов подтверждения, сообщений о входе, сброса пароля и уведомлений.
Бесплатный корпоративный почтовый сервис NetEase (ym.163.com) может удовлетворить эту потребность. Также можно использовать SMTP-сервис QQ-почты, либо приобрести платный почтовый сервис.
Бесплатный корпоративный почтовый сервис NetEase по умолчанию включает SMTP. Ниже приведен пример настройки app.yml. Похоже, что Discourse не поддерживает подключение через SSL, поэтому здесь используется обычный SMTP. Обратите внимание, что функцию start_tls необходимо явно отключить.
DISCOURSE_SMTP_ADDRESS: smtp.ym.163.com
DISCOURSE_SMTP_PORT: 25
DISCOURSE_SMTP_USER_NAME: mail@getblog.cn
DISCOURSE_SMTP_PASSWORD: "password"
DISCOURSE_SMTP_ENABLE_START_TLS: false # (опционально, по умолчанию true)
DISCOURSE_SMTP_DOMAIN: getblog.cn # (требуется некоторыми провайдерами)
Кроме того, почта администратора сайта не должна совпадать с DISCOURSE_SMTP_USER_NAME, иначе вы можете не получать письма регистрации.
Установка системы форума Discourse через Docker (Nginx)
Если вы находитесь в материковом Китае, необходимо использовать ускорение через зеркала. Найдите блок templates в файле конфигурации и добавьте китайское зеркало templates/web.china.template.yml:
templates:
- "templates/postgres.template.yml"
- "templates/redis.template.yml"
- "templates/sshd.template.yml"
- "templates/web.template.yml"
- "templates/web.china.template.yml"