Zum Inhalt

Sicherungen und Updates

Zwei Gewohnheiten halten Ihren Server sicher:

  • Sichern. Schalten Sie eine tägliche Sicherung der Datenbank ein, und bewahren Sie eine Kopie des Ordners evey-data an einem anderen Ort auf.
  • Aktualisieren. Ein Befehl holt die neue Version. Evey sichert die Datenbank vorher von selbst, wann immer ein Update sie verändert.

Diese Seite zeigt beides, danach, was eine Sicherung enthält, wie Sie eine Sicherung wiederherstellen und wie Sie zu einer älteren Version zurückkehren.

Sicherungen planen

  1. Gehen Sie zu Verwaltung → Sicherung & Wiederherstellung, Karte Zeitplan.
  2. Legen Sie unter Cron-Ausdruck fest, wann sie laufen soll. 0 3 * * * heißt jeden Tag um 3 Uhr. (Das Format ist Minute, Stunde, Tag, Monat, Wochentag.)
  3. Legen Sie unter Aufbewahrung (Tage) fest, wie lange jede Sicherung aufbewahrt wird, zum Beispiel 30. Ältere Sicherungen werden nach jedem geplanten Durchlauf gelöscht.
  4. Setzen Sie das Häkchen bei Aktiviert und drücken Sie auf Speichern.

Jetzt ausführen erstellt sofort eine Sicherung, ebenso Sicherung erstellen oben auf der Seite.

Verwaltung → Sicherung & Wiederherstellung mit einem täglichen Zeitplan
Eine Sicherung jeden Tag um 3 Uhr, 30 Tage aufbewahrt (Oberfläche auf Englisch).

Sicherungen werden in ./evey-data/backups gespeichert. Das liegt in dem Ordner, den Sie ohnehin auf eine andere Festplatte kopieren sollten (siehe Was eine Sicherung enthält).

Über die Kommandozeile

Ein Skript oder ein Cron-Job auf dem Host kann dieselbe Sicherung erstellen:

docker exec evey-server evey admin backup

Der Befehl folgt dem Telemetrie-Schalter im Verwaltungsbereich (siehe unten); --include-telemetry nimmt die Telemetrie nur für diesen Durchlauf mit.

Der Server sichert die Datenbank außerdem von selbst, bevor ein Update sie verändert, unabhängig vom Zeitplan (siehe Evey aktualisieren).

Was eine Sicherung enthält

Eine Sicherung ist eine Kopie der Datenbank: Konten, Profile, Bibliotheken und ihr Katalog, Wiedergabeverlauf und Fortsetzungspunkte, Sammlungen, Playlists und Favoriten, Einstellungen, Plugin-Einträge, Webhooks, API-Schlüssel, Benachrichtigungen und Audit-Protokolle.

Sie enthält nicht:

  • Ihre Mediendateien;
  • den Video-Cache (er füllt sich von selbst wieder);
  • den Suchindex (er wird aus der Datenbank neu aufgebaut);
  • die Schlüssel in ./evey-data: jwt.key, der jede Anmeldung schützt, und den Ordner keys (Datenbankpasswort, Suchschlüssel) und hls_aes.key, den Schlüssel, der die Streaming-Segmente verschlüsselt (beim ersten Start angelegt, Modus 0600);
  • die Dateien der installierten Plugins.

Bewahren Sie deshalb auch eine Kopie des ganzen Ordners ./evey-data auf. Eine Datenbanksicherung stellt Evey auf derselben Installation wieder her. Um einen Rechner von Grund auf neu aufzubauen, brauchen Sie den Ordner.

Telemetrie und das Dateiformat

Messwerte zu Wiedergabe und Server (hinter den Diagrammen zu Qualität und Last) werden standardmäßig nicht aufgenommen: Sie wachsen am schnellsten und enthalten keine Angaben über Ihren Katalog. Telemetrie in Sicherungen einschließen (Verwaltung → Serverkonfiguration) nimmt sie wieder auf, für manuelle, geplante und über die Kommandozeile erstellte Sicherungen. Beim Wiederherstellen einer Sicherung werden diese Tabellen immer geleert.

Eine Sicherung ist eine .tar.gz-Datei mit dem Datenbank-Dump und einer kurzen Beschreibung samt Prüfsumme (SHA256) und Schemaversion.

Eine Sicherung wiederherstellen

Verwaltung → Sicherung & Wiederherstellung listet die Sicherungen auf. Stellen Sie eine aus der Liste wieder her, oder laden Sie mit Aus Datei wiederherstellen eine Datei hoch. Das Wiederherstellen ersetzt die aktuelle Datenbank: Alles seit dieser Sicherung geht verloren.

Nur eine Sicherung aus einer Version mit demselben Datenbankaufbau

Der Server prüft zuerst die Datei und den Aufbau der Datenbank (die Schemaversion). Eine Sicherung aus einer Version mit anderem Aufbau lehnt er ab, statt sie zu laden. Wie Sie mit Ihren Daten zu einer älteren Version zurückkehren, steht unter Zurückkehren.

Startet der Server nicht mehr, kann die Kommandozeile die Sicherheitskopien wiederherstellen, die vor einem Update angelegt wurden (pre-migration-*.sql.gz), nicht die .tar.gz-Sicherungen aus diesem Bereich: siehe Wiederherstellung.

Evey aktualisieren

In dem Ordner, in dem Ihre Compose-Datei liegt:

docker compose pull && docker compose up -d
docker compose logs -f evey

Das ist das ganze Update.

  • Ihre Daten werden zuerst gesichert. Muss die neue Version die Datenbank verändern, schreibt sie zuerst eine Kopie nach ./evey-data/backups/pre-migration-*.sql.gz (die drei neuesten werden aufbewahrt) und nimmt die Änderung dann beim Start vor.
  • Das kann bei einem großen Katalog ein paar Minuten dauern. Der Container meldet sich als gesund, sobald er wieder antwortet.
  • Evey sagt Ihnen, wenn es ein Update gibt. Es prüft jede Stunde, ob ein neueres Image veröffentlicht ist, und zeigt das im Verwaltungsbereich an. Es aktualisiert sich nie selbst.
  • Welche Version läuft: docker exec evey-server evey version gibt die Version und den Commit aus.
Die genaue Version festlegen, die Sie betreiben

latest folgt der neuesten Version und ändert sich mit jedem Update. Für einen Server, auf den Sie sich verlassen, tragen Sie in der Zeile image: ein Versions-Tag (0.1.0, oder 0.1, um nur dessen Fixes zu erhalten) oder ein festes Tag sha-<commit> ein. So laufen zwei Pulls im Abstand eines Tages mit demselben Code. Die Tabelle unter Installation zeigt, was jedes Tag bringt.

Zurückkehren

  1. Tragen Sie das vorherige Tag in die Zeile image: Ihrer Compose-Datei ein.
  2. Hat die neuere Version die Datenbank verändert, stellen Sie zuerst deren Kopie von vor dem Update wieder her: docker exec evey-server evey admin rollback gibt die genauen Schritte aus, mit dem Pfad der Datei.
  3. Führen Sie docker compose up -d aus.

Image-Tags, weitere Varianten und Builds für Grafikkarten sind unter Fortgeschrittene Bereitstellungen beschrieben.