Déploiement de Vaultwarden avec Docker Compose¶
Confier tous ses mots de passe à un service, c'est un acte de confiance. L'héberger soi-même, c'est reprendre cette confiance en main. Vaultwarden est une réécriture en Rust du serveur Bitwarden : compatible avec toutes les applications et extensions Bitwarden officielles, mais assez légère pour tourner sur un Raspberry Pi. Non-officielle, oui — mais mature, largement éprouvée, et redoutablement pratique.
Le principe qui rassure : le serveur ne voit jamais vos mots de passe en clair. Tout est chiffré et déchiffré côté client, dans votre navigateur ou votre téléphone. Vaultwarden ne stocke qu'un coffre déjà scellé.
Prérequis¶
- Docker et Docker Compose installés — voir Installation Docker
- Connexion internet pour télécharger l’image Docker
- Port
9080disponible sur la machine hôte (modifiable)
Le HTTPS n'est pas optionnel
Les clients Bitwarden s'appuient sur la WebCrypto du navigateur, qui ne fonctionne que sur https:// ou localhost. Concrètement : http://localhost:9080 est parfait pour un premier coup d'œil, mais dès que vous voulez y accéder depuis une autre machine, il faut un reverse proxy avec TLS devant Vaultwarden (voir Caddy). Sans ça, le coffre web refusera tout simplement de s'ouvrir.
1⃣ Configuration¶
Le service Vaultwarden est basé sur l’image vaultwarden/server:latest.
| Composants principaux | Description |
|---|---|
| vaultwarden | Serveur Vaultwarden accessible sur le port 9080 |
Volume vaultwarden_data |
Stocke les données utilisateur pour persistance |
Variables d’environnement dans docker-compose.yml¶
ROCKET_PROFILE: profil de lancement (exemple :releaseoudevelopment)ROCKET_ADDRESSetROCKET_PORT: configuration réseau interne au conteneur
Deux variables valent leur pesant d'or dès la mise en production :
ADMIN_TOKEN: déverrouille la page/admin, votre tableau de bord pour gérer les comptes, purger les sessions ou couper les inscriptions sans toucher à un fichier.SIGNUPS_ALLOWED: à passer àfalseune fois votre compte créé. Sinon, votre instance exposée sur internet devient une invitation ouverte à tout le monde.
2⃣ Exemple de docker-compose.yml¶
version: '3.8'
services:
vaultwarden:
image: vaultwarden/server:latest
volumes:
- vaultwarden_data:/data
ports:
- "9080:80"
restart: always
volumes:
vaultwarden_data:
3⃣ Démarrage¶
docker-compose up -d
- Télécharge l’image, crée le volume et démarre Vaultwarden en arrière-plan.
4⃣ Vérification et accès¶
- Vérifiez que le conteneur est bien lancé :
docker-compose ps
- Accédez à Vaultwarden via :
http://localhost:9080
Le tout premier compte que vous créez devient le vôtre — créez-le tout de suite, puis coupez les inscriptions (voir plus bas). Ce réflexe, on ne le prend souvent qu'après avoir vu un inconnu s'inscrire sur une instance oubliée.
5⃣ Gestion du service¶
| Action | Commande |
|---|---|
| Voir les logs | docker-compose logs -f |
| Redémarrer | docker-compose restart |
| Arrêter et supprimer | docker-compose down |
6⃣ Sécurité & Persistance¶
Tout votre coffre tient dans le volume vaultwarden_data (/data dans le conteneur). Trois fichiers y méritent une attention particulière :
db.sqlite3— la base : comptes, entrées, organisations.rsa_key.pem— la clé qui signe les jetons de session. La perdre déconnecte tout le monde et invalide les sessions en cours.attachments/— les pièces jointes de vos entrées.
Une sauvegarde, pas un espoir
Ce volume, ce sont tous vos mots de passe. Une panne de disque sans sauvegarde, et c'est chaque compte de votre vie numérique à réinitialiser un par un. Sauvegardez /data régulièrement, ailleurs que sur la même machine — et testez au moins une fois que la restauration fonctionne vraiment. Une sauvegarde jamais restaurée n'est qu'une hypothèse.
- Les mots de passe sont chiffrés côté client : même un accès au serveur ne les révèle pas.
- N'exposez jamais l'interface en clair — TLS obligatoire (voir l'avertissement des prérequis).
7⃣ Personnalisation¶
- Changez le port
9080dansdocker-compose.ymlsi nécessaire. - Modifiez
ROCKET_PROFILEpour ajuster le mode d’exécution. - Vous pouvez monter un volume différent pour stocker les données ailleurs.
En résumé¶
Quelques lignes de Compose, un reverse proxy avec TLS devant, une sauvegarde de /data qui tourne — et vous voilà maître de votre propre coffre-fort. Plus de dépendance à un service tiers pour ce que vous avez de plus sensible : vos clés du quotidien restent chez vous, chiffrées, sous votre garde.