ملف plugins.yml واحد لموقعين Discourse

مرحبًا بالجميع،

هل من الممكن استخدام أمر cmd لتضمين ملف من موقع بعيد في ملف app.yml؟

لدي موقعان أود أن يكون لديهما قائمة قياسية من الإضافات. بدلاً من نسخها ولصقها في كل مرة، وأحيانًا أنسى القيام بذلك، هل يمكنني وضعها في <الموقع أ> وسحبها في كل مرة أعيد فيها بناء التطبيق؟

على سبيل المثال:
<include executable="wget --no-check-certificate -q -O - http://LocationA/plugins.yml" noexec="no">

مرحبًا @IAmGav

قد لا يكون هذا بالضبط ما تبحث عنه؛ ولم أقم بعد بتفصيله بالكامل، لكن إليك الفكرة العامة:

  1. أنشئ مجلدًا باسم /var/discourse/mytemplates
  2. أضف ملف قالب جديد باسم plugins.templates.yml في ذلك المجلد، على سبيل المثال:
hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/discourse/docker_manager.git
          - git clone https://github.com/discourse/discourse-bbcode.git
          - git clone https://github.com/discourse/discourse-sitemap.git
          - git clone https://github.com/discourse/discourse-solved.git
          - git clone https://github.com/discourse/discourse-whos-online.git
          - git clone https://github.com/discourse/discourse-checklist.git
  1. أنشئ مستودع git جديد لهذا المجلد وادفعه إلى GitHub.
  2. أضف قالبًا إلى ملفات yml الخاصة بك لهذه الإضافات، على سبيل المثال:
templates:
  - "templates/web.template.yml"
  - "templates/web.ratelimited.template.yml"
  - "templates/web.socketed.template.yml"
  - "mytemplates/plugins.template.yml"

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

الجزء الوحيد الذي لم أختبره بعد هو إضافة سطر أو سطرين في launcher لسحب المستودع؛ وبصراحة، لم أعمل على هذا الجزء بعد.

 git clone https://github.com/my_super_repo/mytemplates.git

على الرغم من أنني لم أعمل على هذا الجزء بعد، إلا أنني متأكد من أنه قابل للتنفيذ؛ لأنني اختبرت بالفعل جزء سحب الإضافات داخل بناء الحاوية من قالب، ويعمل بشكل جيد؛ لذا فإن الجزء المتبقي لهذا النهج هو إضافة كود إلى launcher واختباره لسحب مستودع mytemplates من GitHub.

ومع ذلك، وبصراحة، تبدو هذه التقنية كمجهود غير ضروري كبير:

  • تعديل launcher لسحب القالب من مستودع
  • إضافة إدخال قالب جديد إلى ملف yml (للإضافات)

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

على أي حال، الإجابة المختصرة على سؤالك يا @IAmGav هي “نعم، إنه قابل للتنفيذ” وبالطبع، إذا كنت ترغب في تجربته، فـ “افعل ذلك”.

أتمنى أن يكون هذا مفيدًا.