Bitwarden self-hosted : guide complet d’installation sur serveur Linux
## Bitwarden self-hosted : pourquoi et pour qui ?
Le déploiement self-hosted de Bitwarden est la solution que je recommande systématiquement lors de mes missions de conseil CISO pour les organisations qui ont des exigences de souveraineté des données strictes. C’est aussi la seule approche qui élimine totalement la dépendance à une infrastructure tierce pour la gestion des mots de passe.
Du point de vue sécurité, le self-hosting présente un avantage majeur et un inconvénient significatif :
**Avantage :** Vos données ne quittent jamais votre infrastructure. Zéro exposition aux compromissions de serveurs tiers, zéro question de transfert de données RGPD.
**Inconvénient :** Vous devenez responsable de la sécurité, de la disponibilité et des mises à jour de votre instance Bitwarden. Si vous ne maintenez pas l’instance à jour, vous exposez potentiellement vos mots de passe à des vulnérabilités non-patchées.
Ce guide couvre l’installation complète de Bitwarden self-hosted sur un serveur Linux, avec les bonnes pratiques de sécurité et de maintenance.
## Prérequis et choix d’infrastructure
### Configuration serveur recommandée
Bitwarden self-hosted tourne via Docker. Voici les prérequis minimaux :
**Minimum viable :**
– 1 vCPU
– 2 Go de RAM
– 10 Go de stockage
– Linux (Ubuntu 20.04+ recommandé, Debian 11+, ou CentOS 8+)
**Recommandé pour une PME (10-100 utilisateurs) :**
– 2 vCPU
– 4 Go de RAM
– 25 Go SSD
Pour un VPS chez Hetzner, OVH ou DigitalOcean, comptez 5-15€/mois selon la configuration. C’est généralement moins cher que les plans Business des gestionnaires SaaS pour des équipes de plus de 5 personnes.
**Bitwarden Unified** est la version recommandée pour le self-hosting depuis 2023 — une image Docker unique qui simplifie le déploiement par rapport à l’ancienne stack multi-containers.
### Domaine et certificat SSL
Vous aurez besoin d’un nom de domaine pointant vers votre serveur (ex: `vault.votrdomaine.com`) et d’un certificat SSL/TLS valide.
Let’s Encrypt est la solution standard gratuite. Bitwarden self-hosted intègre un support natif pour Let’s Encrypt — le certificat est géré automatiquement si vous configurez un domaine valide.
## Installation de Bitwarden Unified : guide pas-à-pas
### Étape 1 — Préparation du serveur
“`bash
# Mise à jour du système
sudo apt update && sudo apt upgrade -y
# Installation de Docker
curl -fsSL https://get.docker.com | sudo sh
# Installation de Docker Compose
sudo apt install docker-compose-plugin -y
# Vérification
docker –version && docker compose version
“`
### Étape 2 — Récupération du script d’installation Bitwarden
Bitwarden fournit un script d’installation officiel qui simplifie la configuration :
“`bash
# Créer le répertoire d’installation
sudo mkdir -p /opt/bitwarden
cd /opt/bitwarden
# Télécharger le script d’installation
curl -Lso bitwarden.sh ‘https://vault.bitwarden.com/install/bitwarden.sh’
chmod +x bitwarden.sh
“`
### Étape 3 — Génération de la clé d’installation
Rendez-vous sur bitwarden.com/host pour générer une clé d’installation. Cette clé est nécessaire pour enregistrer votre instance auprès des serveurs de mise à jour de Bitwarden (pour les mises à jour de l’application, pas pour les données). Notez-la soigneusement.
### Étape 4 — Exécution du script d’installation
“`bash
sudo ./bitwarden.sh install
“`
Le script vous posera plusieurs questions :
– **Domaine de votre instance** : ex. `vault.mondomaine.com`
– **Utiliser Let’s Encrypt** : Oui (recommandé si le domaine est accessible publiquement)
– **Email pour Let’s Encrypt** : Pour les notifications d’expiration
– **Clé d’installation** : La clé récupérée à l’étape 3
**Configuration de la base de données :**
Bitwarden crée automatiquement une base de données. Notez le mot de passe généré pour la base de données — il sera affiché une seule fois.
### Étape 5 — Configuration post-installation
Le fichier de configuration principal est dans `/opt/bitwarden/bwdata/config.yml`. Les paramètres importants à vérifier/modifier :
“`yaml
# Domaine
globalSettings__baseServiceUri__vault: https://vault.mondomaine.com
# SMTP (pour les emails de vérification et de récupération)
globalSettings__mail__smtp__host: smtp.votrefournisseur.com
globalSettings__mail__smtp__port: 587
globalSettings__mail__smtp__ssl: false
globalSettings__mail__smtp__username: email@votredomaine.com
globalSettings__mail__smtp__password: votre_mot_de_passe_smtp
# Désactiver les inscriptions publiques (important pour une instance privée)
globalSettings__disableUserRegistration: true
“`
Pour une instance privée d’entreprise, **désactivez les inscriptions publiques** — ainsi seuls les utilisateurs que vous invitez peuvent créer un compte.
### Étape 6 — Démarrage de l’instance
“`bash
sudo ./bitwarden.sh start
# Vérifier que tous les containers sont en cours d’exécution
sudo docker ps
“`
Votre instance Bitwarden est maintenant accessible à `https://vault.mondomaine.com`.
## Configuration de l’organisation (pour le partage d’équipe)
Une fois connecté à votre instance, créez une organisation pour gérer les accès d’équipe :
1. Dans l’interface admin → Admin Console → Create Organization
2. Configurez les collections (équivalents des dossiers partagés)
3. Invitez les membres
4. Attribuez les permissions par collection
Du point de vue sécurité, la bonne pratique c’est de créer des collections par équipe ou par niveau de sensibilité (ex: « Accès niveau 1 — Tous les employés », « Accès niveau 2 — Managers », « Accès niveau 3 — IT/Direction ») et d’attribuer les mots de passe dans la collection appropriée.
## Mises à jour : procédure et automatisation
Les mises à jour de Bitwarden self-hosted sont cruciales pour la sécurité. Une instance non mise à jour peut exposer des vulnérabilités.
“`bash
# Mise à jour manuelle
cd /opt/bitwarden
sudo ./bitwarden.sh update
# Les conteneurs s’arrêtent et redémarrent automatiquement
“`
**Automatisation des mises à jour :** Je recommande de configurer un cron mensuel pour les mises à jour, avec une vérification préalable du changelog pour identifier les changements breaking :
“`bash
# Crontab : mise à jour le 1er de chaque mois à 3h du matin
0 3 1 * * cd /opt/bitwarden && ./bitwarden.sh update >> /var/log/bitwarden-update.log 2>&1
“`
Ce que révèle l’audit de cette pratique : les organisations qui automatisent les mises à jour ont statistiquement une meilleure posture de sécurité que celles qui les font manuellement et irrégulièrement.
## Sauvegardes : la configuration critique
Le point le plus important d’un déploiement self-hosted est la stratégie de sauvegarde. Si votre serveur tombe et que vous n’avez pas de backup, vous perdez tous vos mots de passe.
Les données Bitwarden sont dans `/opt/bitwarden/bwdata/`. Cette structure doit être sauvegardée régulièrement.
**Script de sauvegarde recommandé :**
“`bash
#!/bin/bash
BACKUP_DIR=”/var/backups/bitwarden”
DATE=$(date +%Y%m%d_%H%M%S)
# Arrêt propre des containers pour une sauvegarde cohérente
cd /opt/bitwarden
./bitwarden.sh stop
# Sauvegarde des données
tar -czf “$BACKUP_DIR/bitwarden_$DATE.tar.gz” /opt/bitwarden/bwdata/
# Redémarrage
./bitwarden.sh start
# Rotation : ne garder que les 30 dernières sauvegardes
ls -t $BACKUP_DIR/*.tar.gz | tail -n +31 | xargs rm -f
echo “Sauvegarde Bitwarden terminée : bitwarden_$DATE.tar.gz”
“`
**Règle 3-2-1 :** 3 copies, sur 2 supports différents, dont 1 hors site. Envoyez vos sauvegardes Bitwarden vers un stockage objet distant (S3, Backblaze B2, ou OVH Object Storage).
## KeePass vs Bitwarden self-hosted : la comparaison pertinente
Pour les professionnels qui envisagent le self-hosting, KeePass est souvent cité comme alternative. La comparaison est instructive.
**KeePass :**
– Gratuit, open source, pas de serveur nécessaire
– Stockage local dans un fichier `.kdbx` chiffré
– Synchronisation manuelle entre appareils (via cloud storage, USB…)
– Interface vieillissante
– Pas de partage d’équipe natif
**Bitwarden self-hosted :**
– Serveur requis (mais peu coûteux)
– Synchronisation automatique entre tous les appareils
– Partage d’équipe natif avec contrôle d’accès granulaire
– Interface moderne (identique à la version cloud)
– Mises à jour régulières
Du point de vue sécurité, les deux offrent un chiffrement robuste. Bitwarden self-hosted gagne sur la praticité et le partage d’équipe. KeePass est pertinent pour les particuliers qui veulent le contrôle maximal sans la complexité d’un serveur.
Détails sur Bitwarden : [bitwarden.com](https://bitwarden.com)
## FAQ — Bitwarden self-hosted
