Ich recherchiere Discourse als Kandidat für ein Forum in meinem Projekt.
Ich bin etwas überrascht, wie kompliziert es ist, den Stack tatsächlich zum Laufen zu bringen.
Auf GitHub gibt es diese Anleitung – sie erfordert einen SMTP-Server und eine Domain.
Ich habe auch eine andere Anleitung gesehen, die die Installation des Stacks direkt auf dem Host beschreibt. Ich würde es vorziehen, mich auf Docker zu verlassen, um alle diese Abhängigkeiten eingerichtet zu haben
Was mich ebenfalls verwirrt hat, ist, dass die erste Anleitung großen Wert darauf legt, dass ich einen SMTP-Server und DNS benötige. Diese erwähnt das überhaupt nicht.
Mir schien es, dass ich, da alles in Docker verpackt ist, einfach einen Docker Compose starten sollte, um Discourse und die Datenbank (wie ich sehe, ist es PostgreSQL) als Container laufen zu lassen (+ eventuell weitere Container, wie Caching, falls Discourse das benötigt). In der Produktion würde ich es wahrscheinlich auf Kubernetes hosten (scheint nicht so einfach zu sein, wie ich in einem Thread gelesen habe).
Möchtest du eine Entwicklungs- oder eine Produktionsinstallation? Im letzteren Fall sieh dir die offizielle Standardinstallation von Discourse an. Ein Betrieb unter Kubernetes ist möglich, aber nicht ganz einfach, da du ./launcher zum Erstellen des Containers verwenden musst. Ein vollständiges Upgrade ohne Ausfallzeit erfordert zudem einige Schritte, die nicht sofort ersichtlich sind. Wenn es dir auf Einfachheit ankommt, starte einfach eine VM (etwas einfacher, wenn sie Ubuntu oder Debian ausführt).
Ja, für die Produktion musst du E-Mails versenden können. Für die Entwicklung brauchst du das natürlich nicht.
@merefield Danke für den Docker-Link. Das funktioniert und entspricht ziemlich genau dem, wie ich mir den Ablauf vorgestellt habe. Allerdings ist es etwas seltsam, dass alles in einem einzigen Container verpackt ist. Und ja, es ist langsam.
Was mich überrascht hat, ist, dass mein Terminal sehr langsam wird, sobald ich git clone für Discourse ausführe und dann cd discourse eingebe – das sehe ich zum ersten Mal . Dieses Repository muss also viele Dateien enthalten oder so etwas, obwohl ich nicht genau weiß, warum das mein Terminal beeinflussen sollte.
@pfaffman Ich würde ebenfalls gerne die Installation ausprobieren, die der Produktion am nächsten kommt, um mir ein Bild vom Ablauf zu machen. Eine Installation auf einer VM ist für mich in Ordnung. Allerdings, was ist mit dem SMTP-Server und der Domain? Der Leitfaden ist hier sehr streng und besagt, dass ich diese unbedingt haben MUSS.
Das wäre auch kein Problem, aber ich verstehe einige Dinge noch nicht vollständig:
Warum wird die Domain eigentlich benötigt? Warum reicht localhost nicht aus?
Muss der Mailserver auf dieselbe Domain zeigen wie die Domain, die ich für Discourse verwende?
Der Leitfaden spricht auch von Subdomains – warum Subdomain? Ich richte beispielsweise eine VM auf Azure ein, und diese VM hat eine DNS-Adresse zugewiesen (z. B. myvm.westeurope.cloudapp.azure.com) – reicht diese Adresse nicht aus?
Es ist für den Produktiveinsatz gedacht und erfordert HTTPS, daher benötigst du einen Domainnamen. Die Azure-Lösung funktioniert.
Du musst nicht denselben Domainnamen für den Mailserver wie für den Hostnamen verwenden. Vor einiger Zeit habe ich discourse-setup so angepasst, dass es nach der Benachrichtigungs-E-Mail-Adresse fragt.
Subdomain bedeutet einfach, dass du nicht x.com, sondern y.x.com verwendest. Das ist eine weit verbreitete Praxis.
ich teile deine Sorge bezüglich der Domainnamen für Discourse. WARUM REICHT LOCALHOST NICHT AUS?
Ich habe Discourse nur für mein Team installiert, um es auszuprobieren, aber es funktioniert nicht ohne DNS. Wir haben versucht, einen DNS-Eintrag für localhost in die Hosts-Datei auf unserem Server aufzunehmen, um die Auflösung zu ermöglichen, aber das war erfolglos.
Hat jemand Discourse bereits ohne eine öffentliche Domain zum Laufen gebracht?
Nein. Wenn du eine Entwicklungsumgebung installieren möchtest, brauchst du keinen Hostnamen, aber das funktioniert nur für localhost. Wenn dein Team es nutzen soll, benötigst du einen Hostnamen. Wenn du ein Team hast, hast du sicher auch eine Domain? Erstelle einfach eine Subdomain von der Domain, die dein Unternehmen nutzt, bezahle 12 $ für einen Hostnamen oder nutze die kostenlose Testversion.
Nun, für uns – wir wollen keine öffentliche Diskussion. Wir möchten ein internes Diskussionsforum. Ich bin mir mit den anderen einig: localhost schlägt fehl, die Installation schlägt fehl, wenn man es nur testen möchte. Das ist wirklich abschreckend, und die verrückten Skripte anstelle des bekannten und standardmäßigen Befehls ‘docker-compose up -d --build’ sind zumindest beunruhigend. Ich weiß nicht, ob ich dieses Produkt verwenden möchte, weil es sich selbst zu ernst nimmt … oder zumindest jemand, der den Launcher geschrieben hat.
Oder vielleicht wurde es geschrieben, bevor docker-compose eine praktikable Lösung war, und es funktioniert dennoch auf Tausenden von Websites. Eine Änderung würde das Risiko bergen, sie alle für einen Randfall zu beschädigen.
Wenn der Server Zugriff auf die Außenwelt hat, ist es nicht allzu schwierig, die HTTPS-Funktionen zu deaktivieren, obwohl ich das schon eine Weile nicht mehr gemacht habe.
Du benötigst einen Domainnamen, dieser muss jedoch keine öffentliche IP-Adresse haben. Wenn dein Server auf das Internet zugreifen kann (um Discourse und dessen Komponenten herunterzuladen), kannst du die Let’s Encrypt-Funktion deaktivieren, und es sollte funktionieren. Ich glaube, du musst lediglich die SSL- und Let’s Encrypt-Vorlagen in der YAML-Datei löschen, aber dann kannst du discourse-setup nicht mehr verwenden. Kopiere die Standalone-Beispielkonfiguration und bearbeite sie manuell.
Sie wird aus mehreren Gründen benötigt. Obwohl Sie eine Domain kostenlos bei FreeNom erhalten können, gab es jedoch viele Kontroversen darüber, wie FreeNom Daten und Benutzerinformationen behandelt. Seien Sie also vorsichtig, wenn Sie diesen Weg wählen.