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