Dans une installation sur votre propre serveur, tout ce qui compte se trouve dans la base de données : paramètres, consignes, sources de connaissances, messages, brouillons et secrets chiffrés. Vous sauvegardez donc la base de données – ainsi que le fichier .env avec la MASTER_KEY.
Ce qu’il faut sauvegarder
- La base de données – par un dump régulier, copié hors du serveur.
.env, et surtoutMASTER_KEY– hors du serveur, en lieu sûr. Sans elle, vous ne pouvez pas lire dans la base de données les clés API, les accès aux boîtes mail ni les clients de connexion ; la sauvegarde ne servirait à rien. Nous ne l’avons pas.
Un dump de la base de données contient les e-mails des clients. Protégez-le comme la boîte mail elle-même.
Les dumps avant une mise à jour ne sont pas une sauvegarde
Avant chaque mise à jour, draften enregistre un dump de la base de données dans le dossier backups/ du répertoire d’installation et conserve les trois derniers (le nombre est fixé par DRAFTEN_BACKUPS). Ils se trouvent toutefois sur le même disque que la base de données – c’est un filet de sécurité pour les mises à jour, pas une sauvegarde. Copiez-les hors du serveur avec .env, comme vos autres sauvegardes.
Un dump régulier de la base de données
Depuis le répertoire d’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
Exécutez-le régulièrement (par exemple chaque jour depuis cron) et conservez les dumps hors du serveur.
Restauration
Arrêtez les workers, chargez le dump et démarrez la version qui tournait au moment du dump (pour les dumps de backups/, elle figure dans le nom du fichier) :
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
Sur un nouveau serveur, installez d’abord draften et placez dans .env la MASTER_KEY en vigueur au moment du dump.
Remplacer la clé de chiffrement
La MASTER_KEY peut être remplacée sans interruption de service – dans l’interface (Installation → Installation → Clé de chiffrement → Remplacer la clé de chiffrement, nécessite l’updater), ou avec la commande :
./draften rotate-key
La nouvelle clé est d’abord inscrite dans .env, les conteneurs la prennent l’un après l’autre et tout ce qui est stocké est chiffré à nouveau avec elle. L’ancienne clé reste dans .env sous le nom MASTER_KEY_PREVIOUS tant que backups/ contient des dumps antérieurs au remplacement – elle seule peut les ouvrir. draften refuse un nouveau remplacement tant qu’un tel dump existe.
Après le remplacement, copiez immédiatement le nouveau .env hors du serveur. La nouvelle clé n’apparaît jamais dans l’interface ; elle se trouve uniquement dans .env sur le serveur.
Attention
- Le volume
db-dataest la base de données en service. Ne supprimez jamais l’installation avecdocker compose down -vsans disposer d’un dump récent. - Le dossier
data/ne contient pas les données de référence – seulement le journal et les rapports du worker. - Vous pouvez toujours vérifier dans l’interface : la carte État de l’installation de la page Installation indique si
MASTER_KEYest définie.