Projet

Général

Profil

Vaultwarden(bitwarden) » Historique » Version 11

johan.le.baut, 13/10/2022 10:43

1 1 johan.le.baut
# Vaultwarden (bitwarden)
2 2 johan.le.baut
3 11 johan.le.baut
- [Vaultwarden (bitwarden)](#vaultwarden--bitwarden-)
4
  * [Configuration](#configuration)
5
    + [Accès utilisateurs](#acc-s-utilisateurs)
6
    + [Accès admin](#acc-s-admin)
7
  * [Installation](#installation)
8
    + [installation du service](#installation-du-service)
9
      - [via docker (et docker compose)](#via-docker--et-docker-compose-)
10
      - [Sans docker (actuel):](#sans-docker--actuel--)
11
    + [Reverse proxy Nginx](#reverse-proxy-nginx)
12
    + [Config SMTP](#config-smtp)
13
14
15 5 johan.le.baut
Bitwarden est un gestionnaire de mot de passes.
16 2 johan.le.baut
17 5 johan.le.baut
Vaultwarden est la version Rust de Biwarden: https://github.com/dani-garcia/vaultwarden
18 2 johan.le.baut
19
Il est disponible sur: https://coffre.aquilenet.fr/
20
21
Pour l'admin: https://coffre.aquilenet.fr/admin
22
23
Server: harpocrates
24 11 johan.le.baut
25
26
27 2 johan.le.baut
28
29
## Configuration
30
31
### Accès utilisateurs
32
33 5 johan.le.baut
On autorise l'inscription à tous les utilisateurs ayant un mail en **@aquilenet.fr**
34 2 johan.le.baut
35
Il est possible d'inviter des gens extérieurs via la page d'admin
36
37
### Accès admin
38
39
On accède à la page d'admin via https://coffre.aquilenet.fr/admin
40
41
Un token est demandé, il est visible sur Harpocrates dans /var/www/bitwarden/docker-compose.yaml
42
43
On ajoute en sécurité supplémentaire une Basic Auth dans Nginx, le fichier de conf est: `/var/www/bitwarden/.htpasswd`
44
Il contient les admins de Harpocrates avec le même hash password du /etc/shadow
45
46
## Installation
47
48 1 johan.le.baut
49 6 johan.le.baut
Sur le serveur Harpocrates, on installe le service vaultwarden, avec un reverse proxy nginx.
50 2 johan.le.baut
51 6 johan.le.baut
### installation du service
52 2 johan.le.baut
53 6 johan.le.baut
On peut le lancer via docker ou builder manuellement le service.
54 1 johan.le.baut
55 6 johan.le.baut
En ce moment la méthode manuelle est utilisée.
56 1 johan.le.baut
57 6 johan.le.baut
#### via docker (et docker compose)
58
59
1. Créer le dossier pour la data du service:
60
```
61
mkdir -p /srv/vw-data
62
chown -R bitwarden:bitwarden /srv/vw-data
63
```
64
65
2. On décrit le container docker à lancer via docker compose
66
67
68 2 johan.le.baut
`cat /var/www/bitwarden/docker-compose.yaml`
69 1 johan.le.baut
```yaml
70 2 johan.le.baut
version: '3'
71
72
services:
73
  vaultwarden:
74 6 johan.le.baut
    image: vaultwarden/server:1.25.2
75 2 johan.le.baut
    container_name: vaultwarden
76
    restart: always
77
    user: 1000:1000 # bitwarden user
78 4 johan.le.baut
    ports:
79
      - "127.0.0.1:8080:80"   # port app
80 2 johan.le.baut
      - "127.0.0.1:3012:3012" # port web socket
81 4 johan.le.baut
    environment:
82 2 johan.le.baut
      ADMIN_TOKEN: <Admin token> # token to connect to admin
83
      WEBSOCKET_ENABLED: "true"  # Enable WebSocket notifications.
84
      SIGNUPS_DOMAINS_WHITELIST: aquilenet.fr # on autorise seulement le @aquilenet.fr
85 4 johan.le.baut
      SIGNUPS_VERIFY: true
86 2 johan.le.baut
      INVITATIONS_ALLOWED: false  # Les utilisateurs ne peuvent pas inviter des non inscrits (seulement admin)
87 1 johan.le.baut
    volumes:
88 2 johan.le.baut
      - /srv/vw-data:/data
89 1 johan.le.baut
90
```
91
Il est possible de configurer d'autre choses via la page admin
92
93 6 johan.le.baut
3. Une fois docker installé, pour démarrer en background:
94 1 johan.le.baut
`cd /var/www/bitwarden/ && docker compose up -d`
95 6 johan.le.baut
96
(4. Mise à jour)
97
98
Ouvrir `/var/www/bitwarden/docker-compose.yaml`
99
100
changer `image: vaultwarden/server:<nouvelle version>`
101
102
103
Restart:
104
```
105
cd /var/www/bitwarden/
106
docker compose down # Service sera étteint
107
docker compose up -d --force-recreate
108
```
109
110 10 johan.le.baut
#### Sans docker (actuel):
111 6 johan.le.baut
112
Il faut compiler le service et le lancer dans un systemd:
113
114
Suivre: https://gist.github.com/heinoldenhuis/f8164f73e5bff048e76fb4fff2e824e1
115 2 johan.le.baut
116 7 johan.le.baut
Install actuelle:
117
- systemd file: `/etc/systemd/system/vaultwarden.service`
118
- vaultwarden:
119
  - sources dir: /var/www/bitwarden/vaultwarden
120
  - binaire: /var/www/bitwarden/vaultwarden/target/release/vaultwarden
121
  - data dir: /var/www/bitwarden/vaultwarden/target/release/data
122
  - env file (config): /var/www/bitwarden/vaultwarden/target/release/.env
123 8 johan.le.baut
    - config: 
124 9 johan.le.baut
125 8 johan.le.baut
```
126 7 johan.le.baut
WEB_VAULT_FOLDER=/var/www/bitwarden/bw_web_builds/docker_builds/web-vault
127
WEBSOCKET_ENABLED=true
128
SIGNUPS_VERIFY=true
129
SIGNUPS_DOMAINS_WHITELIST=aquilenet.fr
130
ADMIN_TOKEN=<admin token>
131
INVITATIONS_ALLOWED=false
132
ROCKET_ADDRESS=127.0.0.1
133
```
134
- web-vault
135
  - sources dir: /var/www/bitwarden/bw_web_builds/
136
  - build dir: /var/www/bitwarden/bw_web_builds/docker_builds/web-vault
137
138 2 johan.le.baut
### Reverse proxy Nginx
139
140
Le site est configuré dans `/etc/nginx/sites-available/coffre.aquilenet.fr.conf`
141
142 1 johan.le.baut
Les certificats sont géré par certbot (cf `sudo certbot certificates`)
143 10 johan.le.baut
144
### Config SMTP
145
146
Il faut configurer une connexion SMTP pour que vaultwarden puisse envoyer des mails.