À quoi ça sert ?
Vaultwarden est une version légère du serveur Bitwarden. Vous utilisez les applications officielles Bitwarden (téléphone, navigateur, ordinateur), mais vos mots de passe sont stockés sur votre propre serveur, chiffrés.
Pour qui ?
Tout le monde : c’est souvent la première application que l’on auto-héberge.
Bon à savoir
Les applications Bitwarden exigent HTTPS : Vaultwarden doit être derrière un reverse proxy avec certificat.
Après l'installation
- Les inscriptions sont fermées par sécurité. Pour créer votre compte, passez SIGNUPS_ALLOWED à "true", relancez avec docker compose up -d, inscrivez-vous, puis remettez "false" et relancez.
- Dans l’application Bitwarden, choisissez « Auto-hébergé » et indiquez l’adresse de votre serveur.
Le docker-compose
Exemple derrière Traefik, avec une explication sur chaque ligne. Pour l'adapter à votre cas (Nginx Proxy Manager, port local…), utilisez le générateur.
# docker-compose.yml : Vaultwarden
# Ce fichier décrit les « conteneurs » à lancer : chaque conteneur est une petite
# boîte isolée qui contient un programme. Lancez-le avec : docker compose up -d
services:
vaultwarden:
# Le programme à télécharger (l'« image »), avec sa version
image: vaultwarden/server:latest
container_name: vaultwarden
# Redémarre tout seul après une panne ou un redémarrage du serveur
restart: unless-stopped
# Empêche un programme piraté de devenir administrateur
security_opt:
- no-new-privileges:true
# Réglages de l'application. Les valeurs ${...} viennent du fichier .env
environment:
DOMAIN: https://vault.mondomaine.fr
SIGNUPS_ALLOWED: "false"
TZ: Europe/Paris
# Dossiers du serveur partagés avec le conteneur (dossier_serveur:dossier_conteneur).
# Vos données sont stockées ici : ce sont ces dossiers qu'il faut sauvegarder.
volumes:
- ./data:/data
# Réseau partagé avec le reverse proxy pour qu'il puisse joindre l'application
networks:
- traefik
# Indique à Traefik de publier l'application sur https://vault.mondomaine.fr avec un certificat HTTPS
labels:
- traefik.enable=true
- traefik.http.routers.vaultwarden.rule=Host(`vault.mondomaine.fr`)
- traefik.http.routers.vaultwarden.entrypoints=websecure
- traefik.http.routers.vaultwarden.tls.certresolver=letsencrypt
- traefik.http.services.vaultwarden.loadbalancer.server.port=80
# Le réseau du reverse proxy existe déjà : on s'y raccroche
networks:
traefik:
external: true