Synology [Tuto] Installer Vaultwarden avec une sauvegarde automatique de la base de données

Statut
N'est pas ouverte pour d'autres réponses.
Je viens de trouver mon erreur. Mon pare-feu était trop restrictif.

Merci beaucoup pour votre aide !
 
Je viens de trouver mon erreur. Mon pare-feu était trop restrictif.

Merci beaucoup pour votre aide !
Oh !
Ça arrive 😅 mais des fois c’est galère à identifier le soucis 😜
En tout cas content que tu ais réussi à résoudre le problème 😇
N’hésite pas à poser tes questions qu’elles soient liées à un souci ou à l’utilisation 😊
 
Bonjour @MilesTEG1, un petit message d'encouragement pour ce tuto très bien fait avec les explications des différentes options et du suivie des mises à jour.
Merci :) ça fait plaisir ^^
Pour le moment, il n'y a rien de particulier à mettre à jour ^^

Pour info, je n'utilise plus le reverse proxy du NAS, mais SWAG, donc si jamais le script ne fonctionnait plus, n'hésitez pas à poster ici ;)
 
Bonjour,
Il y a la version 1.28.0 qui est sorti. J'attends toujours un peu avant d'update, mais je vois qu'il y a un Update websocket.
Certains ont-ils déjà appliqué la maj ?
Des changements à prévoir @MilesTEG1 sur le script ?
Vu que tu n'utilises plus le reverse du Nas, au pire je te dirai ça quand j'updaterai :) (dans 1 ou 2 semaines)
Bonne journée !
 
  • J'aime
Réactions: MilesTEG
Bonjour,
Il y a la version 1.28.0 qui est sorti. J'attends toujours un peu avant d'update, mais je vois qu'il y a un Update websocket.
Certains ont-ils déjà appliqué la maj ?
Des changements à prévoir @MilesTEG1 sur le script ?
Vu que tu n'utilises plus le reverse du Nas, au pire je te dirai ça quand j'updaterai :) (dans 1 ou 2 semaines)
Bonne journée !
la maj s'est faite toute seule (watchtower) cette nuit, et pas de soucis avec le reverse proxy de SWAG.
Je suppose qu'il en sera de même avec celui de DSM avec le script qui modifie le fichier de configuration.
 
Superbe tuto MilesTEG1 qui a dû te prendre du temps. Enfin une documentation complète, cohérente et avec les explications qui vont bien :) Difficile à trouver même sur les sites US que j'ai parcourus avec DuckDuckGo. Un grand merci !

Mis en œuvre sous Docker-compose v2.17.3, Docker v20.10.3 et Vaultwarden v1.28.1.

Je n'ai pas, pour l'instant, abordé les notifications Websocket et les sauvegardes mais cela viendra en son temps. Même sans cela, il y a du pain sur la planche et Paris ne s'est pas fait en un jour ;-)

# À noter :
# La première fois que vous enregistrez un paramètre dans la page d'administration, 'config.json' sera
# généré dans votre 'DATA_FOLDER'. Les valeurs de ce fichier auront priorité sur les valeurs
# 'environnement'.


Pas trace de ce fichier config.json chez moi. Je l'ai pourtant vu dans des versions précédentes de Vaultwarden.

Les fichiers icon_cache, attachments et sends ont été créé par la commande docker-compose up -d.

Je ne comprends pas le principe de synchronisation puisque, sauf erreur de ma part, tous les appareils d'un même compte accèdent au même coffre sur le NAS. Je fais cette remarque parce que, quelque chose m'a peut-être échappé.

J'ai indiqué le PUID 10xx qui est celui d'un administrateur.

On trouve dans ma config d'après le Template de Dani Garcia

- ROCKET_PROFILE-release
- ROCKET_ADDRESS=0.0.0.0
- ROCKET_PORT=80
- ROCKET_WORKERS=8
- SSL_CERT_DIR=etc/ssl/certs


Dans le log, j'ai ces warnings même si tout semble fonctionner :

vaultwarden
date,stream,content
2023-05-05T12:34:23.742739774Z,stdout,[2023-05-05 14:34:23.742][rocket::server::_][WARN] Responding with registered (admin_login) /admin 401 catcher.
2023-05-05T12:34:23.742215723Z,stdout,[2023-05-05 14:34:23.741][vaultwarden::api::admin::_][WARN] Request guard `AdminToken` failed: "Unauthorized".
2023-05-05T12:33:10.933093670Z,stdout,[2023-05-05 14:33:10.932][rocket::server::_][WARN] Remote left: client disconnect before response started.
2023-05-05T12:29:55.173068016Z,stdout,[2023-05-05 14:29:55.172][rocket::server::_][WARN] Responding with registered (admin_login) /admin 401 catcher.
2023-05-05T12:29:55.172660281Z,stdout,[2023-05-05 14:29:55.149][vaultwarden::api::admin::_][WARN] Request guard `AdminToken` failed: "Unauthorized".

Dois-je m'en inquiéter ? Faut-il changer le PUID ?

Encore merci.
 
  • J'aime
Réactions: sypqys
Salut @Mychkine
Merci pour les compliments :) ça me fait bien plaisir 😇
J'essaie toujours d'être assez exhaustif dans mes explications, chose que moi aussi je ne trouve pas sur les autres supports trouvés au fil des recherches internet.
# À noter :
# La première fois que vous enregistrez un paramètre dans la page d'administration, 'config.json' sera
# généré dans votre 'DATA_FOLDER'. Les valeurs de ce fichier auront priorité sur les valeurs
# 'environnement'.


Pas trace de ce fichier config.json chez moi. Je l'ai pourtant vu dans des versions précédentes de Vaultwarden.
Effectivement, je n'ai plus ce fichier moi aussi...
Il a dû y avoir un changement à un moment donné, mais quand... 😅
Faudra que je supprime cette partie.
Toujours est-il que les modifications faites dans la page d'administration doivent toujours avec le précédent sur les variables environment de la création du conteneur... Normalement.


Les fichiers icon_cache, attachments et sends ont été créé par la commande docker-compose up -d.
Les dossiers tu veux dire 😁
Je ne comprends pas le principe de synchronisation puisque, sauf erreur de ma part, tous les appareils d'un même compte accèdent au même coffre sur le NAS. Je fais cette remarque parce que, quelque chose m'a peut-être échappé.
Tu fais références à la partie sur le websocket, c'est bien ça ?
Si c'est le cas, cette partie est nécessaire pour une synchronisation automatique à l'ouverture du coffre, mais pas sur mobile Apple (iOS) où là c'est un autre système qui n'est pas présent dans Vaultwarden...
Mais pour les extensions de navigateur, les applications desktop, lorsque tu ouvres ton coffre ou que tu le déverrouilles, sans les "notifications websocket", le coffre ne sera pas synchronisé avec le serveur. Il faudra le faire manuellement via l'entrée de menu adéquate.
Mais une fois les websockets configuré, plus de souci.

J'ai indiqué le PUID 10xx qui est celui d'un administrateur.
C'est une manière de faire.
Perso, je ne mets jamais un PUID/PGID d'un utilisateur administrateur. Si jamais le conteneur a une faille de sécurité, il pourrait accéder aux ressources de l'hôte.

- ROCKET_PROFILE-release
- ROCKET_ADDRESS=0.0.0.0
- ROCKET_PORT=80
- ROCKET_WORKERS=8
- SSL_CERT_DIR=etc/ssl/certs


Dans le log, j'ai ces warnings même si tout semble fonctionner :

vaultwarden
date,stream,content
2023-05-05T12:34:23.742739774Z,stdout,[2023-05-05 14:34:23.742][rocket::server::_][WARN] Responding with registered (admin_login) /admin 401 catcher.
2023-05-05T12:34:23.742215723Z,stdout,[2023-05-05 14:34:23.741][vaultwarden::api::admin::_][WARN] Request guard `AdminToken` failed: "Unauthorized".
2023-05-05T12:33:10.933093670Z,stdout,[2023-05-05 14:33:10.932][rocket::server::_][WARN] Remote left: client disconnect before response started.
2023-05-05T12:29:55.173068016Z,stdout,[2023-05-05 14:29:55.172][rocket::server::_][WARN] Responding with registered (admin_login) /admin 401 catcher.
2023-05-05T12:29:55.172660281Z,stdout,[2023-05-05 14:29:55.149][vaultwarden::api::admin::_][WARN] Request guard `AdminToken` failed: "Unauthorized".

Dois-je m'en inquiéter ? Faut-il changer le PUID ?
Changer le PUID : pour moi oui il le faudrait. Mais ça ne va pas résoudre les warnings je pense.
Pour les env-vars ROCKET_* : je ne sais plus à quoi ça sert, mais de base il ne faut pas y toucher. Perso je n'ai pas modifié, et tout fonctionne bien.
En regardant mes logs, j'ai moi aussi des erreurs et des warnings, sans que ça n'ait d'incidence apparente, mais pas les mêmes que toi :
Code:
[2023-05-03 21:23:17.157][vaultwarden::api::icons][WARN] Unable to download icon: Empty response or unable find a valid icon. pilou-rtsrm.vpnplus.to
[2023-05-04 12:10:25.490][rocket::server::_][ERROR] No matching routes for OPTIONS /app/main.c107f7b9354b6317446a.css.
[2023-05-04 12:10:25.490][rocket::server::_][ERROR] No matching routes for OPTIONS /theme_head.5f24ba8d7aa944e6f52b.js.
[2023-05-04 12:10:25.495][rocket::server::_][WARN] Responding with registered (not_found) 404 catcher.
[2023-05-04 12:10:25.495][rocket::server::_][WARN] Responding with registered (not_found) 404 catcher.
[2023-05-04 12:10:25.504][rocket::server::_][ERROR] No matching routes for OPTIONS /app/vendor.776201439bfdefee32dc.js.
[2023-05-04 12:10:25.504][rocket::server::_][WARN] Responding with registered (not_found) 404 catcher.
[2023-05-04 12:10:25.504][rocket::server::_][ERROR] No matching routes for OPTIONS /app/main.3a27378a743dd4ad9f70.js.
[2023-05-04 12:10:25.504][rocket::server::_][ERROR] No matching routes for OPTIONS /app/polyfills.428c25638840333a09ee.js.
[2023-05-04 12:10:25.504][rocket::server::_][WARN] Responding with registered (not_found) 404 catcher.
[2023-05-04 12:10:25.504][rocket::server::_][WARN] Responding with registered (not_found) 404 catcher.
[2023-05-04 12:10:25.801][rocket::server::_][ERROR] No matching routes for OPTIONS /images/logo-dark@2x.png.
[2023-05-04 12:10:25.801][rocket::server::_][WARN] Responding with registered (not_found) 404 catcher.
[2023-05-04 12:10:26.120][rocket::server::_][ERROR] No matching routes for OPTIONS /locales/fr/messages.json?cache=r3isl.
[2023-05-04 12:10:26.121][rocket::server::_][WARN] Responding with registered (not_found) 404 catcher.
[2023-05-04 12:10:26.173][rocket::server::_][ERROR] No matching routes for OPTIONS /locales/en/messages.json?cache=r3isl.
[2023-05-04 12:10:26.173][rocket::server::_][WARN] Responding with registered (not_found) 404 catcher.
[2023-05-04 12:21:08.002][rocket::server::_][ERROR] No matching routes for OPTIONS /app/main.c107f7b9354b6317446a.css.
[2023-05-04 12:21:08.002][rocket::server::_][WARN] Responding with registered (not_found) 404 catcher.
[2023-05-04 12:21:08.002][rocket::server::_][ERROR] No matching routes for OPTIONS /app/vendor.776201439bfdefee32dc.js.
[2023-05-04 12:21:08.002][rocket::server::_][WARN] Responding with registered (not_found) 404 catcher.
[2023-05-04 12:21:08.004][rocket::server::_][ERROR] No matching routes for OPTIONS /app/polyfills.428c25638840333a09ee.js.
[2023-05-04 12:21:08.004][rocket::server::_][WARN] Responding with registered (not_found) 404 catcher.
[2023-05-04 12:21:08.004][rocket::server::_][ERROR] No matching routes for OPTIONS /app/main.3a27378a743dd4ad9f70.js.
[2023-05-04 12:21:08.004][rocket::server::_][WARN] Responding with registered (not_found) 404 catcher.
[2023-05-04 12:21:08.004][rocket::server::_][ERROR] No matching routes for OPTIONS /theme_head.5f24ba8d7aa944e6f52b.js.
[2023-05-04 12:21:08.004][rocket::server::_][WARN] Responding with registered (not_found) 404 catcher.
[2023-05-04 12:21:08.072][rocket::server::_][ERROR] No matching routes for OPTIONS /images/logo-dark@2x.png.
[2023-05-04 12:21:08.072][rocket::server::_][WARN] Responding with registered (not_found) 404 catcher.
[2023-05-04 12:21:08.391][rocket::server::_][ERROR] No matching routes for OPTIONS /locales/fr/messages.json?cache=r3isl.
[2023-05-04 12:21:08.391][rocket::server::_][WARN] Responding with registered (not_found) 404 catcher.
[2023-05-04 12:21:08.468][rocket::server::_][ERROR] No matching routes for OPTIONS /locales/en/messages.json?cache=r3isl.
[2023-05-04 12:21:08.469][rocket::server::_][WARN] Responding with registered (not_found) 404 catcher.
Faut que j'investigue dessus ;)
 
Salut @Mychkine
Merci pour les compliments :) ça me fait bien plaisir 😇
J'essaie toujours d'être assez exhaustif dans mes explications, chose que moi aussi je ne trouve pas sur les autres supports trouvés au fil des recherches internet.

Effectivement, je n'ai plus ce fichier moi aussi...
Il a dû y avoir un changement à un moment donné, mais quand... 😅
Faudra que je supprime cette partie.
Toujours est-il que les modifications faites dans la page d'administration doivent toujours avec le précédent sur les variables environment de la création du conteneur... Normalement.



Les dossiers tu veux dire 😁

Tu fais références à la partie sur le websocket, c'est bien ça ?
Si c'est le cas, cette partie est nécessaire pour une synchronisation automatique à l'ouverture du coffre, mais pas sur mobile Apple (iOS) où là c'est un autre système qui n'est pas présent dans Vaultwarden...
Mais pour les extensions de navigateur, les applications desktop, lorsque tu ouvres ton coffre ou que tu le déverrouilles, sans les "notifications websocket", le coffre ne sera pas synchronisé avec le serveur. Il faudra le faire manuellement via l'entrée de menu adéquate.
Mais une fois les websockets configuré, plus de souci.


C'est une manière de faire.
Perso, je ne mets jamais un PUID/PGID d'un utilisateur administrateur. Si jamais le conteneur a une faille de sécurité, il pourrait accéder aux ressources de l'hôte.


Changer le PUID : pour moi oui il le faudrait. Mais ça ne va pas résoudre les warnings je pense.
Pour les env-vars ROCKET_* : je ne sais plus à quoi ça sert, mais de base il ne faut pas y toucher. Perso je n'ai pas modifié, et tout fonctionne bien.
En regardant mes logs, j'ai moi aussi des erreurs et des warnings, sans que ça n'ait d'incidence apparente, mais pas les mêmes que toi :
Code:
[2023-05-03 21:23:17.157][vaultwarden::api::icons][WARN] Unable to download icon: Empty response or unable find a valid icon. pilou-rtsrm.vpnplus.to
[2023-05-04 12:10:25.490][rocket::server::_][ERROR] No matching routes for OPTIONS /app/main.c107f7b9354b6317446a.css.
[2023-05-04 12:10:25.490][rocket::server::_][ERROR] No matching routes for OPTIONS /theme_head.5f24ba8d7aa944e6f52b.js.
[2023-05-04 12:10:25.495][rocket::server::_][WARN] Responding with registered (not_found) 404 catcher.
[2023-05-04 12:10:25.495][rocket::server::_][WARN] Responding with registered (not_found) 404 catcher.
[2023-05-04 12:10:25.504][rocket::server::_][ERROR] No matching routes for OPTIONS /app/vendor.776201439bfdefee32dc.js.
[2023-05-04 12:10:25.504][rocket::server::_][WARN] Responding with registered (not_found) 404 catcher.
[2023-05-04 12:10:25.504][rocket::server::_][ERROR] No matching routes for OPTIONS /app/main.3a27378a743dd4ad9f70.js.
[2023-05-04 12:10:25.504][rocket::server::_][ERROR] No matching routes for OPTIONS /app/polyfills.428c25638840333a09ee.js.
[2023-05-04 12:10:25.504][rocket::server::_][WARN] Responding with registered (not_found) 404 catcher.
[2023-05-04 12:10:25.504][rocket::server::_][WARN] Responding with registered (not_found) 404 catcher.
[2023-05-04 12:10:25.801][rocket::server::_][ERROR] No matching routes for OPTIONS /images/logo-dark@2x.png.
[2023-05-04 12:10:25.801][rocket::server::_][WARN] Responding with registered (not_found) 404 catcher.
[2023-05-04 12:10:26.120][rocket::server::_][ERROR] No matching routes for OPTIONS /locales/fr/messages.json?cache=r3isl.
[2023-05-04 12:10:26.121][rocket::server::_][WARN] Responding with registered (not_found) 404 catcher.
[2023-05-04 12:10:26.173][rocket::server::_][ERROR] No matching routes for OPTIONS /locales/en/messages.json?cache=r3isl.
[2023-05-04 12:10:26.173][rocket::server::_][WARN] Responding with registered (not_found) 404 catcher.
[2023-05-04 12:21:08.002][rocket::server::_][ERROR] No matching routes for OPTIONS /app/main.c107f7b9354b6317446a.css.
[2023-05-04 12:21:08.002][rocket::server::_][WARN] Responding with registered (not_found) 404 catcher.
[2023-05-04 12:21:08.002][rocket::server::_][ERROR] No matching routes for OPTIONS /app/vendor.776201439bfdefee32dc.js.
[2023-05-04 12:21:08.002][rocket::server::_][WARN] Responding with registered (not_found) 404 catcher.
[2023-05-04 12:21:08.004][rocket::server::_][ERROR] No matching routes for OPTIONS /app/polyfills.428c25638840333a09ee.js.
[2023-05-04 12:21:08.004][rocket::server::_][WARN] Responding with registered (not_found) 404 catcher.
[2023-05-04 12:21:08.004][rocket::server::_][ERROR] No matching routes for OPTIONS /app/main.3a27378a743dd4ad9f70.js.
[2023-05-04 12:21:08.004][rocket::server::_][WARN] Responding with registered (not_found) 404 catcher.
[2023-05-04 12:21:08.004][rocket::server::_][ERROR] No matching routes for OPTIONS /theme_head.5f24ba8d7aa944e6f52b.js.
[2023-05-04 12:21:08.004][rocket::server::_][WARN] Responding with registered (not_found) 404 catcher.
[2023-05-04 12:21:08.072][rocket::server::_][ERROR] No matching routes for OPTIONS /images/logo-dark@2x.png.
[2023-05-04 12:21:08.072][rocket::server::_][WARN] Responding with registered (not_found) 404 catcher.
[2023-05-04 12:21:08.391][rocket::server::_][ERROR] No matching routes for OPTIONS /locales/fr/messages.json?cache=r3isl.
[2023-05-04 12:21:08.391][rocket::server::_][WARN] Responding with registered (not_found) 404 catcher.
[2023-05-04 12:21:08.468][rocket::server::_][ERROR] No matching routes for OPTIONS /locales/en/messages.json?cache=r3isl.
[2023-05-04 12:21:08.469][rocket::server::_][WARN] Responding with registered (not_found) 404 catcher.
Faut que j'investigue dessus ;)
Bonjour @MilesTEG1

Je vais donc changer le PUID et mettre celui d'un utilisateur standard.

J'ai trouvé quelque chose d'intéressant sur le Site du Dr Frankeinstain, on ne rit pas :devilish:
Rien de bien intéressant par rapport à ton magnifique tuto mais il y est question de la mise en oeuvre d'Argon2. J'ai suivi ce qu'il dit et j'ai pu gérer le token d'administration avec Argon2. Ça marche très bien.
 
  • J'aime
Réactions: MilesTEG
J'ai trouvé quelque chose d'intéressant sur le Site du Dr Frankeinstain, on ne rit pas :devilish:
Rien de bien intéressant par rapport à ton magnifique tuto mais il y est question de la mise en oeuvre d'Argon2. J'ai suivi ce qu'il dit et j'ai pu gérer le token d'administration avec Argon2. Ça marche très bien.
Il y a probablement de bonnes idées sur ses articles ^^
Merci pour le lien et pour cette précision sur argon2.

Faudra que je parcoure son site à l'occasion.
En revanche pour le hash argon2 de l'admin token, je n'avais pas fait attention à son introduction...
Va falloir que je creuse ça aussi ;)

TODO :

 
Dernière édition:
@Mychkine Pour les variables ROCKET_, je te conseille de tenter de les enlever, et de laisser les valeurs par défaut de ces paramètres. Elles ne sont pas vraiment nécessaires, à moins de vouloir changer le port par défaut d'écoute de vaultwarden... ce qui est à mon avis plus sources de problèmes qu'autre chose...
 
@MilesTEG1, je vais donc suivre tes conseils et virer toutes les variables qui contiennent ROCKET.
Je note que Googoliser sur le net n'est pas forcément fiable d'où l'intérêt de ton tuto.


Edition
En effet, après modification, je retrouve les mêmes valeurs pour les variables ROCKET_XXX que celles que j'avais codé en dur. Google n'est pas mon ami :mad:
 
Dernière édition:
@MilesTEG1,
La config étant sauvegardée avec Hyper Backup, peut-on utiliser cette sauvegarde en cas de problème ? Est-il impératif dans tous les cas de mettre en place la sauvegarde automatique décrite dans ton tuto ?

Merci par avance.
 
@Mychkine La sauvegarde via le conteneur dédié est une sécurité supplémentaire.
Et même préférable que de restaurer simplement la sauvegarde Hyperbackup, car cette dernière n'arrête pas le conteneur Vaultwarden quand elle se fait, or VW utilise une base de données... et faire une copie de la BDD pendant qu'elle est utilisée, ce n'est jamais bon, tu risques une corruption de la base de données...
Le conteneur de backup lui va faire ce qu'il faut pour faire une copie sécurisée et sans risque de corruption.

Cela dit, faire les deux permettent d'avoir des sauvegardes des données et en plus de la bdd :)
Donc fait les deux ^^
 
Statut
N'est pas ouverte pour d'autres réponses.