Tous les services opérationnels Devise EUR Aucun frais de mise en service Vous êtes à La Réunion ?
‹ Serveurs VPS et Docker

Vaultwarden : installer et sécuriser avec Docker

Vaultwarden est une version légère et libre du serveur Bitwarden : il garde vos mots de passe sur votre propre serveur et fonctionne avec les applications et extensions officielles de Bitwarden. On l'installe avec Docker Compose, derrière un proxy HTTPS comme Caddy, puis on ferme les inscriptions une fois son compte créé. Comptez une demi-heure sur un serveur où Docker est déjà en place.

Par Jonathan Dewaele · publié le

Ce guide vaut pour Ubuntu 26.04 et Debian 13, avec Docker Engine et le greffon Compose. Les exemples suivent le wiki officiel du projet, relu le 14 octobre 2026 : Using Docker Compose.

Pourquoi le HTTPS n'est pas facultatif

Le coffre web de Bitwarden chiffre et déchiffre vos données dans le navigateur, avec des fonctions de chiffrement que les navigateurs ne donnent qu'aux pages servies en HTTPS. Sans certificat, la page s'affiche mais refuse de fonctionner. Le wiki l'explique dans Enabling HTTPS. La seule façon propre de l'exposer sur Internet est donc un proxy qui obtient un certificat Let's Encrypt et transmet les requêtes au conteneur, jamais un port ouvert en clair.

Avant de commencer

  • Un serveur Linux avec Docker et docker compose.
  • Un nom de domaine, par exemple coffre.votre-domaine.fr, dont l'enregistrement A pointe vers l'adresse IP du serveur.
  • Les ports 80 et 443 ouverts vers le serveur : Caddy en a besoin pour obtenir le certificat.

Installer Vaultwarden et Caddy

  1. Créer un dossier pour le service et s'y placer : mkdir ~/vaultwarden && cd ~/vaultwarden.
  2. Écrire le fichier `compose.yaml` ci-dessous, en remplaçant le domaine par le vôtre.
services:
  vaultwarden:
    image: vaultwarden/server:latest
    container_name: vaultwarden
    restart: always
    environment:
      DOMAIN: "https://coffre.votre-domaine.fr"
      SIGNUPS_ALLOWED: "true"
    volumes:
      - ./vw-data:/data

  caddy:
    image: caddy:2
    container_name: caddy
    restart: always
    ports:
      - 80:80
      - 443:443
      - 443:443/udp
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile:ro
      - ./caddy-config:/config
      - ./caddy-data:/data
    environment:
      DOMAIN: "coffre.votre-domaine.fr"
  1. Écrire le `Caddyfile` dans le même dossier. Caddy lit le domaine dans sa variable d'environnement, obtient le certificat seul et renouvelle avant expiration.
{$DOMAIN} {
  reverse_proxy vaultwarden:80
}
  1. Démarrer : docker compose up -d, puis suivre le démarrage avec docker compose logs -f caddy jusqu'à voir le certificat obtenu.
  2. Créer votre compte en ouvrant https://coffre.votre-domaine.fr dans le navigateur.

Le conteneur Vaultwarden ne publie aucun port : seul Caddy est joignable depuis Internet, sur 80 et 443.

Fermer les inscriptions

Tant que SIGNUPS_ALLOWED vaut "true", n'importe qui trouvant l'adresse peut ouvrir un compte sur votre serveur. Une fois vos comptes créés :

  1. Passez la valeur à "false" dans compose.yaml.
  2. Relancez : docker compose up -d. Compose recrée le conteneur avec le nouveau réglage, les données dans vw-data restent en place.

Pour inviter quelqu'un ensuite, passez par la page d'administration, qui envoie une invitation sans rouvrir les inscriptions.

Activer la page d'administration, avec un mot de passe haché

La page /admin s'active avec la variable ADMIN_TOKEN. Le wiki (Enabling admin page) conseille de n'y mettre que le hachage du mot de passe, jamais le mot de passe lui-même.

  1. Générer le hachage : docker exec -it vaultwarden /vaultwarden hash. La commande demande le mot de passe deux fois et affiche une chaîne qui commence par $argon2id$.
  2. L'ajouter dans environment sous la forme ADMIN_TOKEN: '...'. Dans compose.yaml, chaque signe dollar de la chaîne doit être doublé ($$), sinon Compose le lit comme une variable.
  3. Relancer avec docker compose up -d, puis ouvrir https://coffre.votre-domaine.fr/admin et se connecter avec le mot de passe d'origine.

Sauvegarder le coffre

Toutes les données vivent dans le dossier vw-data : la base SQLite, les pièces jointes et la clé de chiffrement des sessions. Une copie régulière de ce dossier, conservée ailleurs que sur le serveur, suffit à tout restaurer. Arrêtez le conteneur le temps de la copie (docker compose stop vaultwarden), ou utilisez la commande de sauvegarde de SQLite pour copier la base à chaud.

Mettre à jour

docker compose pull puis docker compose up -d récupèrent la dernière image et recréent les conteneurs. Faites-le après avoir sauvegardé vw-data, et lisez les notes de version du projet sur GitHub avant un changement de version majeure.

Sur un VPS Hubspace

Docker et Compose sont installés à la livraison, et le compte admin peut lancer docker sans sudo : commencez directement à l'étape 1. Le pare-feu réseau laisse passer 22, 80 et 443, ce qui suffit à Caddy ; aucun autre port n'est à ouvrir. Le serveur est sauvegardé chaque jour, avec sept jours de conservation, mais gardez votre propre copie de vw-data : c'est votre coffre, et la sauvegarde du serveur ne remplace pas la vôtre. Les serveurs VPS décrivent ce qui est livré.

Questions fréquentes

Vaultwarden fonctionne-t-il avec les applications Bitwarden ?

Oui. Les applications mobiles, l'application de bureau et les extensions de navigateur de Bitwarden se connectent à votre serveur : à la connexion, choisissez un serveur auto-hébergé et indiquez votre adresse.

Peut-on l'utiliser sans nom de domaine ?

Pas proprement. Sans domaine, pas de certificat Let's Encrypt, donc pas de HTTPS, et le coffre web refuse de fonctionner. Un sous-domaine d'un domaine que vous possédez déjà suffit.

Que se passe-t-il si le serveur tombe ?

Les applications gardent une copie chiffrée du coffre et continuent d'afficher vos mots de passe en lecture. Les modifications se synchronisent au retour du serveur.

Articles liés