Dieser Leitfaden erklärt, wie Sie ein Discourse-Backup über die Befehlszeile wiederherstellen, ohne die Discourse-Web-UI zu verwenden.
Erforderliche Benutzerebene: Administrator
Konsolenzugriff erforderlich
Hier erfahren Sie, wie Sie ein Discourse-Backup über die Befehlszeile wiederherstellen, ohne jemals die Discourse-Web-UI zu starten. Dies ist nützlich, wenn Sie Server wechseln.
Voraussetzungen
Bevor Sie beginnen, stellen Sie sicher, dass Sie die folgenden Schritte abgeschlossen haben:
- Laden Sie die neueste Sicherungsdatei von der Quell-Discourse-Instanz herunter.
- Richten Sie die Ziel-Discourse-Instanz ein, indem Sie
./discourse-setupausführen oder Ihre vorhandeneapp.ymlkopieren. - Stellen Sie sicher, dass die Ziel-Discourse-Instanz auf der neuesten Version ist. Aktualisieren Sie sie bei Bedarf.
Die Sicherung übertragen
- Stellen Sie per SSH eine Verbindung zum Zielserver her oder erstellen Sie den Sicherungsordner dort auf andere Weise:
mkdir -p /var/discourse/shared/standalone/backups/default
- Laden Sie Ihre Sicherungsdatei auf den Zielserver hoch.
scp /path/to/backup/backup.tar.gz root@192.168.1.1:/var/discourse/shared/standalone/backups/default
Stellen Sie sicher, dass Sie die Pfade, Dateinamen und Servernamen durch die von Ihnen verwendeten ersetzen – aber Sie möchten, dass die Sicherungsdatei hier landet:
/var/discourse/shared/standalone/backups/default
Sie können Ihre Discourse-Sicherungsdatei auch von beliebten Web-Speicherseiten wie Google Drive, Dropbox, OneDrive usw. hoch- und herunterladen – Sie müssen die spezifischen Befehlszeilenanweisungen basierend auf Ihrem bevorzugten Web-Speicheranbieter nachschlagen.
ÄNDERN SIE DEN DATEINAMEN DER SICHERUNG NICHT! Discourse behandelt den Dateinamen der Sicherung als Metadaten. Wenn Sie den Dateinamen ändern, funktioniert die Wiederherstellung nicht. Behalten Sie den ursprünglichen Dateinamen bei.
Ersetzen Sie /path/to/backup/discourse-xyz.tar.gz durch den lokalen Pfad Ihrer Sicherungsdatei und ersetzen Sie \u003cserver_ip_address\u003e durch die IP-Adresse des Zielservers.
Wenn Nginx als Reverse-Proxy verwendet wird, stellen Sie sicher, dass alle Pfade zur Sicherung vom Container lesbar sind und Nginx die
.sock-Datei lesen kann.
Die Sicherung wiederherstellen
- Greifen Sie auf Ihren Zielserver zu und navigieren Sie zum Discourse-Ordner:
cd /var/discourse
- Rufen Sie den Discourse Docker App-Container auf:
./launcher enter app
- Aktivieren Sie die Wiederherstellungsfunktion:
discourse enable_restore
- Stellen Sie die Sicherungsdatei wieder her:
discourse restore sitename-2019-02-03-042252-v20190130013015.tar.gz
Tipp: Wenn Sie
discourse restoreohne Dateinamen ausführen, werden alle verfügbaren Sicherungsdateien aufgelistet.
Wenn die Einstellung
backup_locationIhrer Website so konfiguriert ist, dass S3 verwendet wird, Sie die Sicherungsdatei aber manuell in das lokale Dateisystem hochgeladen haben, müssen Sie--location localangeben:discourse restore --location local sitename-2019-02-03-042252-v20190130013015.tar.gzVerwenden Sie auf ähnliche Weise
--location s3, um die Wiederherstellung direkt aus einer S3-Sicherung vorzunehmen, ohne sie vorher herunterzuladen.
- Beenden Sie den Discourse Docker App-Container:
exit
Erneut erstellen (Rebuild)
Nachdem Sie die Sicherung wiederhergestellt haben, können Sie die Zielinstanz erneut erstellen, um sicherzustellen, dass alle Einstellungen und Konfigurationen korrekt angewendet werden.
Jetzt ist ein guter Zeitpunkt, um
/var/discourse/containers/app.ymlmit vollständigem HTTPS, zusätzlichen Plugins oder CDN-Konfigurationen zu aktualisieren. Vergleichen Sie dieapp.yml-Konfiguration beider Instanzen, um sicherzugehen!
cd /var/discourse
./launcher rebuild app
E-Mail aktivieren
Wenn eine Sicherung wiederhergestellt wird, wird der ausgehende Mailverkehr für Nicht-Mitarbeiter deaktiviert. Sie möchten nicht, dass Ihr Testserver, neuer Server oder ein Server, für den Sie aus einem anderen Grund eine Sicherung wiederhergestellt haben, anfängt, Ihre Benutzer anzuschreiben! Ändern Sie die Website-Einstellung disable_emails auf „no“, um E-Mails wieder zu aktivieren.
Das war’s. Ihr Discourse-Server wurde erfolgreich wiederhergestellt.