Verwenden Sie CloudPanel, um mehrere Websites mit Discourse zu verwalten

Sie können hier direkt zu meinem Schritt-für-Schritt-Tutorial gelangen…

Auf meinem dedizierten Server (Hetzner) habe ich eine frische Discourse-Instanz installiert (und das ist im Moment das Einzige auf dem Server).

Jetzt möchte ich CloudPanel als Reverse-Proxy verwenden, damit ich den Server auch zum Hosten von Ghost-Blogs und Wordpress-Seiten für einige meiner Kunden nutzen kann.

Nachdem ich dieses Tutorial gelesen und auch die anderen unten aufgeführten Beiträge studiert habe, scheint dies möglich zu sein.

Aber ich kämpfe mit meiner Lernkurve in Bezug auf Reverse-Proxies.

Ich kann meine Seiten mit CloudPanel einfach installieren und verwalten.

Aber es ist mir nicht klar, in welcher Reihenfolge oder welchem Verfahren CloudPanel mit Discourse zusammenarbeiten soll.

Ich würde das Verfahren hier in diesem Beitrag dokumentieren wollen.

Kann mir jemand dabei helfen?

Folgen Sie zuerst einem dieser Leitfäden, um Discourse auf einen anderen Port zu verschieben und die SSL- und Let’s Encrypt-Vorlagen zu entfernen und neu zu erstellen. Sagen Sie dann Ihrem Reverse-Proxy, dass er diesen Port verwenden soll.

3 „Gefällt mir“

Was ist, wenn ich zuerst CloudPanel installiere und dann über die Benutzeroberfläche einen Reverse-Proxy erstelle…


… und/oder im Vhost-Editor…

… kann ich dann Discourse installieren?

Oder ist es notwendig oder in irgendeiner Weise vorzuziehen, Discourse zuerst zu installieren?

Ich möchte die Schritte für den einfachsten/intuitivsten Weg (für andere Einfaltspinsel wie mich :slight_smile: ) angeben.

Es spielt keine Rolle. Solange

  • Discourse die Ports 80/443 nicht verwendet, da ein Konflikt Ihren Reverse-Proxy zum Absturz bringt
  • Discourse kein SSL verwendet, aber Port 80 zu dem Port freigibt, den der Reverse-Proxy für das Backend verwendet

Bedeutet es spielt keine Rolle, dass Discourse als Backend eingerichtet werden muss, bevor Sie den Reverse-Proxy starten, und zu diesem Zeitpunkt eine Zeit lang nicht erreichbar ist.

1 „Gefällt mir“

Das ist keine Einrichtung für Einfaltspinsel. Sie müssen sowohl verstehen, wie ein Reverse-Proxy funktioniert, als auch, wie man Discourse manuell konfiguriert. Es wird nicht einfach oder intuitiv sein.

Es ist schon schwierig genug, die Standardinstallation für Anfänger zu unterstützen. Viele, viele Stunden wurden aufgewendet, um diese Anweisungen für Leute verständlich zu machen, die keine Ahnung von Systemadministration haben.

2 „Gefällt mir“

Viele, viele Stunden wurden aufgewendet, um diese Anweisungen für Leute zu erstellen, die nichts über Systemadministration wissen.

@pfaffman Ich hoffe, ich kann dazu beitragen, diese Stunden für Sie in Zukunft zu reduzieren!

1 „Gefällt mir“

Ist containers/app.yml eine Datei, die vom Installer erstellt wird? (Ich kann sie im Repository nicht finden.)

Ich habe die Datei standalone.yml bearbeitet und sie in app.yml umbenannt.

Wenn ich diese Datei in den Ordner containers/ lege und dann ./discourse-setup ausführe, sollte das funktionieren?

(Vorausgesetzt, ich habe die Einstellungen in meiner app.yml korrekt konfiguriert.)

Das ist es.

Als relativer Neuling bei Discourse sieht der richtige Weg, dies zu tun, ungefähr so aus:

  • Deaktivieren Sie vorübergehend Ihren Reverse-Proxy.
  • Installieren Sie Discourse mit deaktiviertem SSL/Lets Encrypt
  • Überprüfen Sie eine funktionierende Installation auf :80
  • Ändern Sie den Discourse-Port auf 81 oder einen anderen nicht standardmäßigen Port, oder besser noch, verwenden Sie einen Socket.
  • Starten Sie den Reverse-Proxy erneut, konfigurieren Sie ihn gegen die Discourse-Installation (einschließlich HTTPS-Kapselung)
  • Aktivieren Sie force_https

Wenn Sie Discourse nicht ohne den RP dort oben installieren, gibt es zu viele Bereiche, in denen dies schiefgehen kann, um es praktisch zu beheben.

1 „Gefällt mir“

Sie können discourse-setup nicht für Ihr Setup verwenden. Wenn Sie es bearbeitet haben, führen Sie Folgendes aus:

./launcher rebuild app

2 „Gefällt mir“

Wunder über Wunder – wir haben es geschafft! Vielen Dank für all Ihre Hilfe! Ich werde das Vorgehen im obigen Thema-Post dokumentieren.

2 „Gefällt mir“

OK, ich stecke nur bei einer (kleinen, glaube ich) Sache fest…

Um eine zweite Discourse-Instanz zu erstellen, erstelle und bearbeite ich die app2.yml und die server_name.conf für die zweite Discourse, wobei ich DISCOURSE_HOSTNAME und server_name ändere.

Aber wie baue ich dann die app2? Ich habe versucht:

service nginx restart

./launcher stop app

./launcher rebuild app2

und

./discourse-setup (ich hatte ./discourse setup für die Installation der ersten Instanz verwendet und dann die app.yml bearbeitet, und es hat bei der ersten Instanz funktioniert.)

Dieses Vorgehen führte zu einer Discourse unter der zweiten URL, aber sie scheint Daten von der ersten Instanz zu beziehen.

Ich verstehe etwas nicht. Was ist der richtige Weg, die zweite Website unter der zweiten Domain zu erstellen?

2 „Gefällt mir“

Ist Ihr Reverse-Proxy so konfiguriert, dass er auf die zweite Domain hört und den Datenverkehr an einen anderen Port weiterleitet?

2 „Gefällt mir“

Sie müssen das Verzeichnis ändern, das es verwendet, wo /var/discourse/standalone steht, zu etwas anderem (standalone2?).
Sie möchten vielleicht ein Zwei-Container-Setup verwenden, damit Sie nur eine Kopie von postgres laufen lassen (ich glaube, die Multisite-Konfiguration mit Docker hat einige Hinweise), aber wenn Sie viel RAM haben, ist Ihnen das vielleicht egal.

1 „Gefällt mir“

Wow. Das hätte ich nie allein herausgefunden. Du bist mein Held des Tages.

Was ich hier mache, ist (für einen Kunden) den Prototyp eines vielseitigen Discourse-Publishing-Systems für Kreative zu bauen, das Ghost mit Discourse integriert.

Ich bin ein Front-End-Entwickler und muss jetzt das Sysadmin-Wissen vollständig erlernen.

Ich muss also sowohl eine Multisite als auch separate Container aufbauen.

Das ist mein Server-Setup:

  1. Ein dedizierter Server bei Hetzner (6 CPU-Kerne, 64 GB RAM und 2x512 GB NVMe)

  2. Ein VPS bei Contabo (8 CPU-Kerne, 30 GB RAM und 200 GB NVMe)

1 „Gefällt mir“
3 „Gefällt mir“

Ich weiß nichts darüber, aber wenn Sie und andere denken, dass Ihr Tutorial zuverlässig ist, können Sie gerne ein neues erstellen #documentation:sysadmin how-to advanced-setup und welche anderen Tags Sie für passend halten :slight_smile:
(bevor Ihre Antwort in einem Monat automatisch gelöscht wird :stuck_out_tongue: )

3 „Gefällt mir“

OK, ja. Für diese zweite Instanz hat es funktioniert (nachdem eine neue Website in CloudPanel erstellt wurde):

  1. Erstellen und bearbeiten Sie die app2.yml manuell und ändern Sie jede Instanz von standalone in dieser Datei zu standalone2.

  2. Ändern Sie auch standalone zu standalone2 in der Vhost-Datei.

  3. Führen Sie ./launcher rebuild app2 aus.

Ich glaube, ich habe auch den gesamten Cloudflare-Cache gelöscht, nginx neu gestartet und dann auch den Server neu gestartet.

Vielen Dank nochmals für Ihre Hilfe.

2 „Gefällt mir“

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