حسنًا، إنها بالفعل مشكلة شبكة، لأن خادمي موجود في الصين
لقد وجدت الحلول، سأنسخها هنا باللغة الصينية
التثبيت في بيئة محلية في الصين Discoursehttps://my.cn/2021/02/17/Discourcs-setup-on-cvm-ecs/
تتم ترقية وصيانة إصدارات Discourse بناءً على GitHub، و Discourse نفسه مكتوب بلغة Ruby.
هناك مشكلة في بطء الوصول إلى المواقع الخارجية عند استخدام خوادم مثل CVM و Lightweight Server من 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، والملفات الرئيسية المعنية هي 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) تلبية هذا الاحتياج، ويمكن أيضًا استخدام بريد QQ مع تمكين خدمة SMTP، وبالطبع يمكنك أيضًا شراء بريد مدفوع.
يتم تمكين خدمة SMTP افتراضيًا لبريد الشركات المجاني من Netease، وفيما يلي مثال لإعداد 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 # (optional, default true)
DISCOURSE_SMTP_DOMAIN: getblog.cn # (required by some providers)
بالإضافة إلى ذلك، يجب ألا يكون عنوان البريد الإلكتروني لمسؤول الموقع هو نفسه DISCOURSE_SMTP_USER_NAM، وإلا فقد لا تتلقى رسائل التسجيل.
إذا كنت في البر الرئيسي للصين، فستحتاج إلى تسريع المرآة. ابحث عن كتلة 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"