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
- Créer un dossier pour le service et s'y placer :
mkdir ~/vaultwarden && cd ~/vaultwarden. - É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"
- É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
}
- Démarrer :
docker compose up -d, puis suivre le démarrage avecdocker compose logs -f caddyjusqu'à voir le certificat obtenu. - Créer votre compte en ouvrant
https://coffre.votre-domaine.frdans 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 :
- Passez la valeur à
"false"danscompose.yaml. - Relancez :
docker compose up -d. Compose recrée le conteneur avec le nouveau réglage, les données dansvw-datarestent 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.
- 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$. - L'ajouter dans
environmentsous la formeADMIN_TOKEN: '...'. Danscompose.yaml, chaque signe dollar de la chaîne doit être doublé ($$), sinon Compose le lit comme une variable. - Relancer avec
docker compose up -d, puis ouvrirhttps://coffre.votre-domaine.fr/adminet 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
- Installer n8n avec Docker Compose sur un serveurInstaller n8n avec Docker Compose sur un serveur Linux, derrière Traefik en HTTPS, avec les bonnes variables pour les webhooks, sauvegarder et mettre à jour.
- Nextcloud Docker : installer Nextcloud sur un VPSInstaller Nextcloud avec Docker sur un VPS grâce à l'image officielle All-in-One, ouvrir son interface sans l'exposer et le servir sur votre domaine en HTTPS.
- Coolify : installer et configurer sur un VPSInstaller Coolify sur un VPS Ubuntu ou Debian, ouvrir son tableau de bord sans l'exposer, puis le servir sur votre domaine en HTTPS : la marche à suivre.