🇨🇳 دليل تثبيت Discourse الرسمي | تثبيت منصة Discourse السحابية

تمت ترجمة هذه الوثيقة بناءً على المحتوى الموجود في الصفحة: discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub

نُشر النص الأصلي للترجمة في: https://www.isharkfly.com/t/discourse/13590، ونرحب بمشاركتكم في النقاش.

تثبيت منصات السحابة

عادةً لا يتجاوز تثبيت Discourse على منصات السحابة 30 دقيقة، حتى لو لم تكن تمتلك أي معرفة بـ Rails أو Linux shell، يمكنك إكمال التثبيت بنجاح. فيما يلي نوضح عملية التثبيت عبر مزود خدمة DigitalOcean، ولكن جميع خطوات التثبيت يمكن تنفيذها على أي منصة سحابية متوافقة مع Docker، كما يمكن أيضًا إكمال التثبيت على خوادم محلية.

:bell: هل لا تملك حتى 30 دقيقة؟ يمكنك الاتصال بمجتمع Discourse لمساعدتك في إكمال التثبيت، حيث ستقوم بمجتمع Discourse بفرض رسوم لمرة واحدة قدرها 150 دولارًا أمريكيًا. اضغط هنا لزيارة صفحة شراء الخدمة.

التحضيرات قبل البدء

اسم النطاق (Domain)

:bell: لا يمكن لـ Discourse العمل عبر عنوان IP؛ يجب أن تمتلك اسم نطاق أو نطاقًا فرعيًا لإجراء التثبيت، مثل example.com.

  • إذا كنت تمتلك بالفعل اسم نطاق، فيمكنك اختيار أي نطاق فرعي لإجراء التثبيت، مثل discourse.example.com أو talk.example.com أو forum.example.com لتثبيت مثيل Discourse الخاص بك.
  • إذا لم يكن لديك اسم نطاق بعد، يمكنك زيارة موقع NameCheap للبحث عن اسم النطاق الذي تفضله، أو ببساطة البحث عبر Google عن أفضل مسجلي أسماء النطاقات لاختيار مسجل النطاقات الذي تفضله.
  • يجب أن يكون لديك إمكانية الوصول إلى لوحة تحكم DNS الخاصة بك. بعد شراء اسم النطاق، ستحتاج إلى الدخول إلى إعدادات DNS الخاصة بك لتكوينها. بالنسبة لموقع Discourse الذي ستقوم بتثبيته، ستحتاج إلى إنشاء سجل A عبر نظام DNS الخاص بك، ويجب أن يشير هذا السجل إلى عنوان IP محدد. عادةً ما يكون هذا عنوان IP للخادم الذي اشتريته في الخطوة الأولى.

البريد الإلكتروني

:warning: نظام البريد الإلكتروني بالغ الأهمية في عملية إنشاء المستخدمين على Discourse. إذا لم تقم بإنشاء خادم SMTP للبريد الإلكتروني قبل تثبيت Discourse، فلن تتمكن من الوصول إلى الموقع أو تسجيل الدخول (سيكون موقعك معطلًا)!

  • إذا كان لديك بالفعل خادم بريد SMTP خاص بك، فيمكنك استخدام معلومات تكوين خادم البريد الموجودة لديك مباشرة.
  • لا تملك خادم بريد بعد؟ يرجى زيارة خوادم البريد الموصى بها من قبل Discourse.
  • لضمان تسليم رسائل البريد الإلكتروني بشكل صحيح، يجب عليك إضافة سجلات SPF و DKIM صالحة في نظام DNS الخاص بك. يرجى زيارة مستندات مقدم خدمة البريد الإلكتروني الخاص بك لمعرفة كيفية إعداد هذه المعلومات.

بناءً على خبرتنا العملية، يجب تكوين اسم نطاق صالح وخادم بريد إلكتروني لتثبيت Discourse. في حالة الصين، يمكنك استخدام البريد الإلكتروني المؤسسي المقدم من علي بابا كلاود أو تينسنت كلاود. عادةً ما نوصي باستخدام خوادم بريد إلكتروني خارج الصين، مثل خدمة SES من AWS أو MailGun، وهما خدمات ممتازة، وقد تحتاج إلى بطاقة ائتمان دولية لإكمال التحقق. لكن هذه الخطوة ضرورية، وإلا فلن يكتمل تثبيت Discourse الخاص بك.

التثبيت

إنشاء خادم سحابي جديد

قم بإنشاء خادم سحابي جديد، على سبيل المثال: DigitalOcean، ويمكنك بالطبع استخدام خوادم من منصات أخرى.

إذا اخترت خادمًا يقع داخل البر الرئيسي للصين، فمن المرجح أن تواجه بعض مشاكل الشبكة. تمت إضافة قسم إضافي في هذه الترجمة لحل مشاكل الشبكة.

  • التكوين الافتراضي نظام تشغيل Ubuntu LTS الإصدار الحالي يعمل بشكل جيد. الحد الأدنى المطلوب هو نظام تشغيل Linux من 64 بت، ويجب تحديث نواة هذا النظام إلى أحدث إصدار.
  • التكوين الافتراضي 1 جيجابايت من الذاكرة العشوائية (RAM) يعمل بشكل جيد عادةً لمجتمعات Discourse الصغيرة. لكننا نوصي باستخدام 2 جيجابايت من الذاكرة للمجتمعات الكبيرة.
  • التكوين الافتراضي مركز بيانات نيويورك يعتبر منطقة جغرافية جيدة لأمريكا الشمالية وأوروبا. إذا كان مستخدمو Discourse الخاصين بك في مواقع جغرافية أخرى، فيمكنك اختيار مركز بيانات أقرب إليك.
  • أدخل اسم النطاق discourse.example.com لإنشاء Droplet (Droplet هو الاسم الذي يمنحه DigitalOcean للخادم) في DigitalOcean. يمكنك بالطبع شراء واستخدام اسم نطاق خاص بك. عادةً ما يتطلب تثبيت Discourse اسم نطاق حقيقي ولا يمكن إجراؤه عبر عنوان IP، لذا نوصي بشراء اسم نطاق أو استخدام نطاق فرعي من اسم نطاق تمتلكه مسبقًا.

إنشاء Droplet الجديد الخاص بك، هذه العملية تعادل إنشاء خادم على DigitalOcean، أو إنشاء VPS أو خادم على منصات أخرى. عند إكمال الإنشاء، ستصلك رسالة بريد إلكتروني تحتوي على كلمة مرور مستخدم Root. لكننا نوصي بإعداد مفاتيح SSH لتعزيز أمان الوصول إلى خادمك.

الوصول إلى خادمك السحابي

استخدم عنوان IP للاتصال والوصول إلى الخادم الذي أنشأته عبر SSH، أو بالنسبة لنظام Windows، يمكنك تثبيت Putty ثم تشغيل الأمر التالي للاتصال:

ssh root@192.168.1.1

إذا لم تقم بتكوين مفتاح SSH، فيمكنك استخدام كلمة المرور الواردة في رسالة البريد الإلكتروني التي أرسلها DigitalOcean لتسجيل الدخول، أو استخدام مفتاح SSH المحلي الخاص بك للاتصال.

تثبيت Docker / Git (اختياري)

sudo apt install docker.io
sudo apt install git

إذا كنت ترغب في استخدام إصدار Docker خاص بك، فيمكنك تثبيته الآن على الخادم الجديد الذي قمت بإعداده. إذا لم يكن Docker مثبتًا افتراضيًا على خادمك، فسيقوم discourse-setup تلقائيًا بتحميله وتثبيته من get.docker.com.

تثبيت Discourse

قم باستنساخ الكود من مستودع تثبيت Discourse Docker الرسمي إلى دليل /var/discourse على جهاز الكمبيوتر المحلي.

sudo -s
git clone https://github.com/discourse/discourse_docker.git /var/discourse
cd /var/discourse

ما عليك سوى تنفيذ الأوامر أعلاه، حيث يتطلب تثبيت Discourse صلاحيات root.

إضافة صور Docker (لخوادم البر الرئيسي للصين فقط)

إذا كان خادمك يقع في البر الرئيسي للصين، فمن المرجح أن تتعثر في خطوة Docker في الخطوات التالية. يرجى محاولة إضافة مرآة لصور Docker.

على سبيل المثال، باستخدام تينسنت كلاود، قم بتحرير ملف /etc/docker/daemon.json على Linux باستخدام محرر نصوص تفضله، وأضف المحتوى التالي. يمكنك تجربة تغيير https://mirror.ccs.tencentyun.com إلى عنوان URL لمرآة Docker المقدم من مورد الخوادم السحابية الخاص بك:

{
   "registry-mirrors": [
   "https://mirror.ccs.tencentyun.com"
  ]
}

بعد إضافة مرآة Docker، أعد تشغيل تطبيق Docker لتطبيق التغييرات باستخدام الأمر sudo systemctl restart docker.

تحرير تكوين Discourse

شغّل أداة التكوين عبر الأمر التالي:

./discourse-setup

ستحتاج إلى تكوين جميع المعلمات بناءً على المطالبات التالية:

Hostname for your Discourse? [discourse.example.com]: 
Email address for admin account(s)? [me@example.com,you@example.com]: 
SMTP server address? [smtp.example.com]: 
SMTP port? [587]: 
SMTP user name? [user@example.com]: 
SMTP password? [pa$word]: 
Let's Encrypt account email? (ENTER to skip) [me@example.com]: 

ستؤدي المدخلات أعلاه إلى إنشاء ملف app.yml لمثيل Discourse الخاص بك، وسيتم استخدام هذا الملف لتكوين مثيل Discourse الخاص بك بعد اكتمال التثبيت. قد تستغرق عملية بدء التثبيت بالكامل من 2 إلى 8 دقائق لتكوين Discourse. إذا حدث خطأ أثناء التثبيت، أو إذا كنت بحاجة إلى تعديل التكوين بعد اكتمال التثبيت، فيمكنك تشغيل أمر ./discourse-setup مرة أخرى (سيقوم هذا الأمر بإعادة تحميل ملف app.yml الموجود). أو يمكنك تحرير محتوى ملف /containers/app.yml يدويًا مباشرة، ثم تشغيل أمر ./launcher rebuild app مرة أخرى، وإلا فلن تسري تعديلاتك.

تحسينات لبيئة الشبكة في الصين

إذا كان خادمك السحابي يقع في البر الرئيسي للصين، فمن المرجح أن تواجه بعض مشاكل الشبكة أثناء تنفيذ ./discourse-setup أو ./launcher rebuild app. لقد قام Discourse بتجهيز خدمات صور بديلة ما عدا Docker، كل ما عليك فعله هو إضافة سطر واحد في ملف containers/app.yml في هذا المكان:

templates:
  - "templates/postgres.template.yml"
  - "templates/redis.template.yml"
  - "templates/web.template.yml"
  - "templates/web.china.template.yml" # أضف هذا السطر لتكوين صور بديلة لمديري الحزم مثل npm و rubygems

سيؤدي ذلك إلى حل المشكلة.

تشغيل Discourse

بمجرد إكمال التكوين الأولي للتثبيت، يجب أن يكون مثيل Discourse الخاص بك قابلاً للوصول عبر المتصفح باستخدام اسم النطاق الذي قمت بتكوينه discourse.example.com.

بالنسبة للخوادم الموجودة في البر الرئيسي للصين، قد تحتاج أولاً إلى إكمال عملية التسجيل (ICP) وفقًا لتوجيهات مورد الخوادم السحابية قبل المضي قدمًا.

تسجيل حساب مدير جديد

استخدم عنوان البريد الإلكتروني الذي أدخلته أثناء عملية التكوين لتسجيل حساب مدير جديد.

(إذا لم تتمكن من تسجيل حسابك الإداري (Admin)، يرجى التحقق من سجلات النظام عبر المسار /var/discourse/shared/standalone/log/rails/production.log، أو زيارة قائمة التحقق من مشاكل البريد الإلكتروني.)

عند الانتهاء من تسجيل حساب المدير، سيقوم معالج الإعداد بالبدء وتوجيهك لتكوين مثيل Discourse الخاص بك.

بعد إكمال جميع خطوات معالج الإعداد، ستشاهد مواضيع الموظفين (Staff topics) و READ ME FIRST: Admin Quick Start Guide. سيحتوي معالج الإعداد هذا على بعض النصائح للإعدادات اللاحقة وكيفية تخصيص مثيل تثبيت Discourse الخاص بك.

الصيانة بعد التثبيت

  • نوصي بشدة بتفعيل التحديثات التلقائية الآمنة لنظام التشغيل الخاص بك. في Ubuntu، استخدم الأمر dpkg-reconfigure -plow unattended-upgrades. في CentOS/RHEL، استخدم حزمة yum-cron.
  • إذا كنت تستخدم تسجيل الدخول بكلمة مرور لنظام التشغيل بدلاً من مفتاح SSH، فتأكد من استخدام كلمة مرور قوية. في Ubuntu، استخدم حزمة apt-get install libpam-cracklib. نوصي باستخدام fail2ban، والذي سيمنع عناوين IP التي فشلت في تسجيل الدخول 3 مرات لمدة 10 دقائق.
    • Ubuntu: apt-get install fail2ban
    • CentOS/RHEL: sudo yum install fail2ban (يتطلب EPEL)
  • إذا كنت ترغب في تثبيت جدار حماية افتراضي، فقم بتفعيل ufw في Ubuntu، أو استخدم firewalld في CentOS/RHEL 7 والإصدارات الأحدث.

عندما يكون هناك إصدار جديد من Discourse، ستتلقى رسالة بريد إلكتروني تحتوي على تنبيه بالتحديث. يرجى تحديث مثيل Discourse الخاص بك إلى أحدث إصدار في أي وقت لضمان إصلاح جميع مشاكل الأمان. ستصلك تذكيرات عبر البريد الإلكتروني عند إصدار إصدارات جديدة من Discourse. يرجى البقاء على اطلاع للحصول على أحدث الميزات وإصلاحات الأمان. لتحديث Discourse إلى أحدث إصدار، يرجى زيارة /admin/upgrade عبر متصفحك ثم النقر فوق زر التحديث.

يُستخدم أمر launcher الموجود في دليل /var/discourse لإجراء بعض عمليات الصيانة على مستوى النظام:

Usage: launcher COMMAND CONFIG [--skip-prereqs] [--docker-args STRING]
Commands:
    start:      Start/initialize a container (بدء/تهيئة حاوية)
    stop:       Stop a running container (إيقاف حاوية قيد التشغيل)
    restart:    Restart a container (إعادة تشغيل حاوية)
    destroy:    Stop and remove a container (إيقاف ثم حذف حاوية)
    enter:      Use nsenter to get a shell into a container (استخدام nsenter للدخول إلى Shell داخل الحاوية)
    logs:       View the Docker logs for a container (عرض سجلات Docker لحاوية)
    bootstrap:  Bootstrap a container for the config based on a template (تهيئة حاوية للتكوين بناءً على قالب)
    rebuild:    Rebuild a container (destroy old, bootstrap, start new) (إعادة بناء حاوية، ستحذف الحاوية القديمة، وتقوم بتهيئة حاوية جديدة، وتشغيلها)
    cleanup:    Remove all containers that have stopped for > 24 hours (حذف جميع الحاويات التي توقفت عن العمل لأكثر من 24 ساعة)

Options:
    --skip-prereqs             Don't check launcher prerequisites (عدم التحقق من متطلبات تشغيل launcher)
    --docker-args              Extra arguments to pass when running docker (معلمات إضافية لتمريرها عند تشغيل docker)
5 إعجابات

الترجمة ممتازة، أحسنت! نأمل أن توفر النسخة الرسمية واجهة للدخول متعدد اللغات.

إعجاب واحد (1)

شكرًا لك.

نحن أيضًا اكتشفنا أن المحتوى الصيني قليل جدًا أثناء استخدام Discourse، لكن منصة Discourse نفسها ممتازة للغاية.

التثبيت يتطلب بعض الصعوبة البسيطة وبعض المتطلبات المسبقة، ولا يمكن تثبيته ببساطة على أي جهاز.

لكن يمكن تجاوز هذه العقبات بشكل جيد عمومًا، لذا فكرنا في تقديم بعض ما تم نشره بالفعل في مؤسستنا إلى النسخة الرسمية.

النسخة الرسمية داعمة ومنفتحة إلى حد كبير، لكننا لا نعرف كيفية عرضها بشكل مناسب، مما جعلها تبدو غير منظمة قليلًا.

بمرور الوقت، سنقوم أيضًا بتقديم بعض مقالاتنا الموجودة حاليًا إلى النسخة الرسمية.

3 إعجابات

كان هناك منتدى صيني في الأصل، ويبدو أنه توقف في بداية العام.

أنا أتذكر أنني رأيت هذا من قبل، واستخدمت بعض مقالاتهم كمرجع أثناء التثبيت.

ربما لم يعد لدى المشرف الأصلي وقت كافٍ لصيانة الموقع، حيث تتطلب صيانة موقع إلكتروني جهدًا كبيرًا وتكاليف مالية.

ونظرًا لأننا لسنا على دراية كافية بـ Discourse، فقد اعتمدنا سابقًا على Discuz. ولكن منذ أن استحوذت Tencent على DISCUZ قبل سنوات عديدة، توقفت عن التحديث، مما أدى إلى تراكم العديد من المشاكل، وأصبح من المستحيل ترقيته.

لذلك فكرنا في البحث عن بديل، واكتشفنا Discourse، وقمنا بتثبيته واستخدامه، وقد أعجبنا به.

لذا قمنا بنشر بعض تجاربنا في قسمنا المخصص: iSharkFly - 飞鲨

مع مرور الوقت، اكتشفنا أن الموارد باللغة الصينية نادرة جدًا، فقررت مشاركة بعض النقاط في الموقع الرسمي.

من الصعب جدًا الحفاظ على استمرار الموقع. :slight_smile:

نأمل أن يستخدم المزيد من الأشخاص Discourse، فكلما زاد عدد المستخدمين، زادت الحيوية، وبالتالي زاد الاهتمام.

إعجاب واحد (1)

@fantasticfears يبدو أن هذا هو مدير الموقع الصيني… لكن آخر زيارة كانت في عام 2019، ولا أعرف ما إذا كان السبب نسيان تجديد خادم الاستضافة أو شيء آخر، فقد اختفى الموقع الصيني فجأة

ربما لم يكن هناك وقت للقيام بذلك.

لا بأس، يمكنك التصفح في المنتدى الرسمي.呵呵.

بالنسبة للمجتمعات الصينية التي يهيمن عليها المستخدمون الصينيون، لا تزال توطين منصة Discourse غير كافية. فبعد كل شيء، تختلف عادات المستخدمين.

هذه حقيقة، فكل من يستخدم طريقة الترجمة عن طريق تعيين السلاسل يواجه هذه المشكلة.

نصوص الترجمة وترتيبها غريبان.

لكن، أجد أن discourse رائع جدًا، خاصةً في رفع المرفقات، فهو مريح للغاية.

المحتوى بصيغة Markdown، ورغم أن ذلك قد يتطلب من المستخدم العادي بعض التعلم، إلا أنه كافٍ.

الأهم من ذلك، أن البيانات والتخزين منفصلان. وهذا يستحق الثناء حقًا: مساحة مرفقات شبه غير محدودة، مع CDN مدمج، ولا داعي للقلق بشأن نسخ المرفقات احتياطيًا. وهذا مثالي لمن يحبون لقطات الشاشة.

إعجاب واحد (1)

قامت مجتمع OSSEZ بتعديل اسم النطاق، وتم نشر هذه المقالة على: Discourse 云平台安装 - Discourse - iSharkFly.

إعجاب واحد (1)

تمت إضافة فصل تحسين بيئة الإنترنت الصينية لك.

3 إعجابات