Eine plugins.yml-Datei für zwei Discourse-Seiten

Hallo zusammen,

ist es möglich, über einen Befehl eine Datei von einem entfernten Standort in die app.yml-Datei einzubinden?

Ich betreibe zwei Websites und möchte für beide eine Standardliste an Plugins verwenden. Anstatt alles jedes Mal kopieren und einfügen zu müssen – und dabei manchmal etwas zu vergessen – könnte ich die Liste dann an speichern und sie bei jedem Neuaufbau der App einfach einbinden?

z. B.
<include executable="wget --no-check-certificate -q -O - http://LocationA/plugins.yml" noexec="no">

Hallo @IAmGav,

Das ist vielleicht nicht genau das, wonach du suchst, und ich habe es noch nicht vollständig ausgearbeitet, aber hier ist der Kern der Sache:

  1. Erstelle ein Verzeichnis /var/discourse/mytemplates
  2. Füge in diesem Verzeichnis eine neue Template-Datei namens plugins.templates.yml hinzu, zum Beispiel:
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. Erstelle ein neues Git-Repository für dieses Verzeichnis und pushe es auf GitHub.
  2. Füge in deinen yml-Dateien einen Eintrag für diese Plugins hinzu, zum Beispiel:
templates:
  - "templates/web.template.yml"
  - "templates/web.ratelimited.template.yml"
  - "templates/web.socketed.template.yml"
  - "mytemplates/plugins.template.yml"

Ich habe diesen Schritt bereits getestet und kann problemlos Plugins hinzufügen und den Container mithilfe einer solchen Template-Datei erstellen.

Der einzige Teil, den ich noch nicht getestet habe, ist das Hinzufügen einer oder zweier Zeilen im Launcher, um das Repository zu ziehen; ehrlich gesagt habe ich an diesem Teil noch nicht gearbeitet.

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

Obwohl ich an diesem Teil noch nicht gearbeitet habe, bin ich mir sicher, dass es machbar ist; denn ich habe bereits den Teil getestet, bei dem Plugins während des Container-Builds über eine Template-Datei eingebunden werden, und das funktioniert einwandfrei. Der einzige verbleibende Schritt für diesen Ansatz besteht also darin, Code zum Launcher hinzuzufügen und zu testen, um das mytemplates-Repository von GitHub zu ziehen.

Um ehrlich zu sein, scheint diese Technik jedoch eine Menge unnötiger Arbeit zu sein:

  • Bearbeiten des launchers, um das Template aus einem Repository zu ziehen
  • Hinzufügen eines neuen Template-Eintrags in der yml-Datei (für die Plugins)

Es ist so einfach, in die yml-Dateien zu kopieren und einzufügen und dann „fertig