Diese Anleitung setzt eine selbst gehostete Standardinstallation voraus. Wir unterstützen hier nur die Standardmethode der Installation, daher gehen diese Anweisungen von einer Standardinstallation aus.
Diese Anleitung gilt nur für selbst gehostete Discourse-Instanzen. Wenn Sie einen verwalteten Hosting-Dienst nutzen, werden die verfügbaren Plugins von Ihrem Hosting-Anbieter gesteuert. Beispielsweise sind auf unserem Hosting diese spezifischen Plugins nach Hosting-Stufe verfügbar.
Seit Mitte 2025 sind viele beliebte offizielle Plugins in den Discourse-Kern integriert. Diese Plugins (einschließlich Solved, Data Explorer, AI, Assign, Reactions und viele mehr) müssen nicht mehr separat installiert werden – sie werden mit Discourse ausgeliefert und können über die Seiteneinstellungen aktiviert werden. Wenn Sie versuchen, mit einem gebündelten Plugin, das sich noch in Ihrer
app.ymlbefindet, neu zu erstellen, erhalten Sie eineHINT-Meldung, die Sie auffordert, es zu entfernen. Diese Anleitung gilt für Plugins, die nicht im Kern enthalten sind.
In diesem Tutorial installieren wir das Plugin Discourse Shared Edits.
Dieses Tutorial setzt voraus, dass Sie wissen, wie man GitHub-Repos verwendet, insbesondere wie man die Git-Klon-URL erhält oder kopiert und wie man YAML (*.yml)-Dateien über das Terminal mit nano bearbeitet, insbesondere wie man in nano speichert und beendet. YAML-Dateien folgen stark den Einrückungen, stellen Sie also sicher, dass Sie diese beim Kopieren, Einfügen und Bearbeiten der notwendigen *.yml für Ihre Discourse-Instanz beachten. Verwenden Sie in .yml-Dateien immer Leerzeichen zur Einrückung, keine Tabulatoren.
-
Kopieren Sie die GitHub
git clone-URL des Plugins. -
Greifen Sie auf die
app.yml-Datei Ihres Containers zu (befindet sich unter/var/discourse/containers/)cd /var/discourse nano containers/app.yml -
Fügen Sie die Repository-URL des Plugins zu der
app.yml-Datei Ihres Containers hinzu:hooks: after_code: - exec: cd: $home/plugins cmd: - git clone https://github.com/discourse/docker_manager.git - git clone https://github.com/discourse/discourse-shared-edits.gitFügen Sie die
git clone-URL des Plugins direkt unter der Zeile mitgit clone https://github.com/discourse/docker_manager.githinzu)Folgen Sie dem vorhandenen Format der
docker_manager.git-Zeile; wenn diesesudo -E -u discourseenthält, fügen Sie dieses Präfix auch Ihrer neuen Zeile hinzu. -
Bauen Sie den Container neu auf:
cd /var/discourse ./launcher rebuild appDas war’s, Sie haben das Plugin Discourse Shared Edits erfolgreich auf Ihrer Discourse-Instanz installiert!
Wenn Ihr Plugin in einem privaten Repository gehostet wird
Sie müssen ein OAuth-Token verwenden:
Mit dem OAuth-Token können Sie Ihr Plugin auf die gleiche Weise wie ein öffentliches Repo installieren, und Sie müssen keinen SSH-Schlüssel erstellen.
hooks:
after_code:
- exec:
cd: $home/plugins
cmd:
- git clone https://<token>@github.com/owner/repo.git
Wir empfehlen dringend, OAuth-Tokens für Plugins in privaten Repositories zu verwenden. Wenn dies jedoch nicht möglich ist, siehe unten.
SSH-Schlüssel-Installationsschritte für private Repositories
-
Vorausgesetzt, Ihr privates Git-Repo wird auf GitHub gehostet, müssen Sie den öffentlichen SSH-Schlüssel des Servers zum GitHub Repo Deploy Keys hinzufügen (https://github.com/SecretOrg/secret-plugin/settings/keys).
-
Ändern Sie die
app.yml-Datei wie im folgenden Beispiel gezeigt:
run:
- exec: echo "Beginning of custom commands"
- exec: cd /var/www/discourse && sudo -u discourse bundle install --deployment --without test --without development
- exec: echo "Host github.com\\n\\tStrictHostKeyChecking no\\n" >> /user/.ssh/config
- file:
path: /user/.ssh/id_rsa
chmod: 600
contents: |
-----BEGIN RSA PRIVATE KEY-----
MIIEogIBAAKCAQEArCQG213utzqE5YVjTVF5exGRCkE9OuM7LCp/FOuPdoHrFUXk
.... etc ....
-----END RSA PRIVATE KEY-----
- file:
path: /user/.ssh/id_rsa.pub
chmod: 600
contents: ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAklOUpkDHrfHY17SbrmTIpNLTGK9Tj .... etc .... user@discourse
- exec: cd $home/plugins && git clone git@github.com:SecretOrg/secret-plugin.git
- exec: cd $home && sudo -E -u discourse bundle exec rake db:migrate
- exec: cd $home && rm -fr tmp/cache
- exec: cd $home && sudo -E -u discourse bundle exec rake assets:precompile
- exec: rm /user/.ssh/id_rsa
- exec: rm /user/.ssh/id_rsa.pub
- exec: echo "End of custom commands"
- Bauen Sie den Container neu auf:
cd /var/discourse
./launcher rebuild app
Ihr privates Plugin sollte auf Ihrer Discourse-Instanz installiert sein.
Wie man ein Plugin deinstalliert
Um ein Plugin zu entfernen, entfernen Sie einfach die Zeile - git clone https://github.com/... aus Ihrer app.yml-Datei und bauen Sie Ihre Seite neu auf über
cd /var/discourse
./launcher rebuild app