لماذا لا يمكنني تثبيت الإضافات محليًا؟

أنا أستخدم أحدث إصدار من Discourse، وقد جربت تثبيت الإضافات الصالحة في الدليل /var/discourse/plugins. أنسخ مجلدات الإضافات إلى هناك، لكنها لا تُثبَّت أبدًا، وبشكل واضح، فأنا دائمًا أستخدم ./launcher rebuild app. الطريقة الوحيدة التي أستطيع بها تثبيتها هي عبر استخدام app.yml.

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

ربما يُفضل إعداد بيئة تطوير بدلاً من موقع الإنتاج؟ يمكنك استنساخ المستودعات مباشرة إلى مجلد plugins. علاوة على ذلك، لن يؤثر ذلك على البيانات في موقع الإنتاج ولن يتسبب في توقف الخدمة أمام المستخدمين عند إعادة البناء. راجع Discourse Meta - أدلة التثبيت للتطوير لمعرفة جميع المواضيع حول كيفية إعداد بيئة تطوير.

هل يتم حظر تثبيت الإضافات المحلية في بيئة الإنتاج؟ وهل من الممكن تحويل بيئة الإنتاج إلى بيئة تطوير دون الحاجة إلى إعادة كل شيء من الصفر؟

ربما يمكنك أخذ نسخة احتياطية من بيئة الإنتاج (PRD) واستعادتها محليًا؟

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

ليس “محظورًا” بل ببساطة لا يعمل.

كما ذكر نيت، فإن أفضل مسار هو إعداد بيئة تطوير محلية، أو الاستمرار في استخدام app.yml إذا فضلت ذلك.

ولماذا يُعدّ من الممارسات القياسية جعل شفرة المصدرية عامة عند تثبيت الإضافات في بيئة الإنتاج؟ هل يعني ذلك أن Discourse لا تسمح بإضافات خاصة؟ حتى المستودع الذي يحتوي على رمز وصول يبقى إضافة عامة على المنصة المستضافة عليها (مثل GitHub أو GitLab وما إلى ذلك).

لا يزال المستودع الخاص على GitHub أو GitLab خاصًا. الرمز هو مجرد كلمة مرور تتيح للخادم استنساخه. لا يمكن لأي شخص آخر رؤية الكود. يظل الكود خاصًا.

راجع القسم المتعلق بالمستودعات الخاصة في Install plugins on a self-hosted site

استخدم إعداد تطوير محلي لاختبار الإضافات. dev-install

وإلا، فستضطر إلى إعادة بناء الإنتاج بالكامل في كل مرة تقوم فيها بتعديل الإضافات، وهو ما يُعد إهدارًا للوقت، خاصةً وأن الفريق قلل مؤخرًا من وقت بناء إصدارات التطوير إلى بضع ثوانٍ فقط.

قم باستنساخ الإضافات في ~/code أو ما يعادلها، ثم يمكنك إنشاء روابط رمزية لها من مجلد الإضافات.