Vaultwarden(bitwarden) » Historique » Révision 13
Révision 12 (johan.le.baut, 13/10/2022 10:45) → Révision 13/26 (johan.le.baut, 13/10/2022 10:49)
# Vaultwarden (bitwarden)
{{toc}}
Bitwarden est un gestionnaire de mot de passes.
Vaultwarden est la version Rust de Biwarden: https://github.com/dani-garcia/vaultwarden
Il est disponible sur: https://coffre.aquilenet.fr/
Pour l'admin: https://coffre.aquilenet.fr/admin
Server: harpocrates
## Configuration
### Accès utilisateurs
On autorise l'inscription à tous les utilisateurs ayant un mail en **@aquilenet.fr**
Il est possible d'inviter des gens extérieurs via la page d'admin
### Accès admin
On accède à la page d'admin via https://coffre.aquilenet.fr/admin
Un token est demandé, il est visible sur Harpocrates dans /var/www/bitwarden/docker-compose.yaml
On ajoute en sécurité supplémentaire une Basic Auth dans Nginx, le fichier de conf est: `/var/www/bitwarden/.htpasswd`
Il contient les admins de Harpocrates avec le même hash password du /etc/shadow
## Installation
Sur le serveur Harpocrates, on installe le service vaultwarden, avec un reverse proxy nginx.
### installation du service
On peut le lancer via docker ou builder manuellement le service.
En ce moment la méthode manuelle est utilisée.
#### via docker (et docker compose)
1. Créer le dossier pour la data du service:
```
mkdir -p /srv/vw-data
chown -R bitwarden:bitwarden /srv/vw-data
```
2. On décrit le container docker à lancer via docker compose
`cat /var/www/bitwarden/docker-compose.yaml`
```yaml
version: '3'
services:
vaultwarden:
image: vaultwarden/server:1.25.2
container_name: vaultwarden
restart: always
user: 1000:1000 # bitwarden user
ports:
- "127.0.0.1:8080:80" # port app
- "127.0.0.1:3012:3012" # port web socket
environment:
ADMIN_TOKEN: <Admin token> # token to connect to admin
WEBSOCKET_ENABLED: "true" # Enable WebSocket notifications.
SIGNUPS_DOMAINS_WHITELIST: aquilenet.fr # on autorise seulement le @aquilenet.fr
SIGNUPS_VERIFY: true
INVITATIONS_ALLOWED: false # Les utilisateurs ne peuvent pas inviter des non inscrits (seulement admin)
volumes:
- /srv/vw-data:/data
```
Il est possible de configurer d'autre choses via la page admin
3. Une fois docker installé, pour démarrer en background:
`cd /var/www/bitwarden/ && docker compose up -d`
(4. Mise à jour)
Ouvrir `/var/www/bitwarden/docker-compose.yaml`
changer `image: vaultwarden/server:<nouvelle version>`
Restart:
```
cd /var/www/bitwarden/
docker compose down # Service sera étteint
docker compose up -d --force-recreate
```
#### Sans docker (actuel):
Il faut compiler le service et le lancer dans un systemd:
Suivre: https://gist.github.com/heinoldenhuis/f8164f73e5bff048e76fb4fff2e824e1
Pour le build du 'web-vault', on peut utiliser dans bw_web_builds la cmd `make docker-extract`, il créera le dossier `docker_builds/web-vault` (pas besoin d'installer NodeJs de cette manière).
Install actuelle:
- systemd file: `/etc/systemd/system/vaultwarden.service`
- vaultwarden:
- sources dir: /var/www/bitwarden/vaultwarden
- binaire: /var/www/bitwarden/vaultwarden/target/release/vaultwarden
- data dir: /var/www/bitwarden/vaultwarden/target/release/data
- env file (config): /var/www/bitwarden/vaultwarden/target/release/.env
- config:
```
WEB_VAULT_FOLDER=/var/www/bitwarden/bw_web_builds/docker_builds/web-vault
WEBSOCKET_ENABLED=true
SIGNUPS_VERIFY=true
SIGNUPS_DOMAINS_WHITELIST=aquilenet.fr
ADMIN_TOKEN=<admin token>
INVITATIONS_ALLOWED=false
ROCKET_ADDRESS=127.0.0.1
```
- web-vault
- sources dir: /var/www/bitwarden/bw_web_builds/
- build dir: /var/www/bitwarden/bw_web_builds/docker_builds/web-vault
### Reverse proxy Nginx
Le site est configuré dans `/etc/nginx/sites-available/coffre.aquilenet.fr.conf`
Les certificats sont géré par certbot (cf `sudo certbot certificates`)
### Config SMTP
Il faut configurer une connexion SMTP pour que vaultwarden puisse envoyer des mails.