Wie kann ich Discourse in meinen lokalen Dev-Stack integrieren?

Unsere Organisation betreibt eine Webanwendung und ein Forum sowie einige weitere Anwendungen wie Bitwarden. Ich habe alles containerisiert, um eine Parität zwischen Entwicklung und Produktion sowie ein einfaches Entwicklungsumfeld mit Docker Compose zu erreichen. Wir verwenden eine sehr ähnliche Compose-Datei, um es in der Produktion auszuführen, und das funktioniert für unseren grundlegenden Anwendungsfall sehr gut.

Ich möchte unser Forum auf Discourse umstellen, habe aber Schwierigkeiten herauszufinden, wie ich die Parität zwischen Entwicklung und Produktion sowie ein einfaches Entwicklungsumfeld aufrechterhalten kann.

Die Dokumentation legt nahe, dass Discourse, obwohl es Docker zur Installation und Ausführung verwendet, nicht wirklich in das Container-Paradigma passt wie andere Docker-Container: Man kann es nicht zu einem Compose-/Swarm-/Kubernetes-Stack hinzufügen und ausführen, indem man es wie bei einer anderen Anwendungscontainer mit Datenbank- und Redis-Containern verbindet. Alternative Lösungen oder Vorschläge werden stark abgelehnt, um eine Spaltung der Community zu vermeiden, daher bin ich hier nicht, um den Ansatz in Frage zu stellen.

Ich habe akzeptiert, dass ich Discourse anders ausführen und verwalten muss als den Rest meines Stacks – nämlich über eine dedizierte VM in der Produktion. Aber ich bin neugierig, wie ich meine zugrundeliegenden Ziele erreichen kann: ein einfaches Entwicklungsumfeld mit einer vernünftigen Parität zur Produktion.

Zum Kontext: Mein aktuelles Entwicklungsumfeld lautet „Docker installieren, dieses Repository klonen und docker-compose up ausführen“. Wenn ich den lokalen Installationsleitfaden richtig verstehe, benötigen wir nun 9 Systemabhängigkeiten (Ruby, PostgreSQL usw.), bevor wir Discourse selbst manuell klonen und einrichten. Meiner Meinung nach ist einer der Vorteile von Docker (und Docker Compose), dass man Dinge wie PostgreSQL und Redis nicht lokal auf dem System laufen lassen muss (und die damit verbundenen Probleme bei der Einrichtung, wenn Entwickler unter Windows arbeiten); man kann einfach einen Stack ausführen, und die Prozesse sind in wegwerfbare Container isoliert. Gibt es eine Möglichkeit, diesen Vorteil zu bewahren?

Der andere Nachteil ist, dass wir ein kleines Team von Freiwilligen sind und die meisten Entwickler Windows 10 Home verwenden, das meines Wissens nach WSL nicht unterstützt. Das bedeutet, dass sie die Windows-Installationsanweisungen ohnehin nicht befolgen können (Docker funktioniert zwar unter Windows 10 Home).

Nun, die gute Nachricht ist, dass du die meisten Zeit nicht musst!

Es sei denn, du entwickelst spezifische Integrationen für das Forum oder gestaltest das Forum selbst, kann die Discourse-Website weitgehend unabhängig vom Rest deines Stacks betrieben werden.

Es gibt Optionen für eine Docker-basierte Entwicklungsinstallation unter Linux und WSL; wir empfehlen dies aufgrund von Problemen mit der Dateisystemleistung nicht für MacOS.

1 „Gefällt mir“

Tatsächlich ist das ziemlich kritisch, da ich Discourse als Anmeldesystem für meine Anwendungen nutzen möchte. Ohne das können sich Benutzer nicht lokal anmelden.

In diesem Fall empfehle ich, SSO mit einer live Staging-Umgebung einzurichten.

Richten Sie eine zweite Kopie von Discourse auf derselben oder einer ähnlichen Hosting-Plattform ein, erteilen Sie allen Admin-Rechte und erstellen Sie SSO-Provider-Geheimnisse für localhost:3000, localhost:4000, localhost:4001, *.cluster.local usw., falls erforderlich.

Jedes Mitglied Ihres Entwicklungsteams kann von dieser Seite aus Authentifizierungs-Payloads erstellen. Daher ist es wichtig, dies zu dokumentieren und Ihre echte Produktionsumgebung für die tatsächliche Authentifizierung zu verwenden.

2 „Gefällt mir“