Aller au contenu

Sauvegardes et mises à jour

Deux habitudes protègent votre serveur :

  • Sauvegarder. Activez une sauvegarde quotidienne de la base de données, et gardez une copie du dossier evey-data ailleurs.
  • Mettre à jour. Une commande va chercher la nouvelle version. Evey sauvegarde d'abord la base de données, automatiquement, chaque fois qu'une mise à jour la modifie.

Cette page montre les deux, puis ce que contient une sauvegarde, comment en restaurer une, et comment revenir à une version plus ancienne.

Planifier les sauvegardes

  1. Allez dans Administration → Sauvegarde BDD et restauration, carte Planification.
  2. Dans Expression cron, indiquez quand la lancer. 0 3 * * * veut dire tous les jours à 3 h du matin. (Le format est : minute, heure, jour, mois, jour de la semaine.)
  3. Dans Rétention (jours), indiquez combien de temps garder chaque sauvegarde, par exemple 30. Les sauvegardes plus anciennes sont supprimées après chaque sauvegarde planifiée.
  4. Cochez Activé, puis appuyez sur Enregistrer.

Lancer maintenant fait une sauvegarde tout de suite, tout comme Créer une sauvegarde en haut de la page.

Administration → Sauvegarde BDD et restauration avec une sauvegarde quotidienne
Une sauvegarde chaque jour à 3 h du matin, gardée 30 jours.

Les sauvegardes sont rangées dans ./evey-data/backups. C'est à l'intérieur du dossier que vous devriez de toute façon copier sur un autre disque (voir Ce que contient une sauvegarde).

En ligne de commande

Un script ou une tâche cron sur la machine peut faire la même sauvegarde :

docker exec evey-server evey admin backup

Elle suit le réglage de télémétrie du panneau (plus bas) ; --include-telemetry ajoute la télémétrie pour cette fois seulement.

Le serveur sauvegarde aussi automatiquement la base de données avant qu'une mise à jour la modifie, quelle que soit la planification (voir Mettre à jour Evey).

Ce que contient une sauvegarde

Une sauvegarde est une copie de la base de données : comptes, profils, bibliothèques et leur catalogue, historique de visionnage et points de reprise, collections, playlists et favoris, réglages, informations des plugins, webhooks, clés API, notifications et journaux d'audit.

Elle ne contient pas :

  • vos fichiers de médias ;
  • le cache vidéo (il se reconstitue automatiquement) ;
  • l'index de recherche (reconstruit à partir de la base de données) ;
  • les clés gardées dans ./evey-data : jwt.key, qui protège toutes les connexions, le dossier keys (mot de passe de la base de données, clé de recherche), et hls_aes.key, la clé qui chiffre les segments de diffusion (créée au premier démarrage, droits 0600) ;
  • les fichiers des plugins installés.

Gardez donc aussi une copie de tout le dossier ./evey-data. Une sauvegarde de la base de données remet Evey en état sur la même installation. Pour reconstruire une machine à partir de rien, il vous faut le dossier.

La télémétrie, et le format du fichier

Les mesures de lecture et du serveur (qui alimentent les graphiques de qualité et de charge) sont laissées de côté par défaut : ce sont elles qui grossissent le plus vite, et elles n'apportent aucune information sur votre catalogue. Inclure la télémétrie dans les sauvegardes (Administration → Configuration du serveur) les inclut, pour les sauvegardes manuelles, planifiées et en ligne de commande. Restaurer une sauvegarde vide toujours ces tables.

Une sauvegarde est un fichier .tar.gz qui contient l'export de la base de données et une courte description avec son empreinte (SHA256) et sa version de schéma.

Restaurer une sauvegarde

Administration → Sauvegarde BDD et restauration liste les sauvegardes. Restaurez-en une depuis la liste, ou envoyez un fichier avec Restaurer depuis un fichier. Restaurer remplace la base de données actuelle : tout ce qui a changé depuis cette sauvegarde est perdu.

Seulement une sauvegarde d'une version avec la même organisation de base

Le serveur vérifie d'abord le fichier et l'organisation de la base de données (la version du schéma). Il refuse une sauvegarde faite par une version dont l'organisation est différente, au lieu de la charger. Pour revenir à une version plus ancienne avec ses données, voir Revenir en arrière.

Si le serveur ne démarre plus, la ligne de commande peut restaurer les copies de secours faites avant une mise à jour (pre-migration-*.sql.gz), pas les sauvegardes .tar.gz de ce panneau : voir Restauration.

Mettre à jour Evey

Dans le dossier qui contient votre fichier compose :

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

C'est toute la mise à jour.

  • Vos données sont sauvegardées d'abord. Quand la nouvelle version doit modifier la base de données, elle en écrit d'abord une copie dans ./evey-data/backups/pre-migration-*.sql.gz (les trois plus récentes sont gardées), puis fait le changement au démarrage.
  • Cela peut prendre quelques minutes sur un gros catalogue. Le conteneur est de nouveau signalé en bonne santé dès qu'il répond.
  • Evey vous dit quand une mise à jour existe. Il vérifie toutes les heures si une image plus récente est publiée, et le signale dans le panneau d'administration. Il ne se met jamais à jour de lui-même.
  • Quelle version tourne : docker exec evey-server evey version affiche la version et le commit.
Fixer exactement la version que vous faites tourner

latest suit la dernière version publiée et change à chaque mise à jour. Pour un serveur sur lequel vous comptez, mettez un tag de version (0.1.0, ou 0.1 pour ne recevoir que ses correctifs) ou un tag fixe sha-<commit> sur la ligne image:, pour que deux pull à un jour d'écart fassent tourner le même code. Le tableau de Installation indique ce que chaque tag vous apporte.

Revenir en arrière

  1. Remettez le tag précédent sur la ligne image: de votre fichier compose.
  2. Si la version plus récente a modifié la base de données, restaurez d'abord sa copie d'avant la mise à jour : docker exec evey-server evey admin rollback affiche les étapes exactes, avec le chemin du fichier.
  3. Lancez docker compose up -d.

Les tags d'image, les autres variantes et les versions pour carte graphique sont décrits dans Déploiements avancés.