- Implémentation légère en Rust, entièrement compatible avec les clients Bitwarden officiels.
- Déploiement simplifié grâce à l'utilisation de conteneurs Docker pour un contrôle total de la confidentialité.
- Configuration matérielle minimale idéale pour les serveurs modestes ou les Raspberry Pi.
Vaultwarden vous permet d'héberger un gestionnaire de mots de passe compatible avec les clients Bitwarden sur votre propre serveur. Vous pouvez ainsi choisir l'emplacement de stockage des informations, les personnes autorisées à accéder au service et la méthode de sauvegarde.
Il est important de préciser dès le départ que Vaultwarden n'est pas le serveur officiel de Bitwarden.Il s'agit d'une implémentation indépendante, développée par la communauté et écrite en Rust, qui reproduit une grande partie de l'API de Bitwarden. De ce fait, elle est compatible avec les applications mobiles, les programmes de bureau et les extensions officielles de Bitwarden.
L'auto-hébergement du service offre plus de contrôle, mais Cela ne garantit pas automatiquement une sécurité accrue.À partir de ce moment, vous êtes responsable de l'installation des mises à jour, de la sécurisation des accès, de la consultation des journaux, de la maintenance du protocole HTTPS et de la restauration des sauvegardes.
Ce dont vous avez besoin pour installer Vaultwarden avec Docker

Avant de commencer, vous aurez besoin d'un système compatible Docker qui reste allumé pendant la synchronisation des mots de passe. Il peut s'agir d'un serveur Linux, d'un NAS, d'un mini PC ou d'un Raspberry Pi dont l'architecture est prise en charge par l'image.
Vous aurez également besoin de :
- Moteur Docker Installé et fonctionnel.
- Le module complémentaire actuel de Docker Compose.
- Un dossier où les données peuvent être stockées de manière permanente.
- Accès à un terminal disposant des autorisations nécessaires pour gérer Docker.
- Une méthode d'accès sécurisée si vous utilisez le service depuis d'autres appareils.
Il n'existe pas de configuration mémoire ou de stockage requise pour toutes les installations. La consommation dépend du nombre d'utilisateurs, des pièces jointes, de la capacité de stockage et des autres services exécutés sur le même ordinateur. Pour un usage personnel, il s'agit généralement d'une application légère, mais il est conseillé de prévoir suffisamment d'espace. les données et leurs sauvegardes.
Vérifiez l'installation à l'aide de :
docker --version
docker compose version
Si les deux commandes affichent une version, vous pouvez continuer.
Comment installer Vaultwarden avec Docker Compose
Créez un dossier dédié et accédez-y :
mkdir vaultwarden
cd vaultwarden
Dans le dossier, créez un fichier appelé compose.yml avec cette configuration initiale :
services:
vaultwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
restart: unless-stopped
environment:
SIGNUPS_ALLOWED: "true"
volumes:
- ./vw-data:/data
ports:
- "127.0.0.1:8080:80"
L'assemblée ./vw-data:/data C'est essentiel. Le dossier /data Il contient la base de données, les pièces jointes, la configuration et les clés utilisées par le serveur. Si vous supprimez le conteneur sans sauvegarder ce dossier, vous perdrez les données qui y sont stockées.
L'adresse 127.0.0.1 Cette installation initiale ne répond que sur le serveur lui-même. C'est une configuration adaptée pour tester Vaultwarden sans exposer le port au réseau.
Démarrer le conteneur :
docker compose up -d
Vérifiez son statut :
docker compose ps
docker compose logs --tail=100 vaultwarden
Depuis le même appareil, vous pouvez ouvrir :
http://localhost:8080
Accès via localhost Cette étape permet de finaliser la configuration initiale. Pour vous connecter depuis un autre ordinateur, une application mobile ou une extension, vous devrez configurer une adresse sécurisée utilisant le protocole HTTPS.
Comment créer votre premier compte et clôturer l'inscription
Ouvrez l'interface web, créez votre premier compte et vérifiez que vous pouvez vous connecter. Utilisez un mot de passe principal long, unique et facile à mémoriser, car elle protège l'accès à l'ensemble de l'entrepôt.
Après avoir créé les comptes nécessaires, modifiez compose.yml et les changements :
SIGNUPS_ALLOWED: "true"
par:
SIGNUPS_ALLOWED: "false"
Appliquez la modification en recréant le conteneur :
docker compose up -d
Vaultwarden autorise par défaut la création de comptes pour les utilisateurs anonymes. Maintenir l'inscription ouverte inutilement facilite l'utilisation de votre serveur par des tiers non autorisés.
Si vous activez ultérieurement le panneau d'administration, vous pourrez envoyer des invitations même si l'inscription publique est désactivée.
Pourquoi Vaultwarden a besoin du HTTPS
La boutique en ligne utilise l'API Web Crypto du navigateur. Ces fonctionnalités cryptographiques ne sont généralement disponibles que dans contextes sécurisés, tels que HTTPS ou localhost.
Pour cette raison, l'ouverture http://192.168.1.50:8080 Depuis un autre ordinateur, des erreurs peuvent s'afficher même si le conteneur est en cours d'exécution. La publication du port sur le réseau ne remplace pas la configuration HTTPS.
Il existe trois manières courantes d'utiliser Vaultwarden :
- Serveur uniquement : accès via
localhost, utile pour les tests. - Sur un réseau privé ou un VPN : Accès restreint, mais maintien d'un certificat HTTPS valide.
- Sur Internet : domaine, proxy inverse, certificat valide et pare-feu correctement configuré.
Il n'est pas nécessaire d'ouvrir Vaultwarden publiquement pour l'utiliser hors de chez vous. Un VPN peut restreindre l'accès à vos appareils autorisés, mais l'adresse utilisée par les clients doit toujours posséder un certificat qu'ils reconnaissent.
Comment configurer HTTPS avec Caddy
Caddy est l'une des solutions les plus simples car elle peut demander et renouveler automatiquement les certificats via ACME. Pour utiliser un certificat public, le domaine doit pointer vers votre serveur et les ports nécessaires doivent être accessibles.
Ce fichier peut être utilisé dans une configuration conjointe de Vaultwarden et Caddy. compose.yml:
services:
vaultwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
restart: unless-stopped
environment:
DOMAIN: "https://vault.example.com"
SIGNUPS_ALLOWED: "false"
volumes:
- ./vw-data:/data
caddy:
image: caddy:2
container_name: vaultwarden-caddy
restart: unless-stopped
depends_on:
- vaultwarden
ports:
- "80:80"
- "443:443"
- "443:443/udp"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile:ro
- ./caddy-data:/data
- ./caddy-config:/config
Remplace vault.example.com pour votre domaine réel. Ensuite, créez un fichier appelé Caddyfile:
vault.example.com {
reverse_proxy vaultwarden:80 {
header_up X-Real-IP {remote_host}
}
}
Activer les services :
docker compose up -d
Caddy enverra les requêtes au conteneur via le réseau interne créé par Compose. La configuration actuelle peut également gérer les notifications WebSocket via cette même destination ; il est donc inutile de publier un autre port Vaultwarden.
La variable DOMAIN doit contenir l'URL externe exacte, y compris https://Une adresse incorrecte peut entraîner des problèmes avec les pièces jointes, les liens, l'authentification ou les clients.
Comment connecter les applications officielles Bitwarden
Sur l'écran de connexion de l'extension, l'application mobile ou le programme de bureau, ouvrez le sélecteur de serveur et choisissez l'option Auto-hébergé.
Veuillez saisir l'adresse complète :
https://vault.example.com
Enregistrez les paramètres avant de vous connecter. Chaque client doit être connecté au même serveur pour que les modifications soient correctement synchronisées.
Si vous utilisez un certificat émis par une autorité privée, vous devrez l'installer et lui faire confiance sur tous les appareils. Pour éviter les problèmes de compatibilité, il est préférable d'utiliser un certificat public valide ou une solution privée dont vous contrôlez parfaitement la chaîne de confiance.
Une fois le client connecté, vous pouvez Importer les mots de passe Chrome dans Vaultwarden et vérifiez qu'ils apparaissent bien sur tous vos appareils.
Comment protéger le panneau d'administration
Vaultwarden propose un panneau optionnel dans /adminDe là, vous pouvez consulter les utilisateurs, les organisations, les diagnostics et certaines options du serveur.
Si vous n'avez pas besoin du panneau, la solution la plus sûre est Laissez-le désactivéPour l'activer, vous devez configurer ADMIN_TOKENAu lieu de stocker le mot de passe en clair, il génère un hachage Argon2id :
docker run --rm -it vaultwarden/server /vaultwarden hash
La commande demandera le mot de passe à deux reprises et renverra une chaîne de caractères commençant par $argon2id$.
Une façon pratique d'éviter les problèmes avec les symboles du dollar est de l'enregistrer dans un fichier. .env situé à côté de compose.yml:
VAULTWARDEN_ADMIN_TOKEN='$argon2id$v=19$m=...'
Ajoutez ensuite au service :
environment:
ADMIN_TOKEN: "${VAULTWARDEN_ADMIN_TOKEN}"
Si vous écrivez le hachage directement à l'intérieur compose.yml, vous devez doubler chaque signe dollar. $$ pour empêcher Docker Compose d'essayer de l'interpréter comme une variable.
Vérifiez la configuration traitée à l'aide de :
docker compose config
Le panneau ne doit être accessible que via HTTPS. Si possible, limitez son accès au réseau local, à un VPN ou à des adresses IP spécifiques.
Veuillez noter qu'après avoir enregistré les options de /adminLe gardien du coffre crée config.jsonSes valeurs prévalent sur les variables d'environnement équivalentes. Cette priorité explique de nombreux cas où la modification de Compose semble ne produire aucun changement.
Mesures essentielles pour protéger le Gardien de l'Arche
La sécurité ne se limite pas à l'activation du protocole HTTPS. Appliquez au minimum les mesures suivantes :
- Désactiver le registre ouvert à l'aide de
SIGNUPS_ALLOWED=false. - Utilisez un mot de passe principal unique et robuste.
- Actif authentification en deux étapes à tous égards.
- Enregistrez le code de récupération d'authentification dans un autre emplacement sécurisé.
- Mettez régulièrement à jour l'image et le système hôte.
- Ne montez pas les dossiers inutiles ni le socket Docker à l'intérieur du conteneur.
- Limitez les ports strictement nécessaires à l'aide du pare-feu.
- Ne divulguez pas publiquement la base de données ni le dossier.
vw-data.
Fail2ban peut bloquer les adresses qui accumulent les tentatives de connexion infructueuses, mais sa configuration doit être réalisée avec soin en présence d'un proxy inverse. Caddy ou Nginx doivent transmettre l'adresse IP réelle ; sinon, Fail2ban risque de bloquer l'adresse du proxy lui-même.
Vous pouvez également désactiver l'affichage des indices de mot de passe. Ces indices peuvent faciliter les attaques par devinette lorsque le serveur est accessible publiquement.
Pour en savoir plus sur ces pratiques, vous pouvez consulter comment Utilisez les gestionnaires de mots de passe en toute sécurité.
Comment configurer les notifications par e-mail
La configuration SMTP vous permet d'envoyer des invitations, des vérifications et des notifications. Vous devrez spécifier le serveur, l'expéditeur, le port, la méthode de sécurité et les identifiants fournis par votre service de messagerie.
Ne confondez pas les e-mails SMTP avec une sauvegarde de votre coffre-fort numérique. De même, ne vous fiez pas uniquement à ces e-mails pour récupérer votre compte. Si vous oubliez votre mot de passe principal et n'avez pas configuré d'autre méthode de récupération, vous risquez de perdre l'accès à vos données chiffrées.
Après avoir enregistré les paramètres, envoyez un message de test et consultez les journaux s'il n'arrive pas. Vérifiez également vos dossiers de courriers indésirables et les restrictions de votre fournisseur SMTP.
Comment effectuer une sauvegarde complète de Vaultwarden
La base de données SQLite stocke les utilisateurs, les articles, les appareils et les organisations, mais Il ne contient pas tous les fichiersLes pièces jointes et certaines soumissions sont stockées dans des répertoires séparés.
Une copie complète doit comprendre :
db.sqlite3ou une copie cohérente de la base de données.- Le dossier
attachments. - Le dossier
sends, si vous souhaitez conserver ces fichiers. - Le fichier
config.json, si vous utilisez le panneau. - Les fichiers
rsa_key*. - Les fichiers Compose, Caddy et leurs variables.
Pour une sauvegarde simple et cohérente, vous pouvez temporairement arrêter Vaultwarden et archiver le dossier :
docker compose stop vaultwarden
tar -czf vaultwarden-backup-$(date +%F).tar.gz vw-data compose.yml Caddyfile .env
docker compose start vaultwarden
Le fichier peut contenir le jeton d'administration et les identifiants SMTP. Chiffrez-le avant de le copier vers un autre ordinateur ou un stockage distant.
Si vous ne souhaitez pas interrompre le service, Vaultwarden inclut une commande qui utilise le mécanisme de copie SQLite :
docker exec vaultwarden /vaultwarden backup
Cette commande protège la base de données, mais il est toujours recommandé de sauvegarder les pièces jointes, les fichiers de configuration et les clés. Automatisez les sauvegardes, conservez-en au moins une hors serveur et testez régulièrement la restauration.
Comment mettre à jour Vaultwarden avec Docker
Créez une copie vérifiée avant de procéder à la mise à jour. Ensuite, exécutez :
docker compose pull
docker compose up -d
Consultez le statut et les derniers messages :
docker compose ps
docker compose logs --tail=100 vaultwarden
Docker téléchargera l'image et recréera le conteneur, préservant ainsi l'image. vw-dataN’utilisez pas de commandes de nettoyage global sans vérifier au préalable quels conteneurs, images et réseaux elles supprimeront.
Dans les installations où la stabilité est essentielle, vous pouvez fixer une version spécifique de l'image au lieu d'utiliser systématiquement la version par défaut. latestVous pourrez ainsi consulter les notes de version et décider quand appliquer chaque mise à jour.
Erreurs courantes lors de l'installation de Vaultwarden avec Docker
L'interface fonctionne en local, mais pas depuis un autre ordinateur.
Le port est limité à 127.0.0.1 Il se peut également que votre navigateur bloque les fonctions cryptographiques lors d'un accès HTTP. Configurez une adresse HTTPS avant d'utiliser le service depuis d'autres appareils.
Le client officiel ne parvient pas à se connecter au serveur
Sélectionnez l'environnement Auto-hébergé et saisissez l'adresse exacte avec https://Vérifiez le certificat, le DNS, le proxy et les variables DOMAIN.
Le conteneur démarre, mais les données disparaissent lors de sa recréation.
Le contrôle du volume n'est pas correctement installé. Veuillez vérifier cela. ./vw-data:/data apparaît dans les paramètres et indique que vous exécutez Compose depuis le dossier attendu.
Je ne peux pas créer un autre compte
Si SIGNUPS_ALLOWED est dans falseCe comportement est normal. Envoyez une invitation depuis le panneau de configuration ou activez temporairement l'inscription uniquement le temps de créer le compte.
Le hachage ADMIN_TOKEN ne fonctionne pas
Vérifiez l'interpolation des signes $Utilisez un fichier .env avec des guillemets simples ou doublez les symboles si vous insérez la chaîne directement dans Compose.
Les variables environnementales semblent être ignorées
Vérifier s'il existe vw-data/config.jsonLes options enregistrées à partir du panneau peuvent remplacer les variables définies dans compose.yml.
Les certificats fonctionnent dans le navigateur, mais pas sur l'appareil mobile.
L'appareil peut ne pas faire confiance à l'intégralité de la chaîne de certificats. Utilisez une autorité de certification reconnue ou installez correctement votre propre autorité de certification privée et ses certificats.
Les pièces jointes échouent
Vérifiez cela DOMAIN Vérifiez que l'adresse externe corresponde et que le proxy autorise la taille de requête requise. Vérifiez également l'espace disponible et les permissions. vw-data.
Vaultwarden ne peut pas écrire dans vw-data
Le dossier hôte présente des permissions incompatibles. Vérifiez le propriétaire et les permissions en fonction de l'erreur affichée dans les journaux. Ne pas utiliser chmod 777 comme solution permanente.
Fail2ban bloque une adresse incorrecte
Le proxy ne transmet pas la véritable adresse IP, ou Fail2ban lit un champ incorrect. Veuillez le configurer correctement. X-Real-IP ou l'en-tête correspondant à votre proxy.
La copie restaurée ne contient pas les pièces jointes.
Seule la base de données SQLite a été sauvegardée. Veuillez également restaurer les dossiers. attachments y sends, en plus de la configuration et des clés RSA.
Vaultwarden vous permet d'utiliser des organisations et des collections pour partager les mots de passe familiaux Utilisez des clients compatibles. Avant d'ajouter d'autres utilisateurs, vérifiez que le protocole HTTPS, l'authentification à deux facteurs et les sauvegardes fonctionnent correctement.
Il en résulte un gestionnaire de mots de passe rapide, confidentiel et adaptable, mais sa sécurité dépend de sa maintenance. Le contrôle du serveur n'est avantageux que s'il s'accompagne de mises à jour, d'un accès restreint et d'une stratégie de récupération éprouvée.
Je suis un passionné de technologie qui a fait de ses intérêts de « geek » un métier. J'ai passé plus de 10 ans de ma vie à utiliser des technologies de pointe et à bricoler toutes sortes de programmes par pure curiosité. Aujourd'hui, je me spécialise dans l'informatique et les jeux vidéo. En effet, depuis plus de 5 ans, j'écris pour différents sites Web sur la technologie et les jeux vidéo, créant des articles qui cherchent à vous donner les informations dont vous avez besoin dans un langage compréhensible par tous.
Si vous avez des questions, mes connaissances s'étendent de tout ce qui concerne le système d'exploitation Windows ainsi qu'Android pour les téléphones mobiles. Et mon engagement est envers vous, je suis toujours prêt à consacrer quelques minutes et à vous aider à résoudre toutes les questions que vous pourriez avoir dans ce monde Internet.


