Vaultwarden est un serveur de mots de passe léger, compatible avec Bitwarden. Vous utilisez les applications et extensions de navigateur Bitwarden habituelles, mais votre coffre-fort se trouve sur un serveur que vous contrôlez. Il consomme très peu de mémoire, donc un petit VPS suffit largement. Comme il contient vos mots de passe, configurez-le avec soin.
Avant de commencer
- Un VPS avec Docker. Voir installer Docker.
- Un domaine qui pointe vers le serveur. Voir les enregistrements DNS expliqués.
- Un plan de sauvegarde des données. Voir les sauvegardes de VPS.
Vous trouverez plus de contexte sur notre page Vaultwarden auto-hébergé.
Étape 1 : fichier Docker Compose
mkdir -p ~/vaultwarden && cd ~/vaultwarden
cat > compose.yaml <<'EOF'
services:
vaultwarden:
image: vaultwarden/server:latest
restart: unless-stopped
environment:
DOMAIN: "https://vault.example.com"
SIGNUPS_ALLOWED: "true" # switch to false after you create your account
ADMIN_TOKEN: "${ADMIN_TOKEN}"
volumes:
- ./data:/data
ports:
- "127.0.0.1:8081:80"
EOF
Étape 2 : générer un jeton d’administration
La page d’administration vous permet de gérer les utilisateurs. Stockez un jeton haché, pas en clair. L’image Vaultwarden inclut un outil d’aide :
docker run --rm -it vaultwarden/server /vaultwarden hash
# paste the result into a .env file as ADMIN_TOKEN='$argon2id$...'
Étape 3 : le démarrer
docker compose up -d
docker compose logs -f
Étape 4 : HTTPS avec Caddy
Les clients Bitwarden exigent HTTPS.
vault.example.com {
reverse_proxy 127.0.0.1:8081
}
Rechargez Caddy et ouvrez le site. Créez votre compte, puis définissez SIGNUPS_ALLOWED sur false et exécutez de nouveau docker compose up -d pour que des inconnus ne puissent pas s’inscrire.
Étape 5 : activer la connexion en deux étapes
Dans le coffre web, activez la connexion en deux étapes avec une application d’authentification ou une clé matérielle. Conservez le code de récupération hors ligne.
Sauvegarder le coffre-fort
Toutes les données se trouvent dans ./data, principalement la base SQLite et les pièces jointes. Faites une copie cohérente à intervalles réguliers et gardez-la hors du serveur :
sqlite3 data/db.sqlite3 ".backup '/backup/vaultwarden-$(date +%F).sqlite3'"
tar czf /backup/vw-files-$(date +%F).tgz data/attachments data/rsa_key*
Testez une restauration au moins une fois. Une sauvegarde jamais testée n’est qu’un espoir.