Tropic Host

Vaultwarden : qu'est-ce que c'est et comment l'installer sur un VPS

7 min de lecture
Tropic
Vaultwarden : qu'est-ce que c'est et comment l'installer sur un VPS

Vaultwarden : installer son propre gestionnaire de mots de passe sur un VPS

Vaultwarden permet de stocker les mots de passe sur votre propre serveur et de les synchroniser entre un ordinateur, un téléphone et un navigateur. Vous utilisez pour cela les applications et extensions officielles de Bitwarden, dans lesquelles vous indiquez l'adresse de votre serveur.

Nous allons voir ci-dessous quel type de VPS convient à Vaultwarden, comment le lancer sous Ubuntu avec Docker Compose, désactiver les inscriptions ouvertes, activer HTTPS et configurer les sauvegardes.

Vaultwarden en cinq étapes

Le plan de déploiement minimal :

  1. Créer un VPS sous Ubuntu et faire pointer un sous-domaine vers celui-ci, par exemple vault.example.com.
  2. Installer Docker et Docker Compose.
  3. Lancer Vaultwarden avec Caddy pour obtenir automatiquement HTTPS.
  4. Créer le premier compte et désactiver les inscriptions ouvertes.
  5. Activer l'authentification à deux facteurs, les mises à jour et les sauvegardes.

Pour un coffre personnel ou une petite famille, la base de données SQLite intégrée suffit. Un serveur PostgreSQL séparé n'est généralement pas nécessaire.

Qu'est-ce que Vaultwarden

Vaultwarden est une implémentation serveur non officielle de l'API Bitwarden, écrite en Rust et conçue pour un déploiement auto-hébergé. Elle est compatible avec les clients officiels de Bitwarden : interface web, applications mobiles et de bureau, extensions de navigateur et CLI.

Les données du coffre sont chiffrées sur l'appareil de l'utilisateur avant d'être envoyées au serveur. Le VPS synchronise la base de données chiffrée, mais il ne connaît pas le mot de passe principal et ne peut pas le récupérer en cas de perte.

Vaultwarden n'est pas un produit officiel de Bitwarden. Le propriétaire est lui-même responsable des mises à jour, de la disponibilité, de HTTPS, des sauvegardes et de la sécurité du VPS.

Vaultwarden et Bitwarden : quelle différence

ParamètreBitwarden CloudVaultwarden
ServeurInfrastructure BitwardenVotre VPS ou serveur domestique
ApplicationsClients BitwardenLes mêmes clients en mode Self-hosted
MaintenanceAssurée par le fournisseurAssurée par le propriétaire
Contrôle des sauvegardesLimité par le serviceComplet
Mise en serviceCréation d'un compteDomaine, Docker et configuration du VPS

Vaultwarden convient aux personnes qui souhaitent contrôler la partie serveur et sont prêtes à mettre Linux à jour et à vérifier leurs sauvegardes. Un service cloud est plus pratique si vous ne voulez pas vous occuper de l'administration. L'auto-hébergement ne rend pas automatiquement le système sûr : il transfère la responsabilité au propriétaire.

Configuration serveur requise pour Vaultwarden

Pour un usage personnel, une configuration de départ raisonnable est la suivante :

  • 1 vCPU ;
  • 1 à 2 Go de RAM ;
  • 10 à 20 Go de SSD ou NVMe ;
  • Ubuntu 24.04 LTS ;
  • une adresse IP publique et un domaine ;
  • les ports 80 et 443 ouverts.

Il s'agit d'une marge pratique pour Ubuntu, Docker, Caddy et les mises à jour, et non d'un minimum strict imposé par le projet. Pour plusieurs dizaines d'utilisateurs, de nombreuses pièces jointes ou plusieurs conteneurs, mieux vaut choisir au moins 2 Go de RAM.

Comment installer Vaultwarden sur un VPS

Cet exemple utilise Ubuntu 24.04 et le sous-domaine vault.example.com. Remplacez cette adresse par la vôtre dans tous les fichiers.

1. Configurer DNS et préparer Ubuntu

Créez un enregistrement DNS A pointant vers l'adresse IPv4 du VPS. Connectez-vous ensuite en SSH :

ssh root@SERVER_IP
apt update && apt upgrade -y
ufw allow OpenSSH
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable

Ne fermez pas la session SSH actuelle avant d'avoir vérifié qu'une nouvelle connexion fonctionne.

2. Installer Docker et Docker Compose

Ajoutez le dépôt officiel de Docker :

apt install -y ca-certificates curl
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
  -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc

tee /etc/apt/sources.list.d/docker.sources > /dev/null <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF

apt update
apt install -y docker-ce docker-ce-cli containerd.io \
  docker-buildx-plugin docker-compose-plugin
docker compose version

3. Créer la configuration

mkdir -p /opt/vaultwarden
cd /opt/vaultwarden

Créez compose.yaml :

services:
  vaultwarden:
    image: vaultwarden/server:latest
    container_name: vaultwarden
    restart: unless-stopped
    environment:
      DOMAIN: "https://vault.example.com"
      SIGNUPS_ALLOWED: "true"
    volumes:
      - ./vw-data:/data

  caddy:
    image: caddy:2-alpine
    container_name: vaultwarden-caddy
    restart: unless-stopped
    depends_on:
      - vaultwarden
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile:ro
      - ./caddy-data:/data
      - ./caddy-config:/config

Créez le fichier Caddyfile :

vault.example.com {
    reverse_proxy vaultwarden:80
}

Seul Caddy est exposé vers l'extérieur. Le conteneur Vaultwarden est accessible à l'intérieur du réseau Docker, et les données sont enregistrées dans /opt/vaultwarden/vw-data. Dans la configuration actuelle, aucun port WebSocket séparé n'est nécessaire.

4. Lancer Vaultwarden

docker compose up -d
docker compose ps
docker compose logs --tail=100 caddy

Ouvrez https://vault.example.com. Caddy obtiendra automatiquement un certificat TLS si DNS pointe déjà vers le VPS et si les ports 80 et 443 sont accessibles. Si le site ne s'ouvre pas, vérifiez DNS, le pare-feu et la présence éventuelle d'un autre serveur web sur ces ports.

5. Créer un compte et fermer les inscriptions

Créez le premier compte. Utilisez un mot de passe principal long et unique, puis conservez-en une copie de secours en dehors de Vaultwarden : l'administrateur du serveur ne peut ni réinitialiser ni récupérer le mot de passe principal.

Après l'inscription, modifiez le paramètre suivant dans compose.yaml :

SIGNUPS_ALLOWED: "false"

Appliquez le réglage :

docker compose up -d

Les personnes extérieures ne pourront désormais plus créer de compte. Pour ajouter un nouvel utilisateur, vous pouvez réactiver temporairement les inscriptions ou configurer des invitations.

Comment connecter l'application Bitwarden

Il n'est pas nécessaire d'installer un client Vaultwarden séparé. Sur l'écran de connexion de l'application ou de l'extension Bitwarden, sélectionnez Self-hosted et indiquez :

https://vault.example.com

Utilisez cette adresse sur l'ordinateur, le téléphone et dans le navigateur. Pour migrer, importez un fichier exporté depuis votre ancien gestionnaire de mots de passe. Supprimez tout fichier CSV ou JSON non chiffré immédiatement après le transfert et ne l'envoyez ni par e-mail ni au moyen d'un lien public.

Configurer Vaultwarden de manière sécurisée

Après le lancement, effectuez plusieurs opérations :

  • activez TOTP ou WebAuthn et conservez les codes de récupération séparément ;
  • laissez SIGNUPS_ALLOWED désactivé ;
  • utilisez des clés SSH et mettez Ubuntu à jour régulièrement ;
  • n'exposez pas le port interne du conteneur Vaultwarden ;
  • n'exécutez pas de conteneurs douteux sur le même VPS ;
  • vérifiez que les sauvegardes peuvent être restaurées.

Le panneau /admin n'est généralement pas nécessaire pour un coffre personnel. Si vous l'activez, utilisez un jeton long sous la forme d'un hachage Argon2 et, si possible, limitez l'accès par adresse IP ou VPN. Il est déconseillé de stocker un ADMIN_TOKEN en clair.

Créez une sauvegarde avant toute mise à jour, puis exécutez :

cd /opt/vaultwarden
docker compose pull
docker compose up -d

Le serveur doit être mis à jour régulièrement : les clients Bitwarden sont publiés indépendamment, et une version trop ancienne de Vaultwarden peut donc ne plus être compatible avec eux.

Sauvegarder Vaultwarden

La base de données SQLite principale se trouve dans vw-data/db.sqlite3, tandis que les pièces jointes sont stockées dans des fichiers séparés. Ne copiez pas une base active avec la commande ordinaire cp : une écriture au même moment peut rendre la copie incohérente.

Créez un instantané sûr avec la commande intégrée :

docker exec vaultwarden /vaultwarden backup

Un fichier distinct db_.sqlite3 apparaîtra dans le répertoire des données. Enregistrez également attachments, sends, config.json s'il a été créé, ainsi que les fichiers rsa_key.

Une sauvegarde conservée sur le même VPS ne protège ni contre la suppression du serveur ni contre une panne du disque. Envoyez automatiquement les copies vers un autre appareil ou un stockage objet distinct, de préférence avec un chiffrement supplémentaire. Effectuez régulièrement une restauration de test.

Quel VPS choisir pour Vaultwarden

Un VPS Linux de base avec 2 Go de RAM suffit pour un coffre personnel ou familial. Cette capacité laisse une marge pour Ubuntu, Docker, Caddy, les mises à jour et les sauvegardes automatiques.

Vous pouvez lancer Vaultwarden sur un VPS d'entrée de gamme de tropic.host, puis augmenter les ressources ultérieurement si vous ajoutez d'autres services auto-hébergés au serveur. Pour un gestionnaire de mots de passe, un réseau stable, une adresse publique permanente et un disque fiable sont plus importants que des cœurs de processeur supplémentaires.

Un serveur domestique convient également, mais il faudra alors assurer l'accès externe, HTTPS, une alimentation stable et la reprise après une panne. Un VPS est généralement plus simple si le coffre doit fonctionner depuis n'importe quel réseau.

Conclusion

Vaultwarden est un gestionnaire de mots de passe auto-hébergé pratique pour les personnes qui souhaitent utiliser les clients Bitwarden tout en conservant la partie serveur sur leur propre infrastructure. Un petit VPS, un domaine, Docker Compose et Caddy suffisent pour démarrer.

La responsabilité principale commence après l'installation : il faut désactiver les inscriptions, activer la 2FA, mettre les conteneurs à jour et conserver des sauvegardes vérifiées en dehors du serveur.

FAQ

Peut-on installer Vaultwarden sans domaine ?

Techniquement, il est possible d'utiliser une adresse locale, mais le coffre web a besoin d'un contexte HTTPS sécurisé. Pour y accéder depuis plusieurs appareils, il est plus simple d'utiliser un domaine et un certificat TLS.

De combien de mémoire vive Vaultwarden a-t-il besoin ?

Pour un ou plusieurs utilisateurs, 1 Go de RAM suffit généralement. Un VPS doté de 2 Go offre une marge plus confortable pour le système, Docker, Caddy et les mises à jour.

Vaultwarden fonctionne-t-il avec l'application mobile Bitwarden ?

Oui. Sur l'écran de connexion, sélectionnez un serveur auto-hébergé et indiquez l'adresse HTTPS complète de votre instance Vaultwarden.

Que se passe-t-il si le VPS est temporairement indisponible ?

Les données déjà synchronisées restent généralement dans le cache local chiffré du client. Cependant, la synchronisation, la connexion sur un nouvel appareil et la réception des modifications ne fonctionneront pas avant le rétablissement du serveur.

Peut-on récupérer un mot de passe principal oublié avec /admin ?

Non. L'administrateur peut gérer le serveur et les comptes, mais il ne possède pas la clé de déchiffrement du coffre de l'utilisateur. Le mot de passe principal et les codes de récupération doivent être conservés séparément.