Vaultwarden : Votre Coffre-Fort de Mots de Passe Auto-Hébergé
J'ai quitté LastPass après leur fuite de données. Voici pourquoi Vaultwarden (Bitwarden RS) est le meilleur gestionnaire de mots de passe self-hosté — et comment l'installer.
Je me souviens exactement où j’étais quand j’ai appris la nouvelle.
C’était un mardi. LastPass avait subi une fuite monumentale — vaults entiers volés, avec les URLs, les emails, et les hashes des mots de passe maîtres. Leurs conseils ? “Changez vos mots de passe.” Génial. Sauf que les gens stockent des centaines de mots de passe. C’était une mission impossible.
J’avais confié mes mots de passe à une boîte qui ne pouvait même pas sécuriser correctement ses propres backups. Plus jamais.
Cette nuit-là, j’ai cherché une alternative. Bitwarden avait bonne réputation, mais leur version self-hosted (Bitwarden Unified) demandait un setup complexe avec Microsoft SQL Server. Non merci.
Puis j’ai découvert Vaultwarden. Et ma paranoïa a trouvé son antidote.
Qu’est-ce que Vaultwarden ?
Vaultwarden est une réécriture légère du serveur Bitwarden, en Rust. Il implémente l’API Bitwarden mais sans les dépendances lourdes (SQL Server, .NET, tout ça).
Résultat ? Un container Docker de 50 MB qui fait tourner un gestionnaire de mots de passe complet. Avec toutes les features importantes : vaults, organisations, collections, 2FA, et même le Web Vault.
J’ai migré 400+ mots de passe en une soirée. Zéro regret.
Pourquoi pas juste Bitwarden cloud ?
La version cloud de Bitwarden est excellente. Chiffrée de bout en bout, open-source, auditée. Si vous faites confiance à leur infrastructure, c’est un choix solide.
Moi, j’ai un problème avec le “cloud” pour mes mots de passe. Même chiffrés, je n’aime pas l’idée que quelqu’un d’autre détienne mes données. Vault volé ? Brute force sur le master password ? Non.
Vaultwarden me donne le contrôle total :
- Mes données restent sur mon serveur
- J’ai les backups
- Personne ne peut me couper l’accès
- Pas de limitation “premium” artificielle
Et honnêtement ? C’est plus rapide. Le cloud Bitwarden a parfois des lenteurs. Mon Vaultwarden local répond instantanément.
Installation en 5 minutes
Docker Compose, comme d’habitude. C’est la méthode la plus propre.
mkdir -p ~/vaultwarden
cd ~/vaultwarden
Créez ce docker-compose.yml :
version: "3.8"
services:
vaultwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
restart: unless-stopped
environment:
- WEBSOCKET_ENABLED=true
- SIGNUPS_ALLOWED=false # Désactiver les inscriptions après votre setup
- ADMIN_TOKEN=${ADMIN_TOKEN}
- SMTP_HOST=${SMTP_HOST}
- SMTP_FROM=${SMTP_FROM}
- SMTP_PORT=${SMTP_PORT}
- SMTP_SECURITY=${SMTP_SECURITY}
- SMTP_USERNAME=${SMTP_USERNAME}
- SMTP_PASSWORD=${SMTP_PASSWORD}
volumes:
- ./vw-data:/data
ports:
- "80:80"
- "3012:3012" # Websocket pour sync temps réel
Créez un fichier .env à côté :
ADMIN_TOKEN=$(openssl rand -base64 48)
SMTP_HOST=smtp.gmail.com
SMTP_FROM=[email protected]
SMTP_PORT=587
SMTP_SECURITY=starttls
SMTP_USERNAME=[email protected]
SMTP_PASSWORD=votre-app-password
Lancez :
docker compose up -d
C’est tout. Votre serveur répond sur le port 80.
Configuration initiale
Ouvrez http://votre-ip:80 dans un navigateur.
1. Créez votre compte maître
Cliquez “Create account”. Choisissez un email et un mot de passe maître très fort. C’est la clé de tout votre royaume.
Mon conseil : utilisez une passphrase de 5-6 mots. “correct-horse-battery-staple” style. Plus facile à retenir qu’un hash aléatoire, et plus sécurisé.
2. Activez le 2FA immédiatement
Allez dans Settings → Security → Two-step Login.
Activez TOTP (Authenticator app) + un backup comme une YubiKey si vous en avez une.
N’activez pas le 2FA par SMS. C’est moins sécurisé que TOTP et les attaques SIM swap sont réelles.
3. Téléchargez vos recovery codes
Stockez-les dans un endroit sûr (physique, pas numérique). Un coffre-fort, un tiroir verrouillé, whatever.
Si vous perdez votre 2FA, ces codes sont votre seule issue.
4. Désactivez les inscriptions
Une fois votre compte créé, éditez votre docker-compose.yml :
environment:
- SIGNUPS_ALLOWED=false
Redémarrez :
docker compose up -d
Maintenant, seuls les admins peuvent créer des comptes. Votre instance est privée.
Migration depuis LastPass / Bitwarden / Dashlane
Depuis Bitwarden (cloud ou autre instance)
Dans le Web Vault source : Tools → Export Vault → .json (encrypted ou non).
Dans votre Vaultwarden : Tools → Import Data → Bitwarden → Upload le fichier.
C’est instantané. Vos folders, collections, tout est préservé.
Depuis LastPass
LastPass exporte en CSV (pas très secure, mais bon). Exportez, puis importez via l’outil d’import générique.
Attention : le CSV contient vos mots de passe en clair. Supprimez-le après import. Ne le laissez pas traîner.
Depuis Dashlane / 1Password / autres
Utilisez le convertisseur en ligne (bitwarden.com/help/article/import-data/) ou cherchez des scripts de migration sur GitHub.
J’ai migré depuis Dashlane avec un script Python qui a pris 10 minutes à trouver et 2 minutes à tourner.
Les apps clients
Vaultwarden est compatible avec toutes les apps Bitwarden officielles.
Navigateur : Extension Bitwarden (Chrome, Firefox, Safari, Edge, Brave, Vivaldi…). Configurez l’URL du serveur personnalisé : https://vault.votredomaine.com
Mobile : App Bitwarden (iOS / Android). Même config.
Desktop : App Bitwarden pour Windows, macOS, Linux.
CLI : bw command line tool pour les scripts et automations.
Tout fonctionne. J’utilise l’extension Chrome, l’app iPhone, et le CLI sur mes serveurs. Sync parfait.
Reverse Proxy + HTTPS (Obligatoire)
Ne JAMAIS exposer Vaultwarden en HTTP. Vos mots de passe transitent chiffrés, mais l’authentification initiale et le 2FA ne le sont pas.
Avec Nginx Proxy Manager :
- Domaine :
vault.votredomaine.com - Forward Hostname :
vaultwarden - Port :
80 - Websockets activés (obligatoire pour la sync temps réel)
- SSL Let’s Encrypt
Avec Traefik (labels Docker) :
labels:
- "traefik.enable=true"
- "traefik.http.routers.vaultwarden.rule=Host(`vault.votredomaine.com`)"
- "traefik.http.routers.vaultwarden.entrypoints=websecure"
- "traefik.http.routers.vaultwarden.tls.certresolver=letsencrypt"
- "traefik.http.services.vaultwarden.loadbalancer.server.port=80"
# Websocket pour le sync temps réel
- "traefik.http.routers.vaultwarden-ws.rule=Host(`vault.votredomaine.com`) && Path(`/notifications/hub`)"
- "traefik.http.routers.vaultwarden-ws.entrypoints=websecure"
- "traefik.http.routers.vaultwarden-ws.tls.certresolver=letsencrypt"
- "traefik.http.services.vaultwarden-ws.loadbalancer.server.port=3012"
La partie WebSocket est cruciale. Sans ça, le sync entre devices prend 5-10 minutes au lieu d’être instantané.
Backup : La règle d’or
Vos mots de passe sont dans ./vw-data (SQLite + attachments).
Si vous perdez ça, c’est fini. Pas de “mot de passe oublié” chez Vaultwarden.
Mon script de backup quotidien :
#!/bin/bash
DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_DIR="/backups/vaultwarden"
VW_DATA="/home/devuser/vaultwarden/vw-data"
# Stop container pour backup propre
docker stop vaultwarden
# Backup
tar -czf "$BACKUP_DIR/vaultwarden_$DATE.tar.gz" -C "$VW_DATA" .
# Restart
docker start vaultwarden
# Keep last 30 days
find "$BACKUP_DIR" -name "vaultwarden_*.tar.gz" -mtime +30 -delete
Stockez ces backups ailleurs. Un disque externe, un autre serveur, S3 glacier, peu importe. Mais ailleurs.
J’ai une copie sur mon NAS local et une copie chez un ami via rsync. Parano, mais tranquille.
Gestion des pièces jointes
Vaultwarden supporte les attachments (fichiers joints aux entrées). Utile pour les cartes d’identité scannées, les certificats, etc.
Par défaut, pas de limite. Mais ça grossit vite. Mon vw-data fait 150 MB avec 400 mots de passe et ~20 fichiers joints.
Si vous avez besoin de stocker beaucoup de fichiers, utilisez une vraie solution de stockage (Nextcloud, etc.). Vaultwarden n’est pas optimisé pour ça.
Les organisations et collections
Vous pouvez créer des organisations pour partager des mots de passe en groupe.
Exemples d’usage :
- Famille : accès commun aux comptes Netflix, Amazon, etc.
- Équipe : credentials des serveurs partagés
- Clients : accès délégué à des comptes spécifiques
Les collections organisent les mots de passe au sein d’une organisation. Parfait pour les permissions granulaires.
J’ai une orga “Famille” avec ma femme. On partage les comptes communs là-dedans. Mes mots de passe persos restent dans mon vault privé.
L’admin panel
L’URL /admin donne accès au panel d’administration (avec le token défini dans .env).
Ce que vous pouvez faire :
- Créer des comptes utilisateurs
- Voir les stats d’utilisation
- Forcer le 2FA pour tous
- Configurer le SMTP
- Gérer les organisations
Je m’y connecte rarement, mais c’est pratique pour inviter des membres de famille sans leur envoyer un lien d’inscription.
Sécurité : Ce qu’il faut savoir
Chiffrement : AES-256 en mode CBC, clés dérivées avec PBKDF2 (600k itérations par défaut). Même niveau que Bitwarden officiel.
Zero-knowledge : Vaultwarden ne connaît pas votre master password. Impossible de récupérer un vault sans lui. C’est une feature, pas un bug.
Autohébergement = votre responsabilité :
- Maintenez à jour (
docker pullrégulièrement) - Backup religieusement
- Sécurisez votre serveur (firewall, fail2ban, pas de port exposition inutile)
- Utilisez un reverse proxy avec HTTPS
Si votre serveur est compromis, l’attaquant a vos vaults chiffrés. Mais sans le master password, c’est inutile. C’est le même scénario qu’une fuite chez un provider cloud.
Mise à jour
cd ~/vaultwarden
docker compose pull
docker compose up -d
C’est tout. Les updates sont backward-compatible. J’ai jamais eu de souci en 18 mois d’utilisation.
FAQ
Puis-je utiliser Vaultwarden sans Docker ?
Oui, il y a des binaires précompilés. Mais Docker est tellement plus simple. Pourquoi se compliquer la vie ?
Quelle est la différence entre Bitwarden RS et Vaultwarden ?
C’est le même projet. “Bitwarden RS” était l’ancien nom. Il a été renommé “Vaultwarden” pour éviter la confusion avec Bitwarden officiel.
Puis-je migrer de Vaultwarden vers Bitwarden cloud plus tard ?
Oui. Exportez en .json et importez chez Bitwarden. Tout est compatible.
Vaultwarden supporte-t-il les YubiKeys ?
Oui, via FIDO2/WebAuthn. J’ai une YubiKey 5 configurée. Ça marche parfaitement avec l’app mobile et le web vault.
Y a-t-il une limite de mots de passe ?
Non. J’ai 400+. Un pote en a 2000+. Pas de problème de performance.
Puis-je accéder à mon vault offline ?
Oui. Les apps desktop et mobile gardent un cache local. Vous pouvez consulter vos mots de passe sans connexion (pas de sync évidemment).
Est-ce légal d’héberger Vaultwarden ?
L’implémentation de l’API Bitwarden est légale. C’est du clean-room reverse engineering. Bitwarden le tolère (ils n’ont jamais attaqué en justice).
Que se passe-t-il si l’auteur arrête le projet ?
Le code est open-source (GPL). Quelqu’un d’autre forkera et continuera. La communauté est grande.
Puis-je utiliser Vaultwarden pour mon entreprise ?
Pour une petite équipe (5-20 personnes), oui. Pour une grande entreprise, prenez Bitwarden officiel avec support SLA.
Comment vérifier que mon vault est bien chiffré ?
Dans le Web Vault, Settings → Security → Master Password. Vous voyez les stats de la clé dérivée. Assurez-vous d’avoir au moins 600k iterations.
Puis-je importer depuis KeePass ?
Oui. KeePass exporte en XML ou CSV. Utilisez l’import générique de Vaultwarden ou un convertisseur.
Les extensions navigateur fonctionnent-elles ?
Oui, 100 %. J’utilise l’extension Chrome depuis 18 mois. Auto-fill, génération de mots de passe, tout marche.
Conclusion
Vaultwarden est l’un de mes services self-hostés les plus importants. Il est léger, fiable, et me donne un contrôle total sur mes credentials.
Après la fuite LastPass, je ne fais plus confiance à personne pour garder mes mots de passe. Surtout pas une entreprise qui peut se faire hacker ou être rachetée par des incompétents.
Le setup prend 30 minutes. La migration depuis n’importe quel autre gestionnaire est simple. Et une fois en place, vous oubliez que ça existe — jusqu’au moment où vous avez besoin d’un mot de passe, et qu’il est là, sécurisé, accessible.
Si vous n’avez qu’une seule chose à self-hoster, faites-en votre gestionnaire de mots de passe. C’est le service qui sécurise tous les autres.
Écrit le 2026-04-11, sur un VPS Hetzner avec Vaultwarden tournant depuis 18 mois sans interruption. Recovery codes stockés dans un tiroir — physiquement.
Stay in the loop 📬
Get self-hosting tutorials, tool reviews, and infrastructure tips delivered to your inbox. No spam, unsubscribe anytime.
Join 0 self-hosters. Free forever.