Wie installiere ich Discourse-Plugins, die in privaten Repositories mit SSH-Schlüssel gehostet werden?

Ich habe die offizielle Discourse-Anleitung für die Installation von Plugins auf einer selbst gehosteten Website befolgt (offizielles Tutorial), aber diese stammt aus dem Jahr 2014, und ich bin mir ziemlich sicher, dass viele der Informationen inzwischen veraltet sind.

Ich habe auch einige der neueren, empfohlenen Lösungen ausprobiert, die in den Diskussionsantworten geteilt wurden, wie z. B. das Mounten von SSH-Schlüsseln über Volumes und die Konfiguration des SSH-Zugriffs während des Bootstrap-Prozesses. Leider ist es mir trotz dieser Bemühungen immer noch nicht gelungen, Plugins aus meinen privaten Git-Repositories über SSH zu klonen und zu installieren.

Wenn jemand eine aktualisierte, funktionierende Methode oder Best Practice für die Verwendung von SSH-Schlüsseln zur Installation von Discourse-Plugins aus privaten Repositories hat, wäre ich für jeden Rat dankbar.

Gibt es eine Möglichkeit, die Plugin-Dateien vorab direkt auf den Server herunterzuladen, damit sie während des Discourse-Bootstraps nicht erneut von GitHub abgerufen werden müssen?

Dies ist immer noch der gültige Ansatz

Ich benutze ihn die ganze Zeit.

2 „Gefällt mir“

Sie können die Dateien wahrscheinlich direkt in /plugins klonen und dann die notwendigen Migrationen ausführen, aber dann erhalten Sie möglicherweise keine Updates für die Plugins.

Danke! Aber der Grund, warum ich SSH bevorzuge, ist, dass OAuth-Token keine Trennung von Lese- und Schreibberechtigungen zulassen – sie kommen immer mit mehr Zugriff als nötig.

Mit SSH kann ich einen schreibgeschützten Deploy-Key generieren, der sicherer ist und besser mit dem Prinzip der geringsten Rechte übereinstimmt.

Vielen Dank für den Vorschlag!

Ich habe tatsächlich versucht, das Plugin direkt in /var/www/discourse/plugins zu klonen, aber es hat nicht funktioniert – selbst als ich den Plugin-Ordner vom Host in diesen Pfad innerhalb des Containers gemountet habe.

Es scheint, dass Discourse während des Bootstraps Plugins über Git abrufen muss und das manuelle Platzieren der Plugin-Dateien diesen Schritt nicht umgeht.

Wenn Sie mit dieser Methode erfolgreich waren, würde ich gerne mehr Details erfahren.

1 „Gefällt mir“

Ich meine, es gibt Probleme, wenn Sie direkt klonen (ich glaube das), deshalb ist die Verwendung der Tokens zum Klonen der empfohlene Weg.

Aber ich denke, Sie möchten dies versuchen, wenn Sie SSH-Schlüssel verwenden möchten:

Vielen Dank, aber ich habe die Methode, die im offiziellen Leitfaden von 2014 beschrieben wurde, den Sie verlinkt haben, bereits ausprobiert – und ich kann bestätigen, dass sie nicht mehr funktioniert, um über SSH-Schlüssel während des Bootstrap auf private Repositories zuzugreifen.

Ich habe auch den neueren Ansatz ausprobiert, der in einer der Antworten erwähnt wurde (das SSH-Schlüssel in den Container einzubinden und core.sshCommand in after_code zu konfigurieren), aber leider ist auch dieser in meinem Fall fehlgeschlagen. Discourse gibt immer noch einen SSH-Berechtigungsfehler aus, wenn versucht wird, das private Plugin zu klonen.

Wenn es eine derzeit funktionierende und zuverlässige Methode gibt, ein privates Repository mit SSH in einer Produktionsumgebung zu verwenden, wäre ich für aktuellere Anleitungen sehr dankbar.

Sie könnten es einfach lokal klonen und entweder in das Plugins-Verzeichnis einbinden oder es von einem temporären Mount in das Plugins-Verzeichnis kopieren.

Früher konnte man eine GitHub-URL erhalten, in die Anmeldeinformationen eingebettet waren. Das habe ich schon einmal gemacht.