Deine Instanz sichern und wiederherstellen

In KolleK gibt es kein automatisches Backup. Die Daten zu schützen ist Aufgabe des Betreibers, und diese Seite ist der Ablauf dafür. Sie ist heute auch die eigentliche Antwort auf "Wie exportiere ich alles", wie Deine Sammlungsdaten sichern es aus Sicht des Sammlers erklärt.

Was ein vollständiges Backup ist

Drei Dinge, und alle drei zählen:

  1. Die Datenbank, im Volume db-data. Jeder Datensatz: Konten, Sammlungen, Objekte, Exemplare, Historie.
  2. Das Storage-Volume, storage-data. Jedes hochgeladene Foto und Dokument.
  3. Der Anwendungsschlüssel, APP_KEY aus deiner .env (plus APP_PREVIOUS_KEYS, falls gesetzt).
Warnung

Ein Backup ohne den passenden Anwendungsschlüssel ist kein Backup. Verschlüsselte Felder werden ohne den Schlüssel, mit dem sie geschrieben wurden, als unlesbarer Chiffretext wiederhergestellt. Bewahre den Schlüssel zusammen mit oder neben jedem Backup auf, das du erstellst. Siehe Der Anwendungsschlüssel und Verschlüsselung.

Sichern

Erstelle einen Datenbank-Dump:

docker compose exec mysql mysqldump -u root -p"$DB_ROOT_PASSWORD" "$DB_DATABASE" > kollek-backup.sql

Archiviere das Storage-Volume:

docker run --rm -v kollek_storage-data:/data -v "$PWD":/backup alpine tar czf /backup/kollek-storage.tar.gz -C /data .

Kopiere beide Dateien, sowie eine Kopie deiner .env, irgendwohin außerhalb des Servers. Automatisiere das mit einem nächtlichen Cronjob und behalte mehr als eine Generation. Ein Backup, aus dem du noch nie wiederhergestellt hast, ist eine Hoffnung, kein Plan.

Wiederherstellen

Auf einer frischen Maschine stellst du in dieser Reihenfolge wieder her:

  1. Installiere dieselbe KolleK-Version gemäß Installation mit Docker, setze aber APP_KEY (und APP_PREVIOUS_KEYS) aus deinem Backup, statt einen neuen Schlüssel zu generieren.
  2. Starte den Stack einmal, damit die Volumes existieren, und lade dann den Datenbank-Dump:
docker compose exec -T mysql mysql -u root -p"$DB_ROOT_PASSWORD" "$DB_DATABASE" < kollek-backup.sql
  1. Entpacke das Storage-Archiv in das Storage-Volume:
docker run --rm -v kollek_storage-data:/data -v "$PWD":/backup alpine tar xzf /backup/kollek-storage.tar.gz -C /data
  1. Starte den Stack mit docker compose up -d neu und melde dich an, um alles zu überprüfen.

Der Befehl, der alles löscht

Warnung

docker compose down -v entfernt die benannten Volumes, also die Datenbank und jede hochgeladene Datei. Verwende das Flag -v niemals auf einer echten Instanz. Einfaches docker compose down ist sicher und lässt die Volumes unangetastet.

Wie es weitergeht

Dokumentation für KolleK Diese Seite auf GitHub bearbeiten
War diese Seite hilfreich?