Méthode 1 : Restauration depuis Borg UI#
Cette procédure s’applique à une stack Vaultwarden sauvegardée via Borg UI, avec :
- un script pre-backup qui déclenche la commande native
vaultwarden backup(intégrée au binaire depuis les versions récentes), produisant un instantané SQLite cohérent sans dépendance externe ; - une source Borg pointant directement vers le dossier
datacomplet, à l’exception du fichier SQLite live et de ses journaux de transaction (exclus car potentiellement incohérents en cours d’écriture).
Étapes de restauration (Borg UI toujours fonctionnel)#
1. Arrêter la stack Vaultwarden#
cd /home/olivier/stacks/vaultwarden
docker compose downNe redémarrez rien tant que la restauration n’est pas terminée.
2. Restaurer l’archive vers un dossier temporaire#
Dans Borg UI : Archives → sélectionnez le repository Vaultwarden → choisissez l’archive à la date voulue → Restore vers un dossier temporaire, par exemple :
/local/restore-vaultwardenNe restaurez jamais directement vers les chemins de production à cette étape.
3. Remettre en place le dossier data#
Sauvegardez d’abord l’existant par précaution :
cd /home/olivier/stacks/vaultwarden
mv data data.oldPuis copiez le contenu restauré vers l’emplacement de production :
cp -a /home/olivier/backups/.../restore-vaultwarden/data \
/home/olivier/stacks/vaultwarden/data4. Remettre en place la base de données#
Le fichier restauré s’appelle db-backup-latest.sqlite3 (nom fixe donné par le script pre-backup), pas db.sqlite3. Renommez-le :
cd /home/olivier/stacks/vaultwarden/data
mv db-backup-latest.sqlite3 db.sqlite3Supprimez tout fichier db.sqlite3-wal ou db.sqlite3-shm résiduel avant de redémarrer :
rm -f db.sqlite3-wal db.sqlite3-shmSi un ancien fichier -wal (journal de transactions) traîne à côté du db.sqlite3 restauré, SQLite tentera de rejouer ce journal au démarrage — potentiellement incohérent avec la base restaurée, avec un risque réel de corruption. C’est documenté explicitement dans le wiki officiel de Vaultwarden.
5. Redémarrer la stack#
docker compose up -d
docker compose logs -f vaultwardenSurveillez les logs au démarrage : Vaultwarden doit ouvrir la base sans erreur.
6. Vérifier que tout fonctionne#
Connectez-vous à l’interface web (https://vault.colmaris.fr), vérifiez que vos identifiants, dossiers et éléments partagés (sends) correspondent bien à la date de l’archive restaurée. Ouvrez une pièce jointe existante pour confirmer que le dossier attachments/ a bien suivi.
Points critiques à retenir#
db.sqlite3-waldoit être supprimé avant de redémarrer si vous restaurez le snapshot généré parvaultwarden backup— c’est le point d’échec le plus courant lors d’une restauration Vaultwarden.- Le nom de fichier compte : Vaultwarden n’ouvrira que
db.sqlite3, pasdb-backup-latest.sqlite3. Le renommage à l’étape 4 est obligatoire. db.sqlite3-shmn’a pas besoin d’être restauré : c’est un fichier de mémoire partagée recréé automatiquement par SQLite.- Reconnexion nécessaire : après une restauration, les sessions actives (extensions navigateur, applications mobiles) demandent généralement une nouvelle authentification.
- Testez cette procédure au moins une fois « à froid » avant d’en avoir besoin en situation réelle.
Méthode 2 : Restauration d’urgence en cas de crash total (sans Borg UI)#
Si Borg UI et son serveur hôte ont disparu, la logique générale est identique à celle détaillée dans Restaurer Nextcloud sans Borg UI — installez le CLI Borg sur la nouvelle machine, accédez au repository via sa passphrase (stockée en dehors du serveur), puis :
export BORG_REPO=/chemin/ou/ssh/vers/le/repo/vaultwarden
export BORG_PASSPHRASE='votre-passphrase-ici'
borg list "$BORG_REPO"
mkdir -p /home/olivier/restore-vaultwarden
cd /home/olivier/restore-vaultwarden
borg extract "$BORG_REPO"::NOM-DE-L-ARCHIVEReconstituez ensuite docker-compose.yml et .env depuis leur emplacement de sauvegarde séparé (dépôt Git privé), replacez le dossier data restauré, appliquez les étapes 4 à 6 ci-dessus (renommage de la base, suppression du -wal, démarrage, vérification), puis redéployez Borg UI et reconfigurez le Backup Plan pour que les sauvegardes reprennent normalement.
docker-compose.yml/.env ne sont pas inclus dans la sauvegarde elle-même — assurez-vous de les avoir stockés ailleurs avant d’en avoir besoin.


