Installation de Bitwarden sur NAS Asustor

Installation de Bitwarden sur NAS Asustor

Encore une fois, c’est souvent compliqué d’utiliser les packages d’Asustor. Pour le cas présent, si on installe la version « MariaDB » de Bitwarden, le package installe en fait deux containers, le premier pour Bitwarden, et le deuxième pour le serveur MariaDB que le container précédent va utiliser. Pourquoi n’avoir pas utilisé MariaDB qu’on peut installer avec un package indépendant sur le NAS ? Bon, effectivement, si on ne veut pas utiliser MariaDB pour autre chose sur le NAS, cela se conçoit. Cependant :

  1. Il ne doit pas y avoir beaucoup de NAS sur lesquels les utilisateurs n’utilisent pas MariaDB pour autre chose que pour Bitwarden.
  2. Ils pourraient au moins laisser le choix du serveur de base de données.

Bref, comme pour Nextcloud, j’ai abandonné la version Asustor pour utiliser le container officiel sur Docker Hub de Bitwarden, version MySQL/MariaDB.

J’ai tout d’abord créé une base « bitwarden » sur le serveur MariaDB du NAS (le principal, qui n’est pas en docker). J’ai ensuite créé un répertoire /volume1/Docker/Bitwarden dans lequel j’ai installé le fichier suivant : run_bw, et qui contient le code suivant (récupéré sur Docker Hub) :

docker run -d --name Bitwarden --net bridge \
  -v /volume1/Docker/Bitwarden/bw-data/:/data \
  -p 32301:80 \
  -e RUST_BACKTRACE=1 -e DATABASE_URL='mysql://adm_bw:passwd@<ip_du_serveur_mysql>/bitwarden' \
  -e ADMIN_TOKEN=<some_random_token_as_per_above_explanation> \
  -e ENABLE_DB_WAL='false' bitwardenrs/server-mysql

Le token est une longue chaine de caractère permettant d’accéder au mode admin. Voir la doc de Bitwarden pour plus d’explications 🙂 . On atteint Bitwarden, qui tourne sur le port 80 dans le container, par le port 32301 du NAS. Notez la quatrième ligne qui permet d’accéder à la base bitwarden sur le serveur MySQL du NAS.

Au niveau du serveur MySQL, il faut donner les « GRANTS » à l’utilisateur adm_bw pour l’adresse IP correspondant à celle du container de Bitwarden (qu’on trouve dans Portainer par exemple comme ci-dessous).

Personnellement je le fais à partir de mon installation phpmyadmin, mais vous pouvez aussi utiliser les indications sur ce lien.

Un petit :

root@astorus:/volume1/Bitwarden # chmod 755 run_bw

et en tapant

root@astorus:/volume1/Bitwarden # ./run_bw

On crée une image et un container de nom Bitwarden qui se connecte à la base bitwarden déclarée sur le serveur MySQL, et qui génère automatiquement toutes les tables nécessaires, il n’y a rien à faire de ce côté.

Et finalement, une fois que Bitwarden est lancé (http://astorus:32301), on aboutit à la page d’accueil.

Évidemment, j’ai ajouté à Traefik le code qu’il fallait pour faire du reverse proxy sur cette page et l’atteindre en https avec un lien standard (https://myvault.webdot.fr par exemple). Voir mon post relatif à l’installation de Traefik pour cette partie (indispensable).

Après avoir utilisé plusieurs années Keepass, je suis passé depuis 1 an et quelques mois à Bitwarden et je ne le regrette pas. J’y ai accès depuis n’importe quelle application Linux, Windows, Android, ou Web.

Il semblerait que par défaut après installation, tout le monde puisse s’enregistrer, ce qui n’est pas nécessairement ce que vous souhaitez. Pour corriger ceci, juste après l’installation, il faut aller dans la partie « Admin » de Bitwarden : https://vault.monsite.com/admin. Le token demandé à cet endroit, que vous avez configuré dans le fichier de démarrage du docker (cf. ci-dessus), vous pouvez le retrouver dans l’interface Portainer, au niveau des « Portainer details », dans la variable d’environnement ADMIN_TOKEN :

Une fois que vous êtes arrivés dans cette partie Admin de Bitwarden, il faut vérifier la partie « General Settings », l’option « Allow new signups » doit être fixée à « True » par défaut. Il faut désactiver cette option si elle la case est activée !

4 Comments

    1. Oops ! Merci ! J’avoue n’avoir pas regardé ça. L’option « Allow new signups » dans « General Settings » (dans la zone Bitwarden Admin) est à « True » par défaut, ça me paraît un peu limite que cela soit ainsi. C’est corrigé, merci encore. Du coup je vais ajouter un mot à ce sujet sur l’article, histoire que d’autres personnes ne se fassent pas piéger.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *