Richtig. Das ergibt Sinn. Und ich denke, die Verwendung von Mailgun wäre für mich in Ordnung.
Ich werde das alles besser verstehen, wenn ich anfange, eine Multisite einzurichten!
Richtig. Das ergibt Sinn. Und ich denke, die Verwendung von Mailgun wäre für mich in Ordnung.
Ich werde das alles besser verstehen, wenn ich anfange, eine Multisite einzurichten!
Ich springe ein, weil ich mich in einer ähnlichen Situation wie @alltiagocom befinde – ich habe Discourse auf einem eher kleinen Hetzner-Server für meine Haupt-Community installiert, denke aber im Hintergrund darüber nach, ein paar andere Facebook-Gruppen auf Discourse umzustellen, sobald ich den Dreh raus habe.
Ich bin mit „Wordpress Multisite“ vertraut, habe aber verstanden, dass Discourse Multisite aufwändiger ist. Ich habe mich gefragt, was weniger Kopfzerbrechen bereiten würde: zwei eigenständige Websites (oder mehr) zu betreiben oder eine Multisite.
Irgendwelche Erkenntnisse dazu?
Multisite hätte definitiv weniger Wartungsaufwand und somit weniger Kopfschmerzen, aber das kann variieren (YMMV)
Für Discourse-Neulinge empfehle ich, nur zwei Sites zu betreiben.
Ich habe ein Thema erstellt, wie man Multisite ohne Reverse-Proxy betreibt, aber es ist inzwischen veraltet.
Ich denke, alles, was sich ändern muss, ist
kann durch das neue
DISCOURSE_HOSTNAME_ALIASES: domain.com,other.domain.com
Meine zwei Cents, nachdem ich den ganzen Tag damit verbracht habe, dies mit Hilfe meiner alten Notizen, ChatGPT, Claude, des Discourse AI-Bots und einiger hier geteilter Themen (und nachdem ich Notizen und noch mehr Notizen über den gesamten Prozess gemacht habe) zu bearbeiten.
Alles schien einwandfrei zu funktionieren, bis ich zu dem Punkt kam, an dem ich den Reverse-Proxy hinzufügen musste. Meine erste Instanz, die einwandfrei funktionierte, funktionierte nicht mehr. Ich stellte dem KI-Bot von Discourse ein paar weitere Fragen, aber da es mein erster Tag war, hörte er auf zu arbeiten. Es ist eine Einschränkung für neue Benutzer des Bots. Claude, der super hilfreich war, hörte ebenfalls auf, weil ich die kostenlose Version nutze. ChatGPT ist das unzuverlässigste von allen, daher werden alle Antworten von ihm immer mit SEHR viel Zögern von mir aufgenommen…
Dann kam ich wieder ins Forum und begann, ein paar Themen dazu zu lesen, einige davon von @pfaffman verfasst. Das war der letzte Tropfen. Zu komplex, zu viele Fachbegriffe, als dass ich überhaupt verstehen könnte, was ich fragen soll.
Zusammenfassung: Meine erste Instanz funktionierte, also setze ich sie auf den vorherigen Stand zurück (ich bearbeite die app.yml-Datei so, wie sie vor den Änderungen war. Ich baue neu, während ich tippe.
Ehrlich gesagt, angesichts der ganzen Komplexität, auch wenn es mir ermöglichen würde, weitere Communities hinzuzufügen, nachdem ich das erste große Hindernis überwunden habe, glaube ich nicht, dass das Sparen von 4 pro Monat für eine zusätzliche Community das Ende der Welt bedeutet. Da ich bereits weiß, wie man einen Server bei Hetzner einrichtet und dann Discourse installiert, werde ich mich jetzt auf 2 Communities beschränken, 8 für beide bezahlen und weitermachen. Wenn man bedenkt, dass ich vor ein paar Monaten 12 $ für einen Droplet bei Digital Ocean bezahlt habe, kann ich mir die Mühe machen, den gleichen Betrag für 3 Communities zu bezahlen, wenn ich möchte.
Unabhängig davon finde ich diese Abenteuer immer interessant, weil ich dabei etwas Neues lerne und am Ende zumindest sagen kann, warum ich es nicht tun möchte, anstatt nur zu sagen: „Ich werde es nicht tun, weil ich nicht weiß, ob ich es kann.“
Ich weiß die Zeit und die Hilfe zu schätzen, die ihr alle hier geteilt habt, und hoffentlich wird dieses Thema anderen helfen, die das erreichen wollten, was ich versucht habe.
![]()
Ende der Übertragung!
Das ist genau der Grund, warum ich sagte, Sie müssen Ihre Strategie überdenken. Obwohl das, was Sie zu erreichen versuchten, nicht unmöglich war, da es schon einmal gemacht wurde, erfordert es ein erhebliches Verständnis von Discourse, um es richtig hinzubekommen.
Ich würde empfehlen, weiterhin in Ihrer Freizeit zu experimentieren, wenn Sie mehr darüber lernen möchten, wie Discourse funktioniert. So haben die meisten von uns hier es gelernt.
Ich habe viel länger gebraucht, als ich zugeben möchte, um es (größtenteils) herauszufinden!
6 Beiträge wurden in ein neues Thema aufgeteilt: Mehrere App-Container für eine einzelne Discourse-Site
Ich dokumentiere eine unterstützte Discourse-Multisite-Installation als Befehls-für-Befehl-Runbook.
Ich habe zuvor mit einem Ansatz „mehrere eigenständige Installationen auf einem Server“ experimentiert, aber diese Konfiguration wird nicht unterstützt. Dieser Beitrag konzentriert sich nur auf die unterstützte Multisite-Architektur, umgeschrieben in einem linearen Format für Leute, die explizite Schritte bevorzugen.
app)multisite.ymlBei Multisite gibt es nur einen App-Container. Daher startet ./launcher rebuild app den einzigen Knoten neu. Das bedeutet, dass für alle Sites eine kurze Ausfallzeit zu erwarten ist.
Fügen Sie alle Hostnamen zu DISCOURSE_HOSTNAME_ALIASES hinzu, damit Let’s Encrypt + Host-Validierung zuverlässig funktionieren.
Jede Site erstellt ihr eigenes Backup unter /admin/backups. Das Wiederherstellen eines Site-Backups auf einer eigenständigen Installation ist der normale Migrationspfad.
| Schritt | Befehl |
|---|---|
| System aktualisieren | apt-get update && apt-get upgrade -y |
| Abhängigkeiten installieren | apt-get install -y git curl sudo |
| Schritt | Befehl |
|---|---|
| Repo klonen | git clone https://github.com/discourse/discourse_docker.git /var/discourse |
| Verzeichnis wechseln | cd /var/discourse |
| Schritt | Befehl |
|---|---|
| Setup ausführen | ./discourse-setup |
Dies erstellt /var/discourse/containers/app.yml und startet den ersten Hostnamen (z. B. forum1.example.com).
| Schritt | Befehl |
|---|---|
| Config-Verzeichnis erstellen | mkdir -p /var/discourse/config |
| Multisite-Datei bearbeiten | nano /var/discourse/config/multisite.yml |
Beispiel multisite.yml:
forum1:
host_names:
- forum1.example.com
forum2:
host_names:
- forum2.example.com
| Schritt | Befehl |
|---|---|
| app.yml bearbeiten | nano /var/discourse/containers/app.yml |
Hinzufügen:
DISCOURSE_MULTISITE: trueDISCOURSE_HOSTNAME_ALIASES: forum1.example.com,forum2.example.com| Schritt | Befehl |
|---|---|
| Rebuild | ./launcher rebuild app |
| Schritt | Befehl |
|---|---|
| In Container wechseln | ./launcher enter app |
| Multisite-Migration ausführen | rails multisite:migrate |
| Beenden | exit |
| Schritt | Befehl |
|---|---|
| Neustart | ./launcher restart app |
Besuchen Sie:
https://forum1.example.comhttps://forum2.example.comJede Site hat ihre eigenen Admins, Benutzer, Uploads und Backups.
Pro-Site-Admin:
/admin/backupsStellen Sie dieses Backup später auf einer eigenständigen Installation wieder her, wenn Sie die Site auf einen eigenen Server aufteilen möchten.
Wenn etwas oben mit den aktuellen Best Practices in Konflikt steht, werde ich dieses Runbook gerne aktualisieren – die Absicht ist, eine lineare, unterstützte Multisite-Checkliste bereitzustellen, die Versuch und Irrtum reduziert.
Wow! Das ist die klare Anleitung, die ich brauchte, um etwas Klarheit in die trübe Welt von Multisite zu bekommen!! Es scheint tatsächlich sehr machbar und einfacher zu sein, als ich es mir vorgestellt hatte.
Es ist irgendwie schade, dass es nur in einem einzigen Container gemacht werden kann, aber ich kann intuitiv verstehen, warum das notwendig ist. Daher wäre es am besten für mehrere kleinere, ruhigere selbst gehostete Foren geeignet.
Ihre Antwort verdient definitiv einen eigenen (Wiki-)Beitrag und sollte gut ausgeschildert werden.
Könnte etwas für mich sein ![]()
Ist dies auch anwendbar, wenn Discourse bereits als „Monosite“ läuft und man es in eine Multisite umwandeln möchte?
Vielen Dank für die Arbeit!
Danke! Dies entspricht immer noch der aktuellen unterstützten Multisite-Praxis – nichts davon steht im Konflikt mit der Funktionsweise von Discourse Multisite heute.
Ja, die gleichen Schritte gelten, wenn eine bestehende Monosite-Installation in eine Multisite umgewandelt wird: Eine Monosite ist effektiv eine Multisite mit einer einzigen Standardseite. Sie können DISCOURSE_MULTISITE aktivieren, multisite.yml (einschließlich der bestehenden Seite) hinzufügen, einmal neu erstellen und rails multisite:migrate an Ort und Stelle ausführen.
Wenn hier etwas ist, das die Best Practices nicht mehr widerspiegelt, aktualisiere ich das Runbook sehr gerne – das Ziel ist eine lineare, unterstützte Checkliste, die Versuch und Irrtum vermeidet.