تم تصميم هذه الإضافة لتسهيل تثبيت الإضافات الجديدة بشكل كبير دون الحاجة لتسجيل الدخول إلى الخادم. تضيف هذه الإضافة شاشة تحت /admin/plugins/procourse-installer تبدو كالتالي:
من هناك، يمكنك إدخال عنوان URL (مع أو بدون .git) لمستودع Git الخاص بالإضافة والنقر على “تثبيت الإضافة”. انتظر بضع دقائق (حوالي 5 دقائق) حتى يكتمل التثبيت، وستكون جاهزًا للاستخدام.
لرؤية جميع الإضافات التي قمت بتثبيتها عبر المثبت أو لإزالة إضافة، انتقل ببساطة إلى “الإضافات المثبتة”.
تظل هذه الإضافات موجودة حتى بعد إعادة البناء أو التمهيد (bootstrap) لـ app أو web_only.
لم يتم اختبارها حاليًا على حالات متعددة المواقع (multisite) ومن المرجح أن تفشل في هذه السيناريوهات، حيث تحتاج الإضافة إلى الوصول إلى مجلد /plugins الخاص بالتطبيق لتعمل بشكل صحيح.
ستظهر الإضافات المثبتة تحت /admin/plugins.
يمكنك ترقية هذه الإضافات بشكل طبيعي من /admin/upgrade.
أثناء بناء هذه الإضافة، اكتشفنا خطأ محتملاً عند إزالة الترجمات من الإضافات. قد يتسبب ذلك في ظهور خطأ في الموقع إذا زار المستخدم صفحة تستخدم فيها الترجمة. يبدو أن هذا يحدث حتى لو استخدمت admin/upgrade لترقية إضافة معينة وقامت الإضافة بإزالة ترجمة. نحن نعمل حاليًا على إيجاد حل لهذه المشكلة.
I have to admit that I’m conflicted on this one. It would really cool to be in core but if it’s in core, installing plugins will only work on Docker installs and non-multisite installs. That would cause problems for a quite a lot of instances.
Technically, it doesn’t matter. They end up being installed in exactly the same way. This just makes it easier to do.
I assume the challenges associated with getting it to work with multisite are far more complex then getting to set up multisite (which none of my clients have deployed) and I’m saying that from managing over 2 dozen active discourse installations.
It should be easier to include this in the standard app.yml on bootstrap for the standalone installs and not including the same in a multisite/multi container/HA setup.
The main challenge is precompiling assets and such. We’re effectively adding the repo to the /plugins and then running an docker manager upgrade on that specific plugin. That handles the magic side of it.
But in a multisite, you run into issues because you don’t want one instance to be able to make edits for all instances in the multisite.
I think the installer is working fine but I saw this in my error log, not sure if it’s anything but thought I’d might as well bring it up:
NameError (uninitialized class variable @@install_state in ProcourseInstaller::InstallController)
/var/www/discourse/plugins/procourse-installer/app/controllers/procourse_installer/install_controller.rb:4:in `status'
منذ حوالي 20 يومًا تقريبًا، قمت بتثبيت إضافة Procourse هذه، وإضافة أخرى (لقد نسيت أيها كانت) عبر واجهة الإضافات هذه.
بعد بضعة أيام، لاحظت أن موقعي الإلكتروني أصبح بطيئًا جدًا في كثير من الأحيان (نقصد مرة كل بضعة أيام). وفي تلك اللحظات، حتى فتح الوضع الآمن كان بطيئًا بنفس القدر. وبعد مرور 20-30 دقيقة، وجدت أن سرعة موقعي عادت إلى طبيعتها.
على الرغم من أنني لا أملك المهارات اللازمة لتشخيص السجلات، إلا أن قسم التحذيرات في السجلات (أو ربما كان Sidekiq؟) احتوى على كلمة ‘procourse’ مرات عديدة، لذا اعتقدت أن الأمر مرتبط بشكل ما بهذه الإضافة المثبتة داخل/عبر إضافة Procourse. لذلك قمت بإلغاء تثبيت تلك الإضافة من واجهة Procourse.
ولكن في اليوم السابق، تعطل الموقع مرة أخرى (تقريبًا).
فتحت السجلات ووجدت مرة أخرى كلمة ‘procourse’ مكتوبة في العديد من التحذيرات.
لذا اليوم، اتخذت قرارًا وقمت بإلغاء تثبيت Procourse أيضًا.