Ihre Discourse-Instanz auf einen anderen Server verschieben

:bookmark: 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.

:person_raising_hand: Erforderliche Benutzerebene: Systemadministrator

:warning: 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:

  1. Sichern Sie Ihre aktuelle Discourse-Instanz (Quellserver).
  2. Übertragen Sie die Sicherungsdatei auf Ihre Ziel-Discourse-Instanz (Zielserver).
  3. Stellen Sie das Backup auf dem Zielserver wieder her.
  4. 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

  1. Melden Sie sich bei Ihrer Quell-Discourse-Instanz mit einem Konto an, das Administratorberechtigungen besitzt.
  2. Stellen Sie sicher, dass sowohl der Quell- als auch der Zielserver Folgendes verwenden:
    • Die gleiche Discourse-Version.
    • Die gleiche Gruppe von Plugins.
  3. Aktualisieren Sie die Discourse-Version auf beiden Servern, indem Sie /admin/upgrade aufrufen.

:exclamation: 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

  1. Navigieren Sie auf Ihrer Quell-Discourse-Instanz zu /admin/backups.
  2. Klicken Sie auf die Schaltfläche Backup, um ein Backup zu erstellen:
  3. Bestätigen Sie bei Aufforderung durch Klicken auf Yes (Ja).
  4. Sobald das Backup abgeschlossen ist, wechseln Sie zur Registerkarte Backup files und suchen Sie das neu erstellte Backup.
  5. 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.

:warning: Ü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

:bulb: Um das Backup über die Befehlszeile wiederherzustellen, lesen Sie bitte die relevante Dokumentation.

  1. Melden Sie sich als Administrator bei Ihrer Ziel-Discourse-Instanz an.
  2. Navigieren Sie zu /admin/backups/settings und aktivieren Sie die Einstellung allow restore.
  3. Gehen Sie zu /admin/backups und klicken Sie auf die Registerkarte Backup files. Laden Sie die zuvor heruntergeladene Sicherungsdatei hoch, indem Sie auf die Schaltfläche Upload klicken:
  4. Klicken Sie nach Abschluss des Uploads auf das ⋮ (weitere Optionen)-Menü neben dem hochgeladenen Backup und dann auf Restore (Wiederherstellen):
  5. 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

  1. Melden Sie sich mit Ihren Admin-Anmeldeinformationen bei Ihrer Ziel-Discourse-Instanz an.
  2. 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.
  3. Reaktivieren Sie alle optionalen Konfigurationen, indem Sie die Datei app.yml bearbeiten 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 https vorübergehend zu deaktivieren, indem Sie Folgendes ausführen:
    SiteSetting.force_https = false
    
74 „Gefällt mir“
How to migrate Discourse to new server
How to migrate my Discourse instance to a fresh new install
Move Discourse to a new server without setting up the web UI first?
Transfer from bitnami to normal discourse
Can I restore backups from older Discourse versions?
How to migrate the discourse container to another machine
Update from 2.9.0 beta2 to beta4 failed (my site is down)
Images lost when migrating to self-hosting
How to downgrade a Digital Ocean Virtual
How to backup and restore a whole /var/discourse app folder?
Exporting an AWS instance
Preserving user sessions when migrating between hosts
Postgres failing to update?
Migrate from VPS to a Dedicated
Site migration and plugins
How to migrate Discourse from one server to another with the same DNS name
Migrate a NodeBB forum with MongoDB to Discourse
Migrate a Ning forum to Discourse
Migrate a Phorum forum to Discourse
Migrate a PunBB forum to Discourse
Migrate from another forum to Discourse
Migrate a Kunena 3 forum to Discourse
Preserve user sessions when migrating to a new host
How do I move the discourse installed server to another server without loss?
Can snapshots be used when upgrading the host OS?
Unknown Primary Key
How to switch Discourse servers?
" undefined method `deprecated?' for nil:NilClass" on rebuild
How to switch Discourse servers?
Some settings aren't saving
Steps involved to downgrade from 2GB to 1GB on DO?
Moving to Another VPS Provider
Getting "permission denied" on new VPS install
How Do I transfer Discourse between servers?
Multi-instance migration failed when adding a new instance
Help Needed Migrating Discourse Forum to New Shanghai Server – db:migrate Error
Plesk server migration
Seeing "welcome to nginx" after backup restore
Issues while migrating from Kunena
Moving to New Server woes
Error: Can't notify admin while restoring backup during a migration to a fresh install
How to migrate from one Digitalocean Droplet to a another Droplet in a different Digitalocean account
How might we better structure #howto?
Trouble with postgre(maybe)
Move Digital Ocean 1-Click install to Standard supported install
Can I retain my forum content if I change its original IP?
Server upgrade from ubuntu 18 to 20
How to move Discourse to a different server when using Digital Ocean's Volumes (Block Storage)
How to migrate Discourse Forum data (Topics, Chat, and Configuration) to another server
How to clone Discourse server to a new server?
Move from standalone container to separate web and data containers
How do I move the discourse installed server to another server without loss?
Migrate a phpBB3 forum to Discourse
Migrate a vBulletin 4 forum to Discourse
Migrate from GetSatisfaction to Discourse
Migrate a NodeBB forum with Redis to Discourse
Migrate a MyBB forum to Discourse