Was sind die einfachsten, aber zuverlässigsten Methoden, um sicherzustellen, dass ein Discourse-Forum immer wiederhergestellt werden kann?

Über die Jahre hinweg habe ich Freunden geholfen, die ihr eigenes Forum selbst hosten.

Ich habe sie dazu gebracht, einen Hetzner-Server zu mieten, automatisierte Backups in Discourse einzurichten, und ich synchronisiere diese mit rclone und einem Cron-Job auf meinen Google Drive. Jeder Administrator jedes Forums hat Zugriff auf seine eigenen Backups auf meinem Drive. Für mich als Nicht-Sysadmin ist das die einfachste und sicherste Lösung, die ich mir vorstellen kann.

Ein paar Mal habe ich bemerkt, dass die Tokens in rClone nicht aktualisiert wurden (zumindest auf einer Instanz), und ich musste es neu konfigurieren. Da ich keinerlei Benachrichtigungen erhalte, falls eine Synchronisierung fehlschlägt, schaue ich mir meinen Drive ab und an manuell an, um sicherzustellen, dass die letzten Backups aktuell sind.

Wenn du freiwillig jemandem oder einer Vereinigung helfen würdest, ein Forum zu hosten, welche Lösung würdest du einrichten, um sicherzustellen, dass es immer Backups an einem Ort gibt, die im Falle eines Problems sicher wiederhergestellt werden können?

Backups werden per rsync über ssh mit einem eingeschränkten Konto aus einem Cronjob gezogen. Eigentlich nicht von mir, aber von einem meiner Mods. Ich erstelle und lade ein Backup herunter, wenn ich ein Update durchführe. Im einen Fall könnten wir also ein paar Tage an Forum-Aktivität verlieren, im anderen Fall einen Monat oder mehr.

Ich sollte wahrscheinlich einen eigenen Crontab einrichten. Ich könnte auch die Häufigkeit der Backups erhöhen – aktuell auf 2 Tage eingestellt.

In beiden Fällen müssen wir als Administratoren unserer eigenen Systeme zumindest eine gewisse Kompetenz mitbringen. Das Forum würde nur verloren gehen, wenn beide unsere heruntergeladenen Kopien und unsere eigenen Backups sowie der Server selbst verloren gehen.

Nachtrag: Guter Punkt. Man muss einen positiven Check haben, dass der Prozess funktioniert, und eine Vorstellung – auch wenn sie noch so oberflächlich ist –, dass die heruntergeladenen Backups in Ordnung sind.

Ich habe die Domain nicht besonders sorgfältig behandelt: Im Idealfall sollte auch diese eine doppelte Verwaltung und eine Art gemeinsame Eigentümerschaft haben. Wenn wir die Kontrolle verlieren, müsste das Forum auf einer neuen Domain neu erscheinen – es könnte den Mitgliedern per E-Mail Digests und Benachrichtigungen senden, sodass sie bei etwas Vertrauen wiederaufgenommen werden könnten.

Für Backups würde ich S3 empfehlen. Tägliche Backups des Forums, wenn du auf der sicheren Seite sein möchtest. Backups des VPS, wenn du es besonders sicher haben willst.

Hier gibt es außerdem:

Nun ja, ich sichte die Datenbank stündlich :man_shrugging: Es ist dasselbe Prinzip wie beim E-Commerce — man muss darüber nachdenken, welcher Zeitraum der längste ist, den man wiederherstellen kann und/oder möchte.

Backup auf S3 und eine externe Festplatte mit restic

Dem stimme ich zu. Wenn du die YML-Datei(en) mit der S3-Konfiguration und die Backups auf S3 hast, brauchst du zum Wiederherstellen des Forums auf einem neuen Server nur die YML-Datei(en). Der zusätzliche Vorteil ist, dass deine Festplatte nicht mit Backups vollgelagert wird.

HINWEIS: Du musst daran denken, die Rechnung für den S3-Bucket sowie für die VM zu bezahlen. Ich glaube, Cloudflare ist das günstigste?

Mir ist es einmal passiert, dass jemand die Kontrolle über sein AWS-Konto verloren hat und dabei alle seine Bilder verlor. Also: Nicht nur daran denken, die Rechnungen zu bezahlen – das ist ein Kostenfaktor, den man nicht unterschätzen sollte.

Genau das – bewahre nicht alle Kopien deiner Daten bei nur einem Anbieter auf.

Ich habe gerne drei verschlüsselte Kopien: eine auf dem Host, eine in der Cloud (S3-kompatibel) und die letzte auf einer optischen HD oder einem USB-Stick.

Ich plane, meine Backups in dezentraler Speicherung abzulegen, und prüfe derzeit auch die Zuverlässigkeit der verfügbaren Optionen.

Derzeit führe ich einmal täglich ein Backup durch und lade es hoch.
Die Datenbank wird über die integrierte Backup-Funktion von Discourse gesichert, und die hochgeladenen Originalbilder werden täglich mit restic als inkrementelles Backup gesichert.
Alles wird auf eine Cloud-Plattforms hochgeladen, aber der aktuelle Nachteil ist, dass nur auf eine einzige Plattform hochgeladen wird. Es wäre wünschenswert, in Zukunft auf mehrere Cloud-Plattformen hochzuladen.

Nutze Offsite-Backups und Object Storage. Ich verwende Cloudflare R2 (S3-kompatibel) und habe bereits mehrfach auf verschiedenen Servern wiederhergestellt. Die Verwaltung und Wiederherstellung sind unkompliziert. Außerdem empfehle ich einen Dual-Container-Build.

Eine nützliche Taktik für diese Art von Fragen besteht darin, das Bedrohungsmodell zu betrachten.

Einige dieser Punkte haben wir bereits gesehen:

  • Feuer zerstört das Gebäude, in dem sich Ihr Server befindet
  • Sie verlieren die Kontrolle über Ihr Konto beim Anbieter
  • Die Person, die über Ihre Domain Kontrolle hat, ist dauerhaft nicht erreichbar
  • Sie verlieren den Zugriff auf ein E-Mail-Konto
  • Ihre Backups erweisen sich als veraltet, weil etwas nicht mehr funktioniert
  • Sie können Ihre Backups aus technischen Gründen nicht wiederherstellen
  • Ihr Foren-Administrator ist dauerhaft nicht erreichbar oder kooperiert nicht

Kurz gesagt:

  • Gebäude brennen ab oder werden überflutet
  • Menschen geraten aneinander oder sterben
  • Unternehmen ändern ihre Richtlinien und treffen willkürliche Entscheidungen
  • Jede einzelne Kopie von Daten kann sich als fehlerhaft oder unzugänglich erweisen

Betrachten Sie jeden dieser Punkte für jede Person, jedes Unternehmen und jede Kopie und sehen Sie, wie Ihre Verwundbarkeit aussieht.

git-annex — schau gerne mal rein, falls dich die technischen Aspekte nicht abschrecken.