Présentation de Vaultwarden
Vaultwarden est une réimplémentation en Rust de l'API du serveur Bitwarden. Il fonctionne avec les applications et extensions Bitwarden officielles (navigateur, mobile, bureau, ligne de commande) tout en consommant très peu de ressources, ce qui le rend adapté à un petit VPS. Il est utilisé par des développeurs, des familles et de petites équipes qui veulent garder leurs identifiants sur un serveur qu'ils contrôlent.
À la livraison, le script d'installation a déployé Docker, puis lancé deux conteneurs avec Docker Compose dans /opt/vaultwarden. Vaultwarden écoute uniquement en local (127.0.0.1:8080), et Caddy publie l'interface sur le port 443 en HTTPS. Les données sont stockées dans un volume Docker nommé vw_data.
Le certificat est auto-signé (directive tls internal de Caddy) et lié à l'adresse IP publique du serveur : votre navigateur affichera un avertissement tant que vous n'aurez pas associé un nom de domaine. L'inscription est ouverte au départ (SIGNUPS_ALLOWED=true). Vous créez votre compte, puis vous la fermez.
Ce que vous pouvez faire avec Vaultwarden
Compatible avec les clients Bitwarden
Les applications et extensions Bitwarden se connectent à votre serveur en renseignant simplement son URL. Vous gardez les outils habituels, sans service tiers.
Faible consommation de ressources
Écrit en Rust, Vaultwarden tourne confortablement sur un VPS modeste. Il laisse de la place pour d'autres services sur la même machine.
HTTPS fourni par Caddy
Caddy tourne en réseau hôte et sert l'interface sur le port 443 avec un certificat auto-signé. Le conteneur Vaultwarden n'est pas exposé directement sur Internet.
Déploiement par Docker Compose
Toute la configuration tient dans
/opt/vaultwarden/docker-compose.ymletCaddyfile. Une modification suivie d'undocker compose up -dsuffit à l'appliquer.Données dans un volume dédié
La base et les pièces jointes vivent dans le volume
vw_data, séparé du conteneur. Vous pouvez mettre à jour l'image sans toucher à vos coffres.Inscriptions contrôlables
La variable
SIGNUPS_ALLOWEDpermet de fermer la création de comptes une fois vos utilisateurs inscrits, pour qu'un inconnu ne puisse pas s'enregistrer sur votre instance.
Démarrer avec Vaultwarden
De la commande à la mise en production, en quelques minutes.
- 1
Commander le VPS avec Vaultwarden
Choisissez un VPS Linux (Paris ou Francfort) avec Debian 12, Debian 13 ou Ubuntu 20.04, 22.04, 24.04. Cochez Vaultwarden dans l'onglet Applications du formulaire de commande.
- 2
Vérifier l'installation après la livraison
Attendez quelques minutes après la livraison : le script installe Docker puis démarre les conteneurs. Connectez-vous en SSH et contrôlez que
vaultwardenetcaddysont bien actifs.Bashssh root@SERVER_IP cd /opt/vaultwarden docker compose ps - 3
Créer votre compte principal
Ouvrez https://SERVER_IP dans votre navigateur et acceptez l'avertissement lié au certificat auto-signé. Créez votre compte, puis fermez les inscriptions pour que personne d'autre ne puisse en ouvrir un.
Bashsed -i 's/SIGNUPS_ALLOWED=true/SIGNUPS_ALLOWED=false/' /opt/vaultwarden/docker-compose.yml cd /opt/vaultwarden && docker compose up -d - 4
Passer sur un domaine en HTTPS valide
Faites pointer un enregistrement A de YOUR_DOMAIN vers SERVER_IP. Dans le Caddyfile, remplacez le bloc par YOUR_DOMAIN sans
tls internal, mettezDOMAIN=https://YOUR_DOMAINdans docker-compose.yml, ouvrez les ports 80 et 443, puis relancez.Bashcd /opt/vaultwarden nano Caddyfile nano docker-compose.yml ufw allow 22/tcp && ufw allow 80/tcp && ufw allow 443/tcp docker compose up -d --force-recreate
Cas d’usage de Vaultwarden
Coffre personnel ou familial
Vous hébergez les mots de passe, notes sécurisées et codes de récupération de votre foyer sur un serveur à vous, accessible depuis tous vos appareils.
Gestion des accès d'une petite équipe
Vous partagez des identifiants (accès serveurs, comptes SaaS, clés d'API) entre quelques collaborateurs, via des organisations et des collections Bitwarden.
Alternative à un abonnement cloud
Vous quittez un gestionnaire hébergé chez un tiers et conservez le même client Bitwarden, avec vos données sur un VPS en Europe.
Brique d'un serveur d'outils internes
Vous placez le coffre à côté d'autres services auto-hébergés sur le même VPS, grâce à sa faible empreinte mémoire.
Questions fréquentes sur Vaultwarden
Le certificat est généré par Caddy (tls internal) pour l'adresse IP du serveur, il n'est donc signé par aucune autorité publique. Vous pouvez l'accepter pour créer votre compte. Pour un usage durable, associez un nom de domaine et laissez Caddy obtenir un certificat valide.
En savoir plus sur Vaultwarden
Fichiers et services à connaître
Tout se trouve dans /opt/vaultwarden : le script install-vaultwarden.sh, le fichier docker-compose.yml et le Caddyfile. Les trois volumes Docker sont vw_data (vos données), caddy_data (certificats) et caddy_config. Les deux conteneurs redémarrent automatiquement (restart: always).
Utiliser un nom de domaine
Le certificat fourni à la livraison est auto-signé et associé à l'IP. Les applications mobiles et certaines extensions peuvent refuser ce type de certificat : un domaine avec un certificat valide est donc recommandé pour un usage quotidien. Avec un nom de domaine (voir nos noms de domaine), un Caddyfile minimal ressemble à ceci :
YOUR_DOMAIN {
reverse_proxy 127.0.0.1:8080
}
Caddy sait alors obtenir un certificat public, à condition que le DNS pointe vers le serveur et que les ports 80 et 443 soient joignables. Après modification, relancez avec docker compose restart caddy. N'oubliez pas d'aligner la variable DOMAIN de Vaultwarden.
Sauvegardes
Sauvegardez le volume vw_data : il contient la base SQLite, les clés et les pièces jointes. Le nom exact du volume dépend du dossier du projet, vérifiez-le avec docker volume ls (il devrait s'appeler vaultwarden_vw_data).
docker run --rm -v vaultwarden_vw_data:/data -v /root:/backup alpine tar czf /backup/vw-backup.tgz -C /data .
Copiez ensuite l'archive hors du serveur. Une sauvegarde laissée sur le même VPS ne vous protège pas d'une perte de la machine. Les tutoriels de la section /learn peuvent vous aider à automatiser cette étape.
Mises à jour
L'image utilisée est vaultwarden/server:latest. Pour passer à la dernière version, faites d'abord une sauvegarde, puis :
cd /opt/vaultwarden
docker compose pull
docker compose up -d
