Vaultwarden(bitwarden) » Historique » Version 13
johan.le.baut, 13/10/2022 10:49
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 | 13 | johan.le.baut | 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). |
108 | |||
109 | 7 | johan.le.baut | Install actuelle: |
110 | - systemd file: `/etc/systemd/system/vaultwarden.service` |
||
111 | - vaultwarden: |
||
112 | - sources dir: /var/www/bitwarden/vaultwarden |
||
113 | - binaire: /var/www/bitwarden/vaultwarden/target/release/vaultwarden |
||
114 | - data dir: /var/www/bitwarden/vaultwarden/target/release/data |
||
115 | - env file (config): /var/www/bitwarden/vaultwarden/target/release/.env |
||
116 | 8 | johan.le.baut | - config: |
117 | 9 | johan.le.baut | |
118 | 8 | johan.le.baut | ``` |
119 | 7 | johan.le.baut | WEB_VAULT_FOLDER=/var/www/bitwarden/bw_web_builds/docker_builds/web-vault |
120 | WEBSOCKET_ENABLED=true |
||
121 | SIGNUPS_VERIFY=true |
||
122 | SIGNUPS_DOMAINS_WHITELIST=aquilenet.fr |
||
123 | ADMIN_TOKEN=<admin token> |
||
124 | INVITATIONS_ALLOWED=false |
||
125 | ROCKET_ADDRESS=127.0.0.1 |
||
126 | ``` |
||
127 | - web-vault |
||
128 | - sources dir: /var/www/bitwarden/bw_web_builds/ |
||
129 | - build dir: /var/www/bitwarden/bw_web_builds/docker_builds/web-vault |
||
130 | |||
131 | 2 | johan.le.baut | ### Reverse proxy Nginx |
132 | |||
133 | Le site est configuré dans `/etc/nginx/sites-available/coffre.aquilenet.fr.conf` |
||
134 | |||
135 | 1 | johan.le.baut | Les certificats sont géré par certbot (cf `sudo certbot certificates`) |
136 | 10 | johan.le.baut | |
137 | ### Config SMTP |
||
138 | |||
139 | Il faut configurer une connexion SMTP pour que vaultwarden puisse envoyer des mails. |