تفترض هذه الإرشادات أن لديك تثبيت قياسي مستضاف ذاتيًا. نحن ندعم فقط طريقة التثبيت القياسية هنا، لذا تفترض هذه التعليمات أن لديك تثبيتًا قياسيًا.
تنطبق هذه الإرشادات فقط على مثيلات Discourse المستضافة ذاتيًا. إذا كنت تستخدم خدمة استضافة مُدارة، فإن المكونات الإضافية المتاحة يتم التحكم فيها بواسطة مزود الاستضافة الخاص بك. على سبيل المثال، على الاستضافة الخاصة بنا، تتوفر هذه المكونات الإضافية المحددة حسب مستوى الاستضافة.
اعتبارًا من منتصف عام 2025، تم تجميع العديد من المكونات الإضافية الرسمية الشائعة في نواة Discourse. لم تعد هذه المكونات الإضافية (بما في ذلك Solved و Data Explorer و AI و Assign و Reactions والعديد من المكونات الأخرى) بحاجة إلى التثبيت بشكل منفصل — فهي تأتي مع Discourse ويمكن تمكينها عبر إعدادات الموقع. إذا حاولت إعادة البناء مع وجود مكون إضافي مجمع لا يزال في ملف app.yml الخاص بك، فسترى رسالة HINT تخبرك بإزالته. هذا الدليل مخصص للمكونات الإضافية التي ليست مجمعة مع النواة.
يتطلب هذا البرنامج التعليمي فهم كيفية استخدام مستودعات GitHub، وتحديداً كيفية الحصول على أو نسخ عنوان URL لاستنساخ git وكيفية تعديل ملفات YAML (`.yml`) باستخدام nano عبر الطرفية، وتحديداً كيفية الحفظ والخروج في nano. تتبع ملفات YAML بشدة المسافات البادئة، لذا تأكد من احترامها عند النسخ واللصق وتعديل ملف `.yml` الضروري لمثيل Discourse الخاص بك. استخدم دائمًا المسافات كمسافات بادئة في ملفات .yml، وليس علامات الجدولة.
انسخ عنوان URL لاستنساخ git الخاص بالمكون الإضافي من GitHub.
قم بالوصول إلى ملف `app.yml` الخاص بالحاوية (الموجود في ` /var/discourse/containers/`)
cd /var/discourse
nano containers/app.yml
أضف عنوان URL لمستودع المكون الإضافي إلى ملف `app.yml` الخاص بالحاوية الخاصة بك:
@Discourse، إذا كنت ترغب في تحديث الدليل، فإليك الرمز الذي يعمل:
لاستخدام مفاتيح SSH الخاصة بك للوصول إلى مستودع خاص، اتبع الخطوات التالية:
ضع مفتاح SSH الخاص في /var/discourse/shared/standalone/identity/id_rsa (أو موقع آخر يمكن للحاوية الوصول إليه؛ إذا اخترت موقعًا مختلفًا، فتذكر تحديث المسار في القالب أدناه وفقًا لذلك).
استخدم القالب التالي لإضافة المكونات الإضافية الخاصة بك:
hooks:
after_code:
- exec:
cd: $home/plugins
cmd:
# تعيين الوصول إلى المستودع الخاص
- chown $(whoami) /shared/identity/id_rsa && chmod 600 /shared/identity/id_rsa
- git config --global core.sshCommand "ssh -o StrictHostKeyChecking=no -o IdentitiesOnly=yes -i /shared/identity/id_rsa"
# المكونات الإضافية الخاصة بي
- git clone git@example.com:repo/private-discourse-plugin.git
# إلغاء تعيين الوصول
- git config --global --unset core.sshCommand
لماذا قد يرغب شخص ما في استخدام هذا المقتطف في container/app.ym
gpt-4o:
للإجابة على سؤالك بفعالية، أحتاج إلى فهم السياق المحيط بالمقتطف المحدد في container/app.yml. هل يمكنك تقديم المزيد من التفاصيل أو المقتطف الفعلي الذي تشير إليه؟ بهذه الطريقة، يمكنني أن أقدم لك شرحًا دقيقًا ومفيدًا.
استنساخ مستودع Git خاص يحتوي على مكون إضافي لـ Discourse.
إلغاء تعيين أمر SSH:
- git config --global --unset core.sshCommand
إعادة تعيين تكوين أمر SSH الخاص بـ Git إلى حالته الافتراضية.
متى ولماذا تستخدم هذا المقتطف
المستودعات الخاصة: إذا كان لديك مستودع مكون إضافي خاص لـ Discourse غير متاح للجمهور ويتطلب مصادقة قائمة على مفتاح SSH.
الأتمتة: يساعد هذا البرنامج النصي في أتمتة عملية إعداد الوصول إلى المستودع الخاص، واستنساخه، وضمان إعادة تعيين البيئة بعد ذلك. هذا مفيد لإعدادات النشر المستمر أو توفير الخادم الآلي.
إدارة الأمان: يتعامل مع مفاتيح SSH بأمان (ضبط أذونات الملفات ثم إلغاء تعيين أمر SSH المخصص)، وهو أمر بالغ الأهمية للحفاظ على وضع الأمان أثناء عمليات النشر الآلية.
اعتبارات هامة
تأكد من إدارة مفتاح SSH الخاص بك (id_rsa) بشكل آمن وعدم تعرضه.
تحقق من تعيين الملكية والأذونات بشكل صحيح لسياسات الأمان الخاصة بك.
لمزيد من المعلومات التفصيلية والسياقات حول app.yml والخطافات في Discourse، يمكنك التحقق من وثائق Discourse ذات الصلة.
إذا كانت لديك أي أسئلة أخرى أو كنت بحاجة إلى تفاصيل إضافية حول التكوين، فلا تتردد في السؤال!
مرحباً! يبدو الأمر رائعاً! لكنني لا أعرف كيف يجب أن أتابع بعد الانضمام إلى مجموعة التجربة المجانية! من فضلك، @pfaffman، هل يمكنك مساعدتي؟ أنا أتطلع إلى تثبيت إضافة SAML. سيكون من الرائع اختبار Literate Computing لتثبيتها وتشغيلها!
مقتطف القالب الخاص بي مخصص للحالات التي لا تملك فيها أي وسيلة أخرى للوصول إلى مستودع Git بخلاف مفتاح SSH (على سبيل المثال، مع مستودع Git مستضاف ذاتيًا خلف SSH).
ما كان سيساعدني هو لو قالت هذه التعليمات شيئًا مثل، “يا غبي! لا تقم بتشغيل الأمر git clone من الواجهة. فقط أضف الأمر إلى ملف app.yml وفقًا للمثال، وتأكد من أن المسافات البادئة صحيحة، واحفظه، ثم قم بتشغيل أمر إعادة البناء.”
يمكن أن تكون هذه التعليمات أوضح أيضًا عندما تكون -E -u ضرورية ومتى لا تكون كذلك.
لقد قمت ببعض الأشياء الغبية الأخرى أيضًا قبل أن أنجح. عندما أنظر إلى التعليمات الآن، فإنها منطقية بشكل شبه مثالي. لكنني وقعت في العديد من الأخطاء التي ربما كان يمكنني تجنبها لو تمت كتابة هذه التعليمات مع الأخذ في الاعتبار المبتدئين مثلي الذين سيحاولون اتباعها.
إعادة البناء هي الطريقة الوحيدة لتثبيت الإضافات. تدمير وبدء الاستخدام فقط باستخدام التكوين القديم.
ولكن لا تدمير أي شيء قبل إعادة البناء. لأنه إذا فشل إعادة البناء يمكنك وضع القديم على الإنترنت باستخدام الأمر start.
هل لديك إعداد حاوية واحدة، أليس كذلك؟ إذن ذلك المنتدى سيكون غير متصل، لأن إعادة البناء الأولى ستوقف الحاوية الخاصة بك. ونعم، يستغرق الأمر وقتًا طويلاً لإعادة البناء.
يوجد إعداد حاويتين، ثم يكون وقت غير متصل لبضع دقائق. ولكن لا تنتقل إليه قبل أن تكون مرتاحًا مع هذه العمليات الأساسية.