Discourse Self-Hosting mit Docker Compose

Hallo zusammen! :blush:

Ich hoffe, es geht euch allen gut! Ich habe eine Frage zu Discourse: Ist es möglich, Discourse selbst zu hosten? Ich interessiere mich sehr für die Plattform und würde gerne wissen, ob hier jemand Erfahrungen damit hat. Gibt es spezielle Anforderungen oder Tipps, die ich beachten sollte?

Vielen Dank im Voraus für eure Hilfe! :folded_hands:

6 „Gefällt mir“

Ja, und es gibt eine ganze Unterkategorie, die dem gewidmet ist!:

Documentation > Self-Hosting
Sie sollten sich speziell die Standardinstallation ansehen

14 „Gefällt mir“

Vielen Dank für Ihre Antworten!

Ich hätte gerne eine eigenständige „docker-compose“-Datei, die ich starten und Discourse in unserem Verein nutzen kann.

Ist das möglich?

Ich bin kein Fan davon, tausend Skripte im Hintergrund laufen zu lassen, von denen ich nichts weiß.

Ja, das ist möglich, aber Sie müssten es selbst schreiben und unterstützen.

Hier ist ein Dockerfile, das jemand kürzlich für die Entwicklung gepostet hat und als Ausgangspunkt dienen könnte

Discourse ist Open Source. Warum lesen Sie nicht die Launcher-Skripte und Vorlagen? (was auch Ihre Compose informieren würde)

3 „Gefällt mir“

Dies wird nicht unterstützt, aber es gibt Bemühungen, mit dem Mainline-Discourse Schritt zu halten. Sie können hier nach docker compose suchen oder diese beiden Varianten besuchen:

Seien Sie jedoch vorsichtig, die Wartung von Discourse über Versionen hinweg kann sich als schwierig erweisen. Aber IndieHosters tun dies seit einigen Jahren.

Beide Projekte verwenden das ursprüngliche Discourse/base Docker-Image, aber ich bin mir nicht sicher, ob sie die Installation so anpassen, wie es @sam’s pups für discourse-docker tut.

6 „Gefällt mir“

Danke für eure Antworten!

Ich habe nur das discourse/base-Image installiert, aber der Container wurde ohne Protokolle beendet
Das Bild zeigt eine Befehlszeilenschnittstelle, die einen Container namens „discourse-container“ in einer Docker-Umgebung anzeigt, der kürzlich ohne laufende Prozesse beendet wurde.

Wisst ihr, warum?

Da das Basis-Image für sich genommen nichts tut. Sie müssen Discourse darin kompilieren und es dann ausführen. Und das geschieht, indem Sie zuerst ein ./launcher-Skript außerhalb des Images ausführen. Versuchen Sie also zuerst, es auf dem offiziellen Weg zu installieren und denken Sie dann über die Optionen nach.

Das Installationsverfahren von Discourse ist nicht sehr verbreitet, aber über die Jahre hinweg hat mir der Ansatz aus einem Grund sehr gut gefallen, den Sie erst schätzen werden, wenn Sie einige Zeit Administrator sind. Und das ist die Möglichkeit, es nach jedem Commit am Quellcode zu aktualisieren. Es ist unglaublich. Sie melden einen Bug, nach 1 Stunde kann er sehr gut vom Team oder der Community behoben werden, die automatischen Tests werden ausgeführt und der Commit wird zusammengeführt und ist verfügbar. Und Sie können sofort aktualisieren. Weil Sie Ihr Discourse mit dem neuesten Quellcode neu kompilieren.

Es gibt also kein Image, in dem eine bestimmte Version kompiliert wäre. Sie erhalten ein “leeres” Image und kompilieren Ihre Version von dem Punkt an, den Sie möchten, und mit der Kombination von Plugins, die Sie benötigen. Und es funktioniert trotzdem!

Diese Art von Flexibilität erhalten Sie nirgendwo anders.

Ich bin mir also nicht sicher, aber wenn Sie eine docker compose-Datei erstellen möchten, müssen Sie das ./launcher-Skriptverfahren innerhalb der Compose-Datei nachbilden, sodass Sie es in ein anderes Image kompilieren, das Sie dann einfach einbinden können. Aber Sie können das integrierte Verfahren nicht verwenden, wenn Sie ein Upgrade benötigen. Sie müssen selbst eine neue Version erstellen.

4 „Gefällt mir“

Vielen Dank für eure Hilfe. Ihr macht es Anfängern wie mir leicht, Discourse zu nutzen!

Ja, aber bevor ich Discourse für meinen Club verfügbar mache, wollte ich Discourse auf dem Localhost laufen lassen und einige Tests durchführen, damit ich besser mit der Admin-Oberfläche und der Kommandozeile von Discourse zurechtkomme. Wenn Fehler auftreten, möchte ich sie beheben können. Für die „unterstützte“ Version benötige ich einen DNS-Eintrag, Port 443 und 80, was in meinem Fall unnötig ist – zumindest glaube ich das.

Kennt jemand einen Trick, wie man das auf dem Localhost zum Laufen bringt?

1 „Gefällt mir“

Installieren Sie Docker und machen Sie einfach das.

1 „Gefällt mir“

Ja:

https://meta.discourse.org/tags/c/documentation/developer-guides/56/dev-install

:slight_smile:

2 „Gefällt mir“

Oder das. Obwohl ich verstanden habe, dass Max daran interessiert ist, zu erfahren, wie es sich in der Produktion verhält, aber es lokal zu testen, bevor er eine Hosting-Umgebung kauft. Dafür wäre das Docker-Setup besser geeignet. Um tatsächlich Fehler zu beheben, ist das Dev-Setup die richtige Wahl.

4 „Gefällt mir“

Vielen Dank für eure Unterstützung!

Ich habe es mit der „normalen“ Installation mit Docker zum Laufen gebracht.

2 „Gefällt mir“

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.