Déploiement Manuel de Linux
Cet article vous guidera à travers la procédure pour installer et déployer manuellement Bitwarden sur votre propre serveur. Veuillez consulter la documentation de soutien à la
warning
Les installations manuelles ne doivent être effectuées que par des utilisateurs avancés. Ne poursuivez que si vous êtes très familier avec les technologies Docker et que vous désirez plus de contrôle sur votre installation Bitwarden.
Les installations manuelles n'ont pas la capacité de mettre à jour automatiquement certaines dépendances de l'installation de Bitwarden. Lorsque vous passez d'une version de Bitwarden à la suivante, vous serez responsable des modifications des variables d'environnement requises, des modifications de nginx default.conf, des modifications de docker-compose.yml, et ainsi de suite.
Nous essaierons de mettre en évidence ces points dans les
Exigences
Avant de procéder à l'installation, veuillez vous assurer que
Si vous construisez vos propres images Bitwarden, les images officielles de .NET Core Runtime (téléchargeables depuis
Spécifications du système
Minimum | Recommandé | |
|---|---|---|
Processeur | x64, 1.4GHz | x64, 2GHz double cœur |
Mémoire | 2GB de RAM | 4GB de RAM |
Stockage | 12GB | 25GB |
Version de Docker | Moteur 19+ et Compose 1.24+ | Moteur 19+ et Compose 1.24+ |
Procédure d'installation
Créer un utilisateur local Bitwarden & répertoire
Nous recommandons de configurer votre serveur avec un compte de service Bitwarden dédié à partir duquel installer et exécuter Bitwarden. En faisant cela, votre instance Bitwarden sera isolée des autres applications en cours d'exécution sur votre serveur.
Ces étapes sont les meilleures pratiques recommandées par Bitwarden, mais ne sont pas obligatoires. Pour plus d'informations, consultez la documentation de Docker sur les
Créez un utilisateur Bitwarden :
Bashsudo adduser bitwardenDéfinissez un mot de passe pour l'utilisateur Bitwarden :
Bashsudo passwd bitwardenCréez un groupe Docker (s'il n'existe pas déjà) :
Bashsudo groupadd dockerAjoutez l'utilisateur Bitwarden au groupe docker:
Bashsudo usermod -aG docker bitwardenCréez un répertoire Bitwarden :
Bashsudo mkdir /opt/bitwardenDéfinissez les autorisations pour le répertoire
/opt/bitwarden:Bashsudo chmod -R 700 /opt/bitwardenDéfinissez la propriété de l'utilisateur Bitwarden du répertoire
/opt/bitwarden:Bashsudo chown -R bitwarden:bitwarden /opt/bitwarden
Télécharger & configurer
warning
Si vous avez Bitwarden depuis le répertoire /opt/bitwarden. N'installez pas Bitwarden en tant que root, car vous rencontrerez des problèmes lors de l'installation.
Pour télécharger Bitwarden et configurer les ressources du serveur Bitwarden :
Téléchargez une version ébauchée des dépendances de Bitwarden (
docker-stub.zip) depuis lespages de versions sur GitHub. Par exemple:Bashcurl -L https://github.com/bitwarden/server/releases/download/v<version_number>/docker-stub-US.zip \ -o docker-stub-US.zipCréez un nouveau répertoire nommé
bwdataet extrayezdocker-stub.zipdedans, par exemple :Bashunzip docker-stub-US.zip -d bwdataUne fois décompressé, le répertoire
bwdatacorrespondra à ce que le fichierdocker-compose.ymlattend pour le mappage de volume. Vous pouvez, si vous le souhaitez, modifier l'emplacement de ces mappages sur la machine hôte.Dans
./bwdata/env/global.override.env, éditer les variables d'environnement suivantes :globalSettings__baseServiceUri__vault=: Entrez le domaine de votre instance Bitwarden.globalSettings__sqlServer__ConnectionString=: Remplacez leMOT_DE_PASSE_ALÉATOIRE_DE_LA_BASE_DE_DONNÉESpar un mot de passe sécurisé à utiliser dans une étape ultérieure.globalSettings__identityServer__certificatePassword: Définissez un mot de passe de certificat sécurisé pour une utilisation dans une étape ultérieure.globalSettings__internalIdentityKey=: RemplacezRANDOM_IDENTITY_KEYpar une chaîne de clé aléatoire.globalSettings__oidcIdentityClientKey=: RemplacezRANDOM_IDENTITY_KEYpar une chaîne de clés aléatoire.globalSettings__duo__aKey=: RemplacezRANDOM_DUO_AKEYpar une chaîne de clés aléatoire.globalSettings__installation__id=: Entrez un identifiant d'installation récupéré depuishttps://bitwarden.com/host.globalSettings__installation__key=: Entrez une clé d'installation récupérée depuishttps://bitwarden.com/host.tip
À ce moment, envisagez également de définir des valeurs pour toutes les variables
globalSettings__mail__smtp__et pouradminSettings__admins. En faisant cela, vous configurerez le serveur de messagerie SMTP utilisé pour envoyer des invitations aux nouveaux membres de l'organisation et fournir l'accès auPortail de l'Administrateur Système.
À partir de
./bwdata, générer un fichier de certificat.pfxpour le conteneur d'identité et le déplacer vers le répertoire du volume mappé (par défaut,./bwdata/identity/). Par exemple, exécutez les commandes suivantes :Bashopenssl req -x509 -newkey rsa:4096 -sha256 -nodes -keyout identity.key -out identity.crt -subj "/CN=Bitwarden IdentityServer" -days 10950et
Bashopenssl pkcs12 -export -out ./identity/identity.pfx -inkey identity.key -in identity.crt -passout pass:IDENTITY_CERT_PASSWORDDans la commande ci-dessus, remplacez
IDENTITY_CERT_PASSWORDpar le mot de passe du certificat créé et utilisé dans Étape 3.Copier
identity.pfxdans le répertoire./bwdata/ssl.Créez un sous-répertoire dans
./bwdata/sslnommé pour votre domaine, par exemple :Bashmkdir ./ssl/bitwarden.example.comFournissez un certificat SSL de confiance et une clé privée dans le sous-répertoire nouvellement créé
./bwdata/ssl/bitwarden.example.com.note
Ce répertoire est mappé au conteneur NGINX à
/etc/ssl. Si vous ne pouvez pas fournir un certificat SSL de confiance, placez devant l'installation un proxy qui fournit un point de terminaison HTTPS aux applications client Bitwarden.Dans
./bwdata/nginx/default.conf:Remplacez toutes les instances de
bitwarden.example.compar votre domaine, y compris dans l'en-têtePolitique de Sécurité de Contenu.Définissez les variables
ssl_certificateetssl_certificate_keysur les chemins du certificat et de la clé privée fournis dans l'Étape 7.Effectuez l'une des actions suivantes, en fonction de la configuration de votre certificat :
Si vous utilisez un certificat SSL de confiance, définissez la variable
ssl_trusted_certificatesur le chemin d'accès à votre certificat.Si vous utilisez un certificat auto-signé, mettez en commentaire la variable
ssl_trusted_certificate.
Dans
./bwdata/env/mssql.override.env, remplacezRANDOM_DATABASE_PASSWORDpar le mot de passe créé à l'étape 3.Dans
./bwdata/web/app-id.json, remplacezbitwarden.example.compar votre domaine.Dans
./bwdata/env/uid.env, définissez l'UID et le GID des utilisateurs et du groupeBitwardenque vous avezcréé précédemmentafin que les conteneurs s'exécutent sous ceux-ci, par exemple :BashLOCAL_UID=1001 LOCAL_GID=1001
Démarrez votre serveur
Démarrez votre serveur Bitwarden avec la commande suivante :
Bashdocker compose -f ./docker/docker-compose.yml up -d
Vérifiez que tous les conteneurs fonctionnent correctement :
Bashdocker ps
Félicitations ! Bitwarden est maintenant opérationnel à l'adresse https://your.domain.com. Visitez le coffre web dans votre navigateur pour confirmer qu'il fonctionne.
Vous pouvez maintenant enregistrer un nouveau compte et vous connecter. Vous devrez avoir configuré les variables d'environnement SMPT (voir
Prochaines étapes :
Si vous prévoyez d'auto-héberger une organisation Bitwarden, consultez
auto-héberger une organisationpour commencer.Pour plus d'informations, consultez les
FAQ sur l'auto-hébergement.
Mettez à jour votre serveur
Mettre à jour un serveur auto-hébergé qui a été installé et déployé manuellement est différent de la
Téléchargez la dernière archive
docker-stub.zipdepuis lespages de versions sur GitHub.Décompressez la nouvelle archive
docker-stub.zipet comparez son contenu avec ce qui se trouve actuellement dans votre répertoirebwdata, en copiant tout ce qui est nouveau dans les fichiers préexistants debwdata.
Ne remplacez pas votre répertoirebwdataexistant par le contenu de la nouvelle archivedocker-stub.zip, car cela écraserait tout travail de configuration personnalisé que vous avez effectué.Exécutez la commande suivante pour redémarrer votre serveur avec votre configuration mise à jour et les derniers conteneurs :
Bashdocker compose -f ./docker/docker-compose.yml down && docker compose -f ./docker/docker-compose.yml up -d