Dieser Artikel ist eine Übersetzung des englischen Originals: Change the domain name or rename your Discourse
Wenn du eine Discourse-Instanz basierend auf den Installationsanleitungen auf GitHub installiert hast und nun die Domain dieser Instanz ändern möchtest, lies diese Anleitung. Falls du den offiziellen Discourse-Hosting-Service nutzt, konsultiere bitte die detaillierten Informationen auf der Seite Domain für gehostetes Discourse konfigurieren.
Angenommen, du möchtest die Domain deiner Discourse-Instanz von talk.foo.com → talk.bar.com ändern.
Lass uns diesen Prozess beginnen.
TTL in den erweiterten DNS-Einstellungen auf „niedrig" setzen
Du möchtest sicherstellen, dass alle von der Domainänderung erfahren. Daher kannst du in den DNS-Einstellungen deiner Domain die TTL (Time to Live) auf einen niedrigen Wert setzen, beispielsweise 60 Minuten.
Der Hauptzweck dieser Einstellung ist es, die Wirksamkeit deiner DNS-Änderungen zu beschleunigen. Änderungen an DNS-Einträgen benötigen aufgrund von Caching im Internet Zeit, bis sie überall wirksam werden.
Alle Konfigurationen bezüglich der alten Domain aus der Instanz entfernen
Besuche /admin/site_settings und suche nach allen Einstellungen, die die alte Domain betreffen.
Solltest du bei der Suche Konfigurationen finden, die sich auf die alte Domain beziehen, stelle sicher, dass du diese entsprechend anpasst.
Die Discourse-Konfiguration in der Datei app.yml bearbeiten
Optional kannst du den Befehl
./discourse-setuperneut ausführen und über die Eingabeaufforderungen die neue Domain in derapp.yml-Konfigurationsdatei aktualisieren.
Bearbeite in der Datei app.yml den Eintrag für den Hostnamen:
## Der Hostname der Discourse-Instanz wird wie folgt geändert
DISCOURSE_HOSTNAME: 'talk.bar.com'
(Falls du zusätzlich ein CDN verwendest, kannst du in der app.yml-Datei die entsprechenden CDN-Konfigurationen zunächst auskommentieren. Nach Abschluss der Änderungen kannst du die Kommentare wieder entfernen.)
Nachdem du die oben genannten Konfigurationen vorgenommen hast, musst du Discourse neu aufbauen:
./launcher rebuild app
Sobald der Neuaufbau abgeschlossen ist, ist deine Instanz nur noch über die neue Domain erreichbar.
Deine DNS-Konfiguration ändern
- Lösche die DNS-Einträge der alten Domain.
- Passe die DNS-Einträge der neuen Domain so an, dass sie auf deine Discourse-Instanz verweisen.
Nach Abschluss dieser Konfigurationen solltest du problemlos über die neue Domain auf deine Discourse-Instanz zugreifen können.
Du kannst die DNS-Konfiguration auch parallel zum Neuaufbau der Instanz ändern.
Überprüfe, ob alle Funktionen ordnungsgemäß erreichbar sind. Bei der Überprüfung möchten wir zunächst sicherstellen, dass wir uns erfolgreich in unser Discourse-System einloggen können. Dies wird im folgenden Abschnitt behandelt.
Drittanbieter-Logins anpassen
Je nachdem, wie du dich einloggst, musst du dies umgehend anpassen. Andernfalls wirst du nach der Domainänderung nicht mehr über Drittanbieter-Logins Zugang erhalten.
Auch die Konfigurationen für deine Social-Media-Logins (Twitter, Facebook, Google, Yahoo, GitHub) müssen so angepasst werden, dass die Callback-URLs mit deiner neuen Domain übereinstimmen.
Bitte konsultiere die offiziellen Artikel, um diese Konfigurationen und Änderungen vorzunehmen.
Alle Referenzen der alten Domain in Themen durch die neue Domain ersetzen
Derzeit enthalten alle Themen und Beiträge noch Links zur alten Domain. Wir müssen diese nun so ändern, dass sie auf die neue Domain verweisen. Gehen wir wie folgt vor:
./launcher enter app
Gib dann folgenden Befehl ein:
discourse remap =BEFORE= =AFTER=
Nachdem du die Anweisungen befolgt hast, führe den folgenden Befehl aus:
rake posts:rebake
Die Umbenennungen in den Themen werden nun so durchgeführt, dass die alte Domain durch die neue ersetzt wird. Anschließend generieren wir alle Beiträge neu, um sicherzustellen, dass nichts übersehen wurde.
Damit sind alle Änderungen zur Domain-Umstellung abgeschlossen!
(Vergiss nicht, die zuvor auskommentierten CDN-Einstellungen wieder zu aktivieren, falls du dies getan hast.)
Weißt du, wie Eingabefelder in Themen erstellt werden?
Für weitere Informationen lies bitte den Originalartikel Wie man die Domain von Discourse ändert - Discourse - OSSEZ.
Vielen Dank für die Unterstützung durch das offizielle Team.
