Projet

Général

Profil

Vaultwarden(bitwarden) » Historique » Version 12

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

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