Hébergez votre gestionnaire de mots de passe avec Vaultwarden (Docker + Traefik)
Ce tutoriel explique comment auto-héberger le gestionnaire de mots de passe Vaultwarden. Le scénario d’installation avec Docker et le reverse proxy Traefik sera utilisé pour cette mise en pratique.
Vaultwarden est un fork open source écrit en langage Rust, totalement compatible avec l’écosystème Bitwarden. Cela signifie que vous pouvez utiliser les extensions pour navigateurs et les applications mobiles Bitwarden pour vous connecter à votre instance Vaultwarden. Son code source ainsi que sa documentation sous forme de Wiki sont hébergés sur GitHub.
On peut citer quelques fonctionnalités :
- Chaque utilisateur dispose de son coffre-fort personnel. Il peut l’utiliser pour stocker des identifiants (nom d’utilisateur + mot de passe), des notes sécurisées, des données bancaires ou encore des clés SSH.
- Le coffre-fort peut être utilisé pour stocker des pièces jointes (fichiers).
- La fonctionnalité Send permet de partager une information de façon sécurisée et temporaire avec un tiers.
- Gestion d’organisations comme avec Bitwarden (multi-utilisateurs, collections partagées, logs, rôles pour la gestion des permissions, etc.).
- Authentification multifacteurs (MFA) pour sécuriser le coffre-fort (TOTP, Yubikey, etc.).
- Panneau d’administration dédié pour la configuration de l’instance (gestion des organisations, par exemple).
- Mécanisme d’accès d’urgence.
Sommaire
Mon environnement pour Vaultwarden
Pour ce guide, j’ai utilisé un serveur avec Docker et Traefik déjà en place. Dans cette configuration, Traefik gère l’exposition des ports 80 (HTTP) et 443 (HTTPS). Il s’occupe également d’obtenir automatiquement des certificats TLS via un résolveur DNS, comme OVHcloud avec Let’s Encrypt. Toutes les applications que nous souhaitons publier sont connectées à un réseau Docker externe nommé . Vaultwarden sera connecté à ce même réseau pour communiquer avec Traefik.
Il s’agit de la configuration mise en place dans mon tutoriel d’introduction à Traefik et que vous pouvez réutiliser comme point de départ :
Installation pas à pas de Vaultwarden
Préparation du répertoire
Pour commencer, nous allons structurer les dossiers sur notre machine Linux. Une bonne pratique consiste à centraliser les projets sous un répertoire dédié.
Créez un dossier dédié à Vaultwarden sous :
À l’intérieur de ce répertoire, créez un sous-dossier nommé . Ce dossier contiendra toutes les données de l’application, y compris la base de données (SQLite par défaut) et les coffres-forts des utilisateurs. Il sera nécessaire de prévoir une sauvegarde régulière de cet espace de stockage.
Le mot de passe pour l’administration
L’interface d’administration de Vaultwarden est protégée par un jeton spécifique. Ce mot de passe ne doit pas être renseigné en clair dans votre fichier de configuration, mais doit être formaté en Argon2. Pour le générer, installez d’abord les paquets requis sur votre système Linux :

Ensuite, exécutez la commande suivante en remplaçant par un mot de passe robuste de votre choix :
Le rôle de la commande à la fin de cette commande est de doubler automatiquement les symboles dans la chaîne générée. Cela est requis par la syntaxe de Docker Compose qui, autrement, considérerait ces symboles comme des appels à des variables. Copiez la chaîne retournée par le terminal, nous en aurons besoin juste après !
Le Docker Compose de Vaultwarden
Créez maintenant le fichier dans votre dossier .
L’occasion de rappeler que, historiquement, il était nécessaire de publier l’application web sur le port 80 et gérer les WebSockets séparément sur le port 3012. Au niveau de la configuration de Traefik, cela impliquait d’avoir deux routeurs, comme précisé ci-dessous. Néanmoins, sur les versions récentes, tout cela est fusionné sur le port 80, ce qui simplifie la configuration de Traefik.
Pour déployer Vaultwarden avec Docker Compose, voici le code à insérer, en veillant à modifier le domaine, les informations SMTP et le mot de passe admin () :
Quelques explications sur les variables spécifiées dans cette configuration :
- : empêche la création de comptes depuis la page d’accueil web (n’importe qui ne pourra pas s’inscrire).
- : renseigne l’URL d’accès, utile au bon fonctionnement du service.
- : permet d’envoyer des notifications par e-mail, par exemple lors de la connexion sur un nouvel appareil ou pour inviter un utilisateur.
- : limite la verbosité des journaux aux erreurs et avertissements. Ces logs peuvent d’ailleurs être lus par un outil comme Fail2ban pour bannir les IP malveillantes.
Quand la configuration est prête, enregistrez et fermez ce fichier.
Lancement et premier accès à Vaultwarden
Démarrez le conteneur en vous plaçant dans le dossier et en lançant la commande :
Vaultwarden étant léger, la création du conteneur est rapide. Ouvrez votre navigateur et saisissez votre nom de domaine (par exemple : ). Vous remarquez l’absence de bouton pour créer un compte, ce qui est normal vis-à-vis de notre configuration.

Pas de panique. Ajoutez à la fin de votre URL pour accéder à l’interface d’administration. Saisissez le mot de passe en clair (celui utilisé avant le calcul du hash Argon2) pour vous connecter.

Dans cette interface, rendez-vous dans la section “Users” pour inviter un utilisateur en renseignant son adresse mail. D’une manière générale, toute la configuration de votre instance Vaultwarden s’effectue depuis cette interface. Je vous invite à parcourir les différentes sections.

Ce dernier recevra un e-mail contenant un lien pour finaliser la création de son compte.

Il devra choisir un mot de passe principal sécurisé pour déverrouiller son coffre ; s’il l’oublie, l’accès à ses secrets sera perdu.

Voilà, votre premier compte Vaultwarden a été créé !

Vous pouvez commencer à ajouter des éléments à votre compte, mais le mieux pour en profiter, c’est d’installer les extensions et/ou les applications.
Utilisation des clients Bitwarden
Pour interagir avec vos données, vous n’utiliserez pas de clients nommés “Vaultwarden“. Vous devez installer l’extension ou l’application mobile officielle Bitwarden.
Lors du premier lancement du client Bitwarden :
- Sur la page de connexion, choisissez le paramètre “Auto-hébergé” (Self-hosted).
- Renseignez l’URL de votre serveur Vaultwarden.
- Saisissez votre adresse mail et votre mot de passe principal.

Toutes les modifications effectuées (ajout d’un identifiant, suppression, etc.) sont synchronisées en temps réel entre l’interface web, les extensions de navigateur et les applications mobiles. Il n’y a pas besoin de rafraîchir la page, ce qui confirme le bon fonctionnement du serveur et aussi du mécanisme de WebSockets.
Mais inutile de démarrer de zéro : si vous utilisez déjà un autre gestionnaire de mots de passe, vous pouvez importer vos données. Différents formats sont pris en charge par Vaultwarden (KeePass, LastPass, Chrome, etc.).

Sécuriser l’interface d’administration de Vaultwarden
Afin de renforcer la sécurité, il est possible de bloquer l’accès à la page depuis Internet et de le restreindre à votre réseau local (LAN). Pour cela, nous allons configurer directement le reverse proxy et utiliser un middleware Traefik .
Éditez votre fichier et ajoutez les lignes suivantes à la fin de la section (à la suite du routeur principal) :
Modifiez le sous-réseau selon votre propre adressage. Ici, seules les machines connectées à ce réseau pourront accéder au point de terminaison de Vaultwarden. L’objectif étant de limiter aux adresses IP de confiance.
Appliquez la modification en relançant le conteneur :
Désormais, une tentative d’accès à la page admin depuis une IP publique retournera une erreur HTTP 403 (Forbidden), signifiant que l’accès est refusé. La configuration est bien prise en charge !

Conclusion
Si vous souhaitez auto-héberger un gestionnaire de mots de passe compatible avec l’approche multi-utilisateurs et la synchronisation entre appareils, Vaultwarden est un choix pertinent. Ce n’est pas le seul, puisqu’il existe également Passbolt, que j’avais évoqué dans un autre article.
L’intégration de Vaultwarden avec Docker et Traefik constitue une solution de premier choix pour héberger vos mots de passe. Grâce à une faible consommation en ressources et à une compatibilité totale avec les clients Bitwarden, l’expérience utilisateur est excellente, aussi bien sur ordinateur que sur smartphone. En appliquant des mesures comme le filtrage IP sur l’interface d’administration et en configurant correctement vos sauvegardes, vous garantissez un haut niveau de pérennité à votre coffre-fort numérique.
Vaultwarden – FAQ
Qu’est-ce que Vaultwarden ?
Il s’agit d’un fork écrit en langage Rust, totalement compatible avec le gestionnaire de mots de passe Bitwarden. Vous pouvez l’auto-héberger sur votre serveur, votre NAS ou votre Raspberry Pi. Il est entièrement gratuit. Le code source est hébergé publiquement sur GitHub.
Est-ce qu’il y a des applications Vaultwarden ?
Non, il n’existe pas d’application Vaultwarden. Il faut utiliser les extensions de navigateur et les applications mobiles officielles de Bitwarden.
Vaultwarden peut-il fonctionner avec une autre base de données que SQLite ?
Par défaut, il s’appuie sur SQLite, mais il est possible d’utiliser un moteur MySQL ou PostgreSQL en ajustant la configuration. Cela peut s’avérer judicieux si l’instance est utilisée par beaucoup d’utilisateurs.
Comment accéder aux paramètres du serveur Vaultwarden ?
Il faut se rendre sur votre nom de domaine suivi du chemin (par exemple : ). Toute la configuration s’effectue depuis cette interface, y compris l’intégration avec HIBP.
À quoi sert l’Admin Token ?
Il permet d’activer l’interface d’administration et de définir le mot de passe pour s’y connecter.
Comment créer un compte utilisateur une fois les inscriptions fermées ?
L’administrateur doit se rendre dans l’onglet “Users” de l’interface admin et inviter la personne via son adresse mail. L’alternative consiste à rouvrir temporairement les inscriptions en ajustant la configuration du Docker Compose.
Peut-on importer des mots de passe dans Vaultwarden ?
Oui, Vaultwarden a une fonction d’import et d’export. Il supporte de nombreux formats : Bitwarden (JSON, CSV), LastPass, 1Password, Safari, Chrome, Dashlane, Enpass, etc. La migration depuis une autre solution est facilitée.
Existe-t-il des alternatives open source à Vaultwarden ?
Oui, on peut citer Passbolt (adapté pour les équipes et les entreprises), ainsi que KeePass (et KeePass XC) avec une approche plutôt locale.