القدرة على تثبيت وإلغاء تثبيت الإضافات مباشرة من واجهة المستخدم الرسومية للمسؤول

It would be super nice to have this…

For big forums, which have high traffic and its not good that forum goes down as i have to do

./launcher rebuild app

Each time i install/uninstall a plugin, this causes my forum to go down for a while and users get frustrated.

It would be nice to have the ability to install/unintsall and rebuild/restart discourse directly from admin GUI.

I do not believe this is possible because of the way plugins are integrated into the resources of the app which needs to be done at build time, especially because some of the plugin elements impact the back end.

Several mitigations:

  1. Customise with Theme Components as much as possible. These can be swapped out and updated online.

  2. Decide on a set of plugins and stick to that list. Why do you need to change the set-up so often?

  3. If you just need to update a plugin use the online upgrade tool.

  4. Schedule the addition of new plugins to when you are forced to do a rebuild because of other fundamental changes in the core app.

11 إعجابًا

The only real recommendation we can give here is to plan in advance. There’s just no substitute for it.

Use a small instance to test and approve any plugin changes you want to make, then schedule a window each week or month to roll up all those changes on your live site.

That way your users won’t be significantly impacted by such activities, and you will significantly reduce the risk of additional downtime due to compatibility issues.

4 إعجابات

With a setup having multiple web containers, downtime during a rebuild can certainly be avoided by rebuilding / deploying one web container at a time.

5 إعجابات

I’m sorry @Faizan_Zahid , but you could really do better on that title. Maybe you meant “plugins” and not “Discourse”. Here I was expecting someone who was asking for a feature to remove Discourse from a server :wink:

You want to be able to install/uninstall plugins without having to rebuild. Seems it’s not possible, unfortunately :confused:
You would then want to minimize downtime when you need to rebuild. This has already been a subject lately: Help with “zero downtime” setup (which didn’t really go where it probably should have).

What we may need here, is a nice tutorial on how to setup a 2 web-container install and how to use it. This seems the most efficient setup (and also probably the most complicated one). I don’t have enough knowledge to do such a tutorial, or I would. Is there someone willing to ?

3 إعجابات

I plan on taking up the chore of making easy guides for a variety of advanced use cases including the above. It’s on the backlog :slight_smile:

إعجابَين (2)

If your discourse is using Docker then you could use Procourse installer.

That does a rebuild as well.

إعجابَين (2)

While it still works today, AFAIK Procourse has stopped serving customers. I would be very hesitant to recommend it without a clear maintenance roadmap.

4 إعجابات

لم أكن على علم بذلك. ومع ذلك، طالما لم تتغير بنية Discourse بشكل كبير، فستستمر في العمل. التأكيد على كلمة

مع مرور الوقت، تحتاج جميع الإضافات إلى التحديث. حتى التغييرات البسيطة قد تسبب أحيانًا مشاكل لإضافات Discourse النشطة في التطوير. إنه ببساطة أمر لا يمكن التنبؤ به، وبالتأكيد ليس شيئًا يمكن لأي منا الاعتماد عليه.

إن إضافة تدير هي نفسها تثبيت الإضافات ولا يتم صيانتها تُعدّ مقترحة محفوفة بمخاطر كبيرة جدًا. الاعتماد على التفاؤل للاستمرار في استخدامها يبدو فكرة سيئة للغاية.

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

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

ينحصر الأمر في أنه ينبغي على المطورين النظر في دمج هذا النوع من الميزات مباشرة في Discourse، حتى لو كان ذلك كخيار قابل للتفعيل عبر سطر الأوامر، في حال كانت الأمان مصدر قلق.

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

كما لا يمكنك إلغاء تثبيت الإضافات مباشرة إذا قمت بالخطأ بتثبيت شيء ما يتبين أنه غير متوافق. يتطلب ذلك وصول SSH.

لقد قرأت مشكلة المواقع المتعددة. يمكن ببساطة استخدام فحص والسماح فقط إذا لم تكن مواقع متعددة تستخدم Docker.

نعم، قد يتطلب الأمر بعض التعديلات لتنفيذ ذلك. ومع ذلك، فهذا شيء يجب عليهم النظر فيه لتثبيتات المواقع الفردية.

حتى لو تم اعتماده كملحق رسمي لحاويات الموقع الواحد.

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

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

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

في الآونة الأخيرة، واجهت مشكلة يبدو أن أيقونات الفئات تسببت فيها. حتى عند استخدام سمة أساسية بدون تعديلات CSS أو مكونات أخرى. استغرق الأمر بعض الوقت لتحديد السبب.

الغريب في الأمر أنها تعمل على تثبيتنا المنفصل للتجربة الذي يشغل أحدث إصدار تجريبي من ديسكورد.