Diese Anleitung setzt eine selbst gehostete Standardinstallation voraus. Wir unterstützen hier nur die Standardinstallationsmethode, daher gehen wir 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 je nach Hosting-Stufe verfügbar.
In diesem Tutorial installieren wir das Plugin Discourse Solved.
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-Dateien (*.yml) über das Terminal mit nano bearbeitet, insbesondere wie man in nano speichert und beendet. YAML-Dateien folgen stark Einzügen, stellen Sie daher 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 Tabs.
-
Kopieren Sie die
git clone-URL des Plugins von GitHub. -
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 Ihrer
app.yml-Datei des Containers hinzu:hooks: after_code: - exec: cd: $home/plugins cmd: - sudo -E -u discourse git clone https://github.com/discourse/docker_manager.git - sudo -E -u discourse git clone https://github.com/discourse/discourse-solved.gitFügen Sie die
git clone-URL des Plugins direkt unter der Zeile mitgit clone https://github.com/discourse/docker_manager.gitein)Folgen Sie dem bestehenden Format der Zeile
docker_manager.git; wenn diese nichtsudo -E -u discourseenthält, fügen Sie- git clone https://github.com/discourse/discourse-solved.gitein. -
Bauen Sie den Container neu:
cd /var/discourse ./launcher rebuild appDas war’s, Sie haben das Plugin Discourse Solved 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:
- sudo -E -u discourse git clone https://<token>@github.com/owner/repo.git
Wir raten Ihnen dringend, OAuth-Tokens für Plugins in privaten Repositories zu verwenden. Wenn dies jedoch nicht möglich ist, siehe unten.
Schritte zur Installation über SSH-Schlüssel für private Repos
-
Angenommen, Ihr privates Git-Repo wird auf GitHub gehostet, müssen Sie den öffentlichen SSH-Schlüssel Ihres Serverbenutzers zu den Deploy-Schlüsseln des GitHub-Repos hinzufügen (https://github.com/SecretOrg/secret-plugin/settings/keys).
-
Ändern Sie die Datei
app.ymlwie im folgenden Beispiel gezeigt:
run:
- exec: echo "Beginn der benutzerdefinierten Befehle"
- 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 "Ende der benutzerdefinierten Befehle"
- Bauen Sie den Container neu:
cd /var/discourse
./launcher rebuild app
Ihr privates Plugin sollte auf Ihrer Discourse-Instanz installiert sein.
So deinstallieren Sie ein Plugin
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 über
cd /var/discourse
./launcher rebuild app