Intermédiaire ⏱ 20 min de mise en œuvre Mis à jour le 11 août 2026

Héberger Vaultwarden : votre gestionnaire de mots de passe souverain

Gardez le coffre de vos mots de passe chez vous plutôt que sur un SaaS. Vaultwarden est un serveur Bitwarden léger et open source. Voici comment le déployer, en insistant sur le HTTPS et les sauvegardes.

Gérer soi-même ses mots de passe permet de conserver le coffre chiffré sous son contrôle, sans dépendre entièrement d’un service SaaS comme Bitwarden Cloud, 1Password ou LastPass. Pour un particulier technique, une équipe ou une PME, l’auto-hébergement apporte aussi une meilleure maîtrise de la localisation des données, des sauvegardes et des accès administratifs.

Vaultwarden est une implémentation légère et open source du serveur Bitwarden. Ce n’est pas le serveur officiel édité par Bitwarden, mais il reste compatible avec les extensions de navigateur, les applications mobiles et les clients de bureau Bitwarden. Sa faible consommation de ressources le rend adapté à un petit VPS.

La souveraineté ne se limite toutefois pas à installer un conteneur. Elle implique de choisir où réside le serveur, qui peut l’administrer et comment le coffre est sauvegardé. Un VPS hébergé en France, soumis au RGPD et protégé correctement, constitue une base cohérente. Les VPS TalCloud sont disponibles à partir de 4,99 € par mois, avec des serveurs en France, du stockage NVMe, une protection Anti-DDoS Netrix et un support humain.

Prérequis pour héberger Vaultwarden

Une installation accessible depuis Internet demande :

  • un VPS léger sous Linux
  • Docker Engine et le plugin Docker Compose (voir installer Docker sur un VPS)
  • un nom de domaine ou un sous-domaine, par exemple vault.exemple.fr
  • un enregistrement DNS pointant vers l’adresse IP du VPS
  • les ports 80 et 443 accessibles
  • un reverse proxy capable de fournir un certificat TLS
  • une destination de sauvegarde distincte du VPS

Vaultwarden demande peu de mémoire pour un usage personnel ou une petite équipe. Il faut néanmoins prévoir une marge pour le système, Docker, le reverse proxy et les opérations de sauvegarde.

Le domaine doit être configuré avant l’activation du certificat HTTPS. Créez un enregistrement DNS de type A vers l’adresse IPv4 du serveur et, si nécessaire, un enregistrement AAAA vers son adresse IPv6.

HTTPS est obligatoire pour une installation de production. Le coffre contient des informations extrêmement sensibles et l’interface Web repose sur des fonctions de navigateur réservées aux contextes sécurisés. Exposer Vaultwarden en HTTP sur Internet rendrait les échanges vulnérables et empêcherait certaines fonctions de fonctionner correctement.

Installer Vaultwarden avec Docker Compose

Créez un répertoire réservé au service :

sudo mkdir -p /opt/vaultwarden
sudo chown "$USER":"$USER" /opt/vaultwarden
cd /opt/vaultwarden

Générez ensuite un secret administratif long et aléatoire :

openssl rand -base64 48

Placez temporairement le résultat dans un fichier .env :

ADMIN_TOKEN=remplacez_par_le_secret_genere

Protégez ce fichier :

chmod 600 .env

Créez ensuite compose.yml :

services:
  vaultwarden:
    image: vaultwarden/server:latest
    container_name: vaultwarden
    restart: unless-stopped
    environment:
      DOMAIN: "https://vault.exemple.fr"
      SIGNUPS_ALLOWED: "false"
      ADMIN_TOKEN: "${ADMIN_TOKEN}"
    volumes:
      - ./data:/data
    ports:
      - "127.0.0.1:8080:80"

Remplacez vault.exemple.fr par votre domaine réel. La variable DOMAIN doit impérativement utiliser une URL en https://.

Le volume ./data:/data rend les données persistantes. Il contient notamment la base de données, les pièces jointes et d’autres éléments indispensables au fonctionnement du coffre. Supprimer ce répertoire sans sauvegarde peut rendre les comptes et leurs données irrécupérables.

SIGNUPS_ALLOWED: "false" désactive les inscriptions publiques. C’est un réglage essentiel pour éviter que n’importe qui puisse créer un compte. Les utilisateurs autorisés pourront être invités depuis l’administration.

Démarrez le service :

docker compose up -d
docker compose logs --tail=100 vaultwarden

Le port 8080 écoute uniquement sur l’interface locale grâce à 127.0.0.1. Il ne doit pas être exposé publiquement. Les visiteurs passeront exclusivement par le reverse proxy HTTPS.

Mettre Vaultwarden derrière HTTPS

Caddy offre une configuration simple et automatise l’obtention ainsi que le renouvellement des certificats TLS. Après son installation sur le VPS, ajoutez ce bloc dans son Caddyfile :

vault.exemple.fr {
    reverse_proxy 127.0.0.1:8080
}

Rechargez ensuite Caddy selon son mode d’installation, par exemple :

sudo caddy validate --config /etc/caddy/Caddyfile
sudo systemctl reload caddy

Caddy demandera automatiquement un certificat pour le domaine. Le DNS doit déjà pointer vers le serveur et les ports 80 et 443 doivent être autorisés par le pare-feu. Nginx Proxy Manager ou Traefik conviennent également.

Vérifiez ensuite que https://vault.exemple.fr affiche l’interface Vaultwarden et que le navigateur reconnaît le certificat. Ne contournez jamais une erreur TLS avec un certificat expiré, auto-signé ou associé au mauvais domaine.

Seuls les ports nécessaires doivent être ouverts. Le port SSH doit être protégé par des clés, et le port 8080 doit rester inaccessible depuis Internet grâce au pare-feu.

Sécuriser le panneau d’administration

Le panneau d’administration se trouve à l’adresse suivante :

https://vault.exemple.fr/admin

Le secret défini dans ADMIN_TOKEN en contrôle l’accès. Un jeton en clair fonctionne, mais Vaultwarden recommande de le stocker sous forme de hash Argon2. Une fois le conteneur démarré, générez ce hash avec :

docker exec -it vaultwarden /vaultwarden hash --preset owasp

Saisissez le secret administratif lorsque la commande le demande, puis copiez le hash produit dans .env :

ADMIN_TOKEN='$argon2id$v=19$m=65540,t=3,p=4$...'

Les guillemets simples empêchent l’interprétation des caractères $ dans le fichier .env. Si le hash est placé directement dans le fichier Compose, chaque $ doit généralement être doublé en $$.

Appliquez la modification :

docker compose up -d

Depuis le panneau, contrôlez les inscriptions, les invitations, la configuration SMTP et les paramètres de sécurité. Une configuration SMTP est recommandée pour envoyer les invitations et les notifications importantes. Le panneau /admin ne remplace pas un compte utilisateur et son secret doit être différent du mot de passe principal du coffre.

Pour réduire l’exposition, il est également possible de filtrer /admin par adresse IP au niveau du reverse proxy ou de le rendre accessible uniquement à travers un VPN.

Connecter les applications Bitwarden

Vaultwarden utilise les API attendues par les clients Bitwarden. Vous pouvez donc conserver les applications officielles :

  • extension Bitwarden pour Firefox, Chrome, Edge ou Safari
  • application Bitwarden pour Android ou iOS
  • client de bureau Bitwarden
  • interface Web servie par Vaultwarden

Avant de vous connecter, ouvrez les paramètres du client et recherchez l’option permettant d’utiliser un serveur auto-hébergé ou une URL de serveur personnalisée. Indiquez :

https://vault.exemple.fr

Configurez cette adresse avant la création de la session. Un compte ouvert sur Bitwarden Cloud n’est pas automatiquement présent sur votre instance Vaultwarden.

Créez ou invitez uniquement les comptes nécessaires. Chaque utilisateur doit choisir un mot de passe principal unique et très robuste, puis activer l’authentification à deux facteurs. Pour une PME, testez aussi les organisations, les collections partagées et les droits d’accès avec des comptes non critiques avant d’y importer les secrets de production.

Sécurité, mises à jour et sauvegardes critiques

Le mot de passe principal protège le contenu du coffre, mais il ne compense pas un serveur mal administré. Maintenez Docker, le système et le reverse proxy à jour. Consultez les changements Vaultwarden avant une mise à niveau, puis mettez à jour le conteneur avec :

cd /opt/vaultwarden
docker compose pull
docker compose up -d
docker compose logs --tail=100 vaultwarden

La sauvegarde est le point le plus critique. Si le VPS tombe en panne et que le volume data disparaît, vous risquez de perdre l’ensemble de vos mots de passe, pièces jointes et données d’organisation.

Pour réaliser une copie cohérente du volume, arrêtez brièvement le conteneur :

cd /opt/vaultwarden
docker compose stop vaultwarden
sudo tar -czf /var/backups/vaultwarden-data-$(date +%F).tar.gz data
docker compose start vaultwarden

Cette archive doit ensuite être copiée automatiquement vers un stockage distinct du VPS. Chiffrez les sauvegardes, limitez leur accès, conservez plusieurs versions et surveillez les échecs de transfert. Notre guide sur la stratégie de sauvegarde d’un serveur détaille cette approche. Une archive stockée uniquement sur le même serveur ne protège ni contre une panne du disque, ni contre une suppression accidentelle, ni contre la compromission de la machine.

Testez régulièrement la restauration sur une instance isolée : décompressez une sauvegarde, rattachez le répertoire restauré à /data, démarrez Vaultwarden et vérifiez la connexion, les éléments du coffre et les pièces jointes. Le contrôle opérationnel final tient en quatre points : certificat HTTPS valide, inscriptions publiques désactivées, authentification à deux facteurs activée et restauration de sauvegarde réellement testée.