Skip to content

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 9080 disponible 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 : release ou development)
  • ROCKET_ADDRESS et ROCKET_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 à false une 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 9080 dans docker-compose.yml si nécessaire.
  • Modifiez ROCKET_PROFILE pour 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.