Dies ist eine Anleitung zum Verschieben Ihrer Discourse-Instanz von einem Server auf einen anderen, einschließlich aller Einstellungen und Daten. Diese Anleitung gilt für selbst gehostete Discourse-Instanzen, die Docker verwenden.
Erforderliche Benutzerebene: Systemadministrator
Dieses Verfahren beinhaltet Änderungen an Domänen und DNS. Stellen Sie sicher, dass Sie Zugriff auf den Quell- und den Zielserver haben.
Diese Anleitung führt Sie durch den Prozess der Migration Ihrer Discourse-Instanz von einem Server auf einen anderen und stellt sicher, dass Ihre Daten, Einstellungen und Konfiguration erhalten bleiben.
Hinzugefügter Haftungsausschluss von @pfaffman 2025-09-12T05:00:00Z.
Diese Anweisungen funktionieren jetzt nicht mehr gut, da Sie jetzt HTTPS und Let’s Encrypt verwenden, was erfordert, dass der neue Server auf ihn zeigt, damit er Schlüssel anfordern kann. Was ich empfehle, ist, einen Discourse-Standort mit rsync auf einen anderen VPS zu verschieben zu befolgen (möglicherweise unter Verwendung von --exclude postgres* und dann die Datenbank über die Befehlszeile zu sichern und wiederherzustellen). Dies ist elegant, da Sie, wenn Sie wissen wie, Ihr lokales DNS so ändern können, dass es auf den neuen Server zeigt, damit Sie testen können, ob es funktioniert, während der Rest des Internets immer noch die alte Seite sieht.
Zusammenfassung
Sie werden die folgenden Schlüsselschritte in dieser Anleitung ausführen:
- Sichern Sie Ihre aktuelle Discourse-Instanz (Quellserver).
- Übertragen Sie die Sicherungsdatei auf Ihre Ziel-Discourse-Instanz (Zielserver).
- Stellen Sie das Backup auf dem Zielserver wieder her.
- Aktualisieren Sie die DNS-Einstellungen (falls zutreffend).
Anpassen der DNS-Einstellungen (falls erforderlich)
Wenn Sie dieselbe Domäne für den neuen Server verwenden, reduzieren Sie im Voraus die TTL (Time To Live) Ihres DNS-Eintrags. Dies gewährleistet eine minimale Ausfallzeit während der Weitergabe der aktualisierten DNS-Einträge. Wenn Sie eine neue Domäne verwenden, kann dieser Schritt übersprungen werden.
Anmeldung und Vorbereitung des Quellservers
- Melden Sie sich bei Ihrer Quell-Discourse-Instanz mit einem Konto an, das Administratorberechtigungen besitzt.
- Stellen Sie sicher, dass sowohl der Quell- als auch der Zielserver Folgendes verwenden:
- Die gleiche Discourse-Version.
- Die gleiche Gruppe von Plugins.
- Aktualisieren Sie die Discourse-Version auf beiden Servern, indem Sie
/admin/upgradeaufrufen.
Vermeiden Sie es, ein neueres Backup auf einer älteren Discourse-Version oder inkompatiblen PostgreSQL-Versionen wiederherzustellen, da dies zu Fehlern führen kann.
Erstellen und Herunterladen des Backups
- Navigieren Sie auf Ihrer Quell-Discourse-Instanz zu
/admin/backups. - Klicken Sie auf die Schaltfläche Backup, um ein Backup zu erstellen:
- Bestätigen Sie bei Aufforderung durch Klicken auf Yes (Ja).
- Sobald das Backup abgeschlossen ist, wechseln Sie zur Registerkarte Backup files und suchen Sie das neu erstellte Backup.
- Klicken Sie auf Download, um eine E-Mail mit einem Download-Link zu erhalten. Klicken Sie auf den Link in der E-Mail, um die Sicherungsdatei lokal zu speichern.
Überprüfen Sie vor dem Fortfahren Ihre
app.yml-Datei, um sicherzustellen, dass optionale Einstellungen, wie z. B. CDN-Konfigurationen, installierte Plugins oder HTTPS-Unterstützung, zwischen dem Quell- und dem Zielserver konsistent sind.
Wiederherstellen des Backups auf dem Zielserver
Um das Backup über die Befehlszeile wiederherzustellen, lesen Sie bitte die relevante Dokumentation.
- Melden Sie sich als Administrator bei Ihrer Ziel-Discourse-Instanz an.
- Navigieren Sie zu
/admin/backups/settingsund aktivieren Sie die Einstellungallow restore. - Gehen Sie zu
/admin/backupsund klicken Sie auf die Registerkarte Backup files. Laden Sie die zuvor heruntergeladene Sicherungsdatei hoch, indem Sie auf die Schaltfläche Upload klicken:
- Klicken Sie nach Abschluss des Uploads auf das ⋮ (weitere Optionen)-Menü neben dem hochgeladenen Backup und dann auf Restore (Wiederherstellen):
- Bestätigen Sie bei Aufforderung durch Klicken auf Yes (Ja).
Der Wiederherstellungsvorgang wird gestartet. Dies kann je nach Datenbankgröße einige Zeit dauern. Nach Abschluss des Vorgangs werden Sie automatisch abgemeldet.
Abschluss und Anmeldung
- Melden Sie sich mit Ihren Admin-Anmeldeinformationen bei Ihrer Ziel-Discourse-Instanz an.
- Wenn die Seite mit HTTPS gesichert wurde, stellen Sie sicher, dass HTTPS auf dem neuen Server aktiviert ist. Wenn es nicht richtig konfiguriert ist, verwenden Sie die Rails-Konsole, um die Einstellung „force https“ vorübergehend zu deaktivieren.
- Reaktivieren Sie alle optionalen Konfigurationen, indem Sie die Datei
app.ymlbearbeiten und Ihre Instanz neu erstellen. Dies kann Folgendes umfassen:- Aktivierung der CDN-Unterstützung.
- Installieren zusätzlicher Plugins.
- Festlegen von HTTPS-Konfigurationen.
Häufige Probleme und Lösungen
Die Backup-Datei wird nicht wiederhergestellt
- Überprüfen Sie, ob die Discourse- und PostgreSQL-Versionen zwischen dem Quell- und dem Zielserver übereinstimmen.
Nach der Wiederherstellung keine Anmeldung möglich (bei aktiviertem HTTPS)
- Verwenden Sie die Rails-Konsole, um
force httpsvorübergehend zu deaktivieren, indem Sie Folgendes ausführen:SiteSetting.force_https = false



