Für Administratoren
← Alle Themen

Sicherung und Wiederherstellung

Was Sie außer der Datenbank sichern, warum MASTER_KEY genauso wichtig ist und wie Sie eine Wiederherstellung testen.

Bei einer Installation auf dem eigenen Server steht alles, was zählt, in der Datenbank: Einstellungen, Anweisungen, Wissensquellen, Nachrichten, Entwürfe und die verschlüsselten Geheimnisse. Sie sichern also die Datenbank – und die Datei .env mit dem MASTER_KEY.

Was Sie sichern

  1. Die Datenbank – mit einer regelmäßigen Sicherung, kopiert außerhalb des Servers.
  2. .env, vor allem MASTER_KEY – außerhalb des Servers, an einem sicheren Ort. Ohne ihn können Sie die API-Schlüssel, die Zugriffe auf Postfächer und die Anmelde-Clients aus der Datenbank nicht lesen; die Sicherung wäre nutzlos. Wir haben ihn nicht.

Eine Datenbanksicherung enthält die Post der Kunden. Schützen Sie sie wie das Postfach selbst.

Sicherungen vor einer Aktualisierung sind kein Backup

Vor jeder Aktualisierung speichert draften eine Datenbanksicherung im Ordner backups/ im Verzeichnis der Installation und behält die letzten drei (die Zahl legt DRAFTEN_BACKUPS fest). Sie liegen allerdings auf derselben Platte wie die Datenbank – sie sind ein Sicherheitsnetz für Aktualisierungen, kein Backup. Kopieren Sie sie zusammen mit .env vom Server weg, so wie Ihre anderen Backups.

Eine regelmäßige Datenbanksicherung

Im Verzeichnis der Installation:

docker compose exec -T db sh -c 'mariadb-dump -uroot -p"$MARIADB_ROOT_PASSWORD" --single-transaction --databases draften' | gzip > draften-$(date +%F).sql.gz

Führen Sie das regelmäßig aus (etwa täglich per cron) und bewahren Sie die Sicherungen außerhalb des Servers auf.

Wiederherstellen

Halten Sie die Worker an, laden Sie die Sicherung und starten Sie die Version, die bei der Erstellung der Sicherung lief (bei Sicherungen aus backups/ steht sie im Dateinamen):

docker compose stop worker
gunzip -c <dump>.sql.gz | docker compose exec -T db sh -c 'mariadb -uroot -p"$MARIADB_ROOT_PASSWORD"'
./draften update <version> --no-backup

Auf einem neuen Server installieren Sie zuerst draften und tragen den MASTER_KEY aus der Zeit der Sicherung in .env ein.

Den Verschlüsselungsschlüssel ersetzen

MASTER_KEY lässt sich ohne Ausfall ersetzen – in der Oberfläche (Installation → Installation → Verschlüsselungsschlüssel → Verschlüsselungsschlüssel ersetzen, braucht den Updater) oder mit dem Befehl:

./draften rotate-key

Der neue Schlüssel wird zuerst in .env geschrieben, die Container übernehmen ihn nacheinander, und alles Gespeicherte wird mit ihm neu verschlüsselt. Der alte Schlüssel bleibt als MASTER_KEY_PREVIOUS in .env, solange backups/ Sicherungen von vor dem Ersetzen enthält – nur er kann sie öffnen. Solange es eine solche Sicherung gibt, lehnt draften ein weiteres Ersetzen ab.

Kopieren Sie nach dem Ersetzen die neue .env sofort vom Server weg. Der neue Schlüssel gelangt nie in die Oberfläche; er steht nur in .env auf dem Server.

Achtung

Textfassung