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:

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

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

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)

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.

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?

Das liegt daran, dass das Basis-Image an sich nichts tut. Du musst Discourse darin kompilieren und dann ausführen. Das geschieht jedoch zunächst durch die Ausführung eines ./launcher-Skripts außerhalb des Images. Daher solltest du es zunächst auf die offizielle Weise installieren und dir dann die Alternativen überlegen.

Das Discourse-Installationsverfahren ist nicht ganz alltäglich, aber im Laufe der Jahre habe ich diesen Ansatz aus einem bestimmten Grund sehr zu schätzen gelernt – ein Vorteil, den du erst wirklich zu würdigen weißt, wenn du eine Weile Admin bist. Und das ist die Möglichkeit, das System nach jedem Commit im Quellcode zu aktualisieren. Es ist unglaublich. Du meldest einen Contribute > Bug, und innerhalb von einer Stunde hat das Team oder die Community das Problem möglicherweise behoben. Die automatischen Tests werden ausgeführt, der Commit wird gemergt und ist verfügbar. Und du kannst sofort upgraden, weil du dein Discourse mit dem neuesten Quellcode neu kompilierst.

Es gibt also kein Image, in dem eine bestimmte Version fest kompiliert wäre. Du erhältst ein „leeres“ Image und kompilierst deine eigene Version ab dem gewünschten Zeitpunkt und mit der Kombination von Plugins, die du benötigst. Und es funktioniert immer noch!

Solche Flexibilität bekommst du an anderer Stelle nicht.

Ich bin mir nicht ganz sicher, aber wenn du eine docker compose-Datei erstellen möchtest, musst du das ./launcher-Skript-Verfahren innerhalb der Compose-Datei nachbilden. Das bedeutet, du kompilierst es in ein anderes Image, das du dann einfach einbinden kannst. Aber die eingebaute Prozedur kannst du nicht nutzen, wenn du ein Upgrade durchführen musst. Du musst dann eine neue Version selbst zusammenstellen.

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?

Installieren Sie Docker und machen Sie einfach das.

Ja:

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

:slight_smile:

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.

Vielen Dank für eure Unterstützung!

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