Comme vous le savez, j'ai opté depuis quelques temps pour une solution Vaultwarden (anciennement dénommée Bitwarden) auto-hébergée sur mon NAS Asustor. Perso, je trouve que c'est une très bonne chose car la solution est bien, et le fait de l'héberger soit même est un atout je trouve. Et peut-être que certains d'entre vous ont suivi le tutoriel pour faire la même chose chez eux ? Maintenant que c'est fonctionnel, il est primordial de penser à mettre en place une sauvegarde de la base de données. Car il serait dommage de perdre l'intégralité de ses mots de passe suite à un dysfonctionnement du NAS ou un bug de celui-ci... Alors voyons ensemble comment faire cette sauvegarde Vaultwarden.
Sauvegarde Vaultwarden : exporter la base de données
La solution Vaultwarden installée sur un NAS Asustor, propose plusieurs solutions pour héberger sa base de données : SQLite, Maria-DB et PostgreSQL. Pour ma part, j'ai choisi une base de type Maria-DB. Les commandes que je vais vous fournir fonctionneront donc uniquement si vous êtes dans la même configuration que moi. Si vous utilisez un autre moteur de base de données, le principe restera le même mais il faudra adapter les commandes.
Je ne vais pas ici vous fournir un script permettant l'export de la base de données de votre coffre fort, mais simplement vous donner le principe de sauvegarde. Libre à vous ensuite d'automatiser cela comme bon vous semble : script local sur le NAS ou bien à distance, commandes CRON...
Pour effectuer une sauvegarde de notre base Maria-DB, on va se servir de l'utilitaire mysqldump fournit dans le conteneur vaultwarden_mysql :
docker exec vaultwarden_mysql /usr/bin/mysqldump -u USERSQL -p'MDPSQL' DATABASENAME > /path/vaultwardendb.sql
Adaptez simplement la commande avec vos informations SQL (utilisateur, mot de passe et nom de la base de données) ainsi que la destination du dump.
Voilà, on a maintenant notre sauvegarde de la base de données disponible en dehors du conteneur. Reste plus qu'à voir où la sauvegarder. L'intérêt ici est en effet d'exporter cette sauvegarde en dehors de notre NAS. Je vous recommande donc de la sauvegarder sur un autre NAS, un support externe ou bien une destination cloud, à vous de voir !
Comment restaurer une base Vaultwarden ?
Disposer d'une sauvegarde est une chose importante, mais elle n'a d'intérêt que si elle est restaurable ! Voyons donc comment restaurer la sauvegarde de la base de données de notre Vaultwarden auto-hébergé.
La première chose à faire est de se connecter sur son NAS en SSH, avec le compte root. On va ensuite copier notre backup dans le conteneur vaultwarden_mysql avec la commande suivante (en adaptant le chemin et le nom du fichier de backup...) :
docker cp /volume1/home/admin/DATA/bitwardendb_20210905-0050.sql vaultwarden_mysql:/bitwardendb_20210905-0050.sql
On entre ensuite en session SSH dans le conteneur vaultwarden_mysql :
docker exec -it vaultwarden_mysql /bin/bash
Une fois en SSH dans le conteneur, on va importer notre fichier SQL dans notre base de données (qui pour ma part se nomme bitwardendb, mais à vous d'adapter en fonction de votre base...) :
mysql bitwardendb < bitwardendb_20210905-0050.sql
Ensuite, il ne reste plus qu'à redémarrer notre Vaultwarden. Pour cela, on peut passer par AppCentral et désactiver puis réactiver Vaultwarden, ou bien entrer les commandes suivantes dans le shell du conteneur :
docker container restart Vaultwarden docker container restart vaultwarden_mysql
Il ne reste plus qu'à se connecter à l'instance Bitwarden, et hop, tout est là !
Et bien voilà, j'espère que ce petit tutoriel sur la sauvegarde Vaultwarden sera utile à certains 😉
Partager la publication "Sauvegarde Vaultwarden : exporter et importer sa base de mots de passe"