Wenn Sie sich selbst hosten, sollten Sie Backups außerhalb Ihres Servers vorhalten, falls es zu einem katastrophalen Problem mit Ihrem Server kommt. Stellen Sie sich vor, dass Ihr Serveranbieter eines Tages ohne Vorwarnung insolvent wird, oder Sie haben es irgendwie geschafft, /var/discourse zu löschen und damit Ihre gesamte Installation zu entfernen.
Das absolute Minimum
Stellen Sie sicher, dass Backups aktiviert sind.
Zu berücksichtigende Site-Einstellungen:
enable backups: an (Standard: an)backup frequency: Wie viel Datenverlust sind Sie bereit in Kauf zu nehmen? (Standard: 7 Tage). @pfaffman empfiehlt einen Tag.backup time of day: Wann soll Ihr Forum schreibgeschützt sein, während das Backup erstellt wird?backup with uploads: an, es sei denn, Sie speichern Ihre Uploads woanders oder sichern sie auf andere Weise. (Standard: an)maxiumum backups: Wie paranoid sind Sie? Wie viel Festplattenspeicher haben Sie? (Standard: 5)
Dies ermöglicht es Ihnen, auf ein aktuelles Backup zurückzugreifen, falls Ihre Datenbank beschädigt wird, schützt Sie jedoch nicht, wenn Ihr Discourse-Server ausfällt.
Remote-Backups
Um Ihre Site auf einem neuen Server wiederherzustellen, benötigen Sie mindestens das von Discourse erstellte Backup. Es wird viel einfacher sein, einen neuen Server einzurichten, wenn Sie die Container(s) in /var/discourse//containers haben.
Die genaue Art und Weise, wie Sie Backups außerhalb Ihres Servers vorhalten, geht etwas über den Rahmen dieses Dokuments hinaus, aber eine Methode besteht darin, ein Tool wie rsync zu verwenden, um die Daten auf einen Remote-Server zu kopieren. Es gibt Dutzende von Anleitungen dafür; suchen Sie sich eine aus, die für Sie Sinn ergibt.
Ihre Datei(en) unter /var/discourse/containers ändern sich selten, sodass das manuelle Sichern nur bei Änderungen nicht allzu mühsam ist. Sie enthalten typischerweise Ihre SMTP-Einstellungen und Plugins, die sich aus dem Gedächtnis recht einfach wiederherstellen lassen, aber Sie möchten das im Notfall lieber nicht tun müssen. Falls dies doch passiert, könnten Sie die Site wieder in Betrieb nehmen, auch wenn einige Plugins fehlen und die E-Mail-Funktion gestört ist, und den Rest nach und nach beheben, während die Site mit Einschränkungen weiterläuft.
Sichern auf S3
Der bequemste Weg, Backups außerhalb Ihres Servers vorzuhalten, besteht darin, sie wie unter Set up file and image uploads to S3 beschrieben auf S3 zu übertragen. Wenn Sie dies tun und Ihre S3-Konfigurationseinstellungen an einem Ort speichern, an dem Sie sie finden können (oder in Ihrer app.yml), können Sie Ihre Site direkt von S3 wiederherstellen, sobald der neue Server eingerichtet ist.
Es ist möglich, Einstellungen in Ihrer app.yml-Datei einzubetten. Wenn Sie etwas wie Folgendes im env-Abschnitt Ihrer app.yml aufnehmen, verschwinden diese Einstellungen aus der Weboberfläche, und Sie können Restore a backup from the command line eine Wiederherstellung von der Befehlszeile aus durchführen, ohne ein Admin-Konto erstellen und sich anmelden zu müssen.
DISCOURSE_S3_ACCESS_KEY_ID: 'key'
DISCOURSE_S3_SECRET_ACCESS_KEY: 'secret'
DISCOURSE_BACKUP_LOCATION: 's3'
DISCOURSE_ENABLE_S3_UPLOADS: true
DISCOURSE_S3_BACKUP_BUCKET: 'my-backup-bucket'
DISCOURSE_S3_REGION: 'us-west-1'
Wenn Sie Ihre Uploads ebenfalls in S3 speichern und Ihrem S3-Anbieter vertrauen, dass er stabil ist, könnte Discourse nur die Datenbank sichern (siehe Einstellung oben). Dies verhindert, dass Sie mehrere Kopien aller Ihrer Uploads speichern. Wenn Sie sich für diesen Weg entscheiden, sollten Sie eine Testwiederherstellung durchführen, um sicherzustellen, dass tatsächlich alle Ihre Uploads in S3 vorhanden sind.
Übung macht den Meister
Während eine Kopie Ihres neuesten Backups das absolute Minimum ist, das Sie für die Wiederherstellung in einer Krise benötigen, sollten Sie Ihre Backups mindestens einmal, wenn nicht regelmäßig testen, wenn Sie wirklich sicher sein wollen, dass sie funktionieren. Starten Sie einen neuen Server und prüfen Sie, ob Sie von einem Backup wiederherstellen können.