Merci beaucoup MilesTEG1 pour ce tuto
Aujourd'hui, j'utilise le Bitwarden officiel. Déjà en dehors d'héberger en local la base de données, quels sont les différences avec Vaultwarden ?
De plus, avec Vaultwarden, on peut utiliser les extensions de navigateur ?!
Vaultwarden est 100% compatible avec les appli bitwarden navigateur/mobile, ....
Certains fonctions payants de Bitwarden sont débloqué dans Vaultwarden ( partage de coffre, .. ) , mais j'utilise également la version officielle. MilesTEG1 pourra surement nous en dire plus
Pour moi le gros avantage de Vaultwarden (ex-Bitwarden_RS), c'est qu'on gère soit-même le coffre-fort de mot de passe, et que ce dernier est sur notre serveur perso !
Nos données ne transitent et ne sont pas stockées sur un serveur qui ne nous appartient pas.
Cela engendre par contre quelques contraintes dont il faut avoir connaissance :
Il faut avoir un serveur perso (NAS, ou autre), de préférence chez soi
Il faut bien sécuriser son serveur (parefeu etc...)
Il faut s'y connaître un petit peu pour installer Vaultwarden, et donc connaître des rudiments de Docker.
Sinon EVOTk a raison il y a quelques fonctionnalités dipsonibles dans Vaultwarden qui ne le sont que dans la version premium de Bitwarden.
On peut par exemple faire des Orgainsations et Collections et donc partager des mots de passe entre plusieurs comptes (il m'a fallu du temps pour comprendre comment ça fonctionne).
Il est détaillé ici ce qui est inclus ou pas : https://github.com/dani-garcia/vaultwarden/wiki#supported-features
Après comme je n'ai jamais utilisé la version officielle... que ce soit en auto-hébergement (car trop la misère à installer, et beaucoup trop de conteneurs lancés), ou la version hébergée par Bitwarden, je ne saurais dire davantage
Vaultwarden est 100% compatible avec les appli bitwarden navigateur/mobile, ....
Certains fonctions payants de Bitwarden sont débloqué dans Vaultwarden ( partage de coffre, .. ) , mais j'utilise également la version officielle. MilesTEG1 pourra surement nous en dire plus
Vaultwarden est 100% compatible avec les appli bitwarden navigateur/mobile, ....
Certains fonctions payants de Bitwarden sont débloqué dans Vaultwarden ( partage de coffre, .. ) , mais j'utilise également la version officielle. MilesTEG1 pourra surement nous en dire plus
( > TUTO mis à jour - v3.1 < ) - 3.1 : ajout d'une capture d'écran de la configuration du reverse-proxy de DSM + ajout d'une mention concernant ce qui est à remplacer dans le docker-compose.yml
- 3.1 : ajout d'une capture d'écran de la configuration du reverse-proxy de DSM + ajout d'une mention concernant ce qui est à remplacer dans le docker-compose.yml
- 4.0 : changement d'image pour le backup, donc le docker-compose est modifié.
3.1 : ajout d'une capture d'écran de la configuration du reverse-proxy de DSM + ajout d'une mention concernant ce qui est à remplacer dans le docker-compose.yml
4.0 : changement d'image pour le backup, donc le docker-compose est modifié.`
4.1 : actualisation de certaines captures d'écrans
4.2 : correction de quelques coquilles, et mise à jour de la ligne de commande de création des dossiers en ligne de commande.
merci pour ce tuto que j'ai suivi à la lettre et qui m'a permis d'installer mon serveur vaultwarden sur mon NAS DS220+ en utilisant docker.
Je me retrouve cependant bloqué par deux problèmes que je vais vous exposer en espérant que vous pourrez m'aider. 1 : SMTP
je n'ai pas réussi à configurer le SMTP. J'ai pourtant essayé pas mal de configurations, en recopiant celle indiquée dans mon client mail (thunderbird), en changeant les ports, ... Mais rien n'y fait. Je suis toujours en échec d'envoi de mails. J'ai un peu cherché et j'ai vu à droite à gauche que beaucoup avaient tout simplement abandonné.
Est-ce qu'il y a une astuce que je n'aurais pas vu ?
2 : Script Enable_ws.sh
J'ai là aussi suivi le tuto.
J'ai créé un dossier pour y déposer mon script :
Code:
/volume1/docker/vaultwarden/script_web_socket
j'y ai déposé mon script ayant pour nom
Code:
enable_ws.sh
Mon code, issu du fichier mis a disposition sur le premier post, et adapté à ma configuration :
Code:
#!/bin/bash
##==============================================================================================
## ##
## Script vaultwarden__Enable_Websocket.sh ##
## ##
## Source : https://gist.github.com/nstanke/3949ae1c4706854d8f166d1fb3dadc81 ##
## ##
##==============================================================================================
## ##
## Ce script pemet de router ce qui ne peut pas être fait avec le reverse-proxy ##
## de DSM (Synology) pour faire fonctionner les notifications Websocket ##
## Doc. vaultwarden : ##
## Route the /notifications/hub endpoint to the WebSocket server, by default ##
## at port 3012, making sure to pass the Connection and Upgrade headers. ##
## (Note the port can be changed with WEBSOCKET_PORT variable) ##
## https://github.com/dani-garcia/vaultwarden/wiki/Enabling-WebSocket-notifications ##
## ##
##==============================================================================================
## ##
## Principe de Tâche planifier à créer ##
## ##
## Il faut lancer régulièrement le script car toutes modifications faites dans l'interface ##
## graphique du Reverse-Proxy de DSM va modifier le fichier de configuration. Il en va de ##
## même lorsque le NAS redémarre. ##
## ##
##==============================================================================================
## ##
## /!\ Il faut modifier l'adresse IP en ligne 79 et 85 par l'IP du NAS /!\ ##
## ##
##==============================================================================================
## ##
## Paramètres de lancement du script : ##
## bash /volume1/docker/vaultwarden/enable_ws.sh vault.example.com 5555 5556 ##
## ##
## -- vault.example.com = Nom de domaine de vaultwarden (celui du Reverse Proxy de DSM) ##
## -- 5555 = Port exposé ROCKET_PORT par Docker (Identique à celui du Reverse Proxy de DSM) ##
## -- 5556 = Port exposé WEBSOCKET_PORT par Docker ##
## ##
##==============================================================================================
LOC_DIR="/etc/nginx"
part1=0
part2=0
echo -e "\n$(date "+%R:%S - ") Script enable_ws.sh pour activer les Notifications Websockets"
f_affiche_parametre() {
echo " bash /volume1/docker/vaultwarden/script_web_socket/enable_ws.sh vaultwarden.XXXXXxxXXXX.xxx 10211 10212 "
echo " -- vaultwarden.XXXXXxxXXXX.xxx = Nom de domaine de vaultwarden (celui du Reverse Proxy de DSM) "
echo " -- 10212 = Port exposé ROCKET_PORT par Docker (Identique à celui du Reverse Proxy de DSM)"
echo " -- 10211 = Port exposé WEBSOCKET_PORT par Docker"
}
if [ ! $# -eq 3 ]; then
if [ $# -eq 0 ]; then
# Aucun paramètre n'a été fourni. On va afficher la liste de ce qui peut être utilisé.
echo "$(date "+%R:%S - ") Aucun paramètre fourni ! Revoir l'appel du script :"
f_affiche_parametre
else
echo "$(date "+%R:%S - ") Le nombre de paramètres fournis n'est pas correct ! Revoir l'appel du script :"
f_affiche_parametre
fi
echo -e "$(date "+%R:%S - ") ECHEC de lancement du script !!!!!!!!!\n"
exit 1
fi
echo "$(date "+%R:%S - ") Exécution des commandes..."
#############################################################################################################
## Début de la partie de création/modification de fichiers
##
if [ -f $LOC_DIR/ws.locations ]; then
rm /etc/nginx/ws.locations
part1=1
fi
echo """
location /notifications/hub {
proxy_pass http://192.168.1.4:$3;
proxy_set_header Upgrade \$http_upgrade;
proxy_set_header Connection \"upgrade\";
}
location /notifications/hub/negotiate {
proxy_pass http://192.168.1.4:$2;
}
""" >> $LOC_DIR/ws.locations
if ! grep -q "ws.locations" /etc/nginx/app.d/server.ReverseProxy.conf; then
sed -i "/$1;/ a\ include $LOC_DIR/ws.locations;" /etc/nginx/app.d/server.ReverseProxy.conf
if nginx -t 2>/dev/null; then synoservicecfg --reload nginx; else exit 1; fi
part2=1 # Variable pour indiquer que cette partie a été exécutée
fi
##
## Fin de la partie de création/modification de fichiers
#############################################################################################################
if [ $part1 -eq 1 ]; then
echo "$(date "+%R:%S - ") -- Le fichier $LOC_DIR/ws.locations existait déjà, il a été supprimé puis recréé."
else
echo "$(date "+%R:%S - ") -- Le fichier $LOC_DIR/ws.locations n'existait pas, il a été créé."
fi
if [ $part2 -eq 1 ]; then
echo "$(date "+%R:%S - ") -- !!!!!! ---> La modification dans le fichier /etc/nginx/app.d/server.ReverseProxy.conf n'existait pas. Elle a été écrite."
echo "$(date "+%R:%S - ") -- !!!!!! ---> Le fichier /etc/nginx/app.d/server.ReverseProxy.conf a du être réinitialisé après un reboot ou lors d'une modification du reverse-proxy dans DSM."
else
echo "$(date "+%R:%S - ") -- La modification du fichier /etc/nginx/app.d/server.ReverseProxy.conf a déjà été effectuée lors d'une précédente exécution. Aucune modification n'est donc nécessaire."
fi
echo "$(date "+%R:%S - ") Script vaultwarden__Enable_Websocket.sh terminé"
exit
Lorsque je lance la commande suivante pour test (oui il manque les arguments, mais je voulais justement savoir si les erreurs étaient correctement détectées):
/volume1/docker/vaultwarden/script_ws/enable_ws.sh: line 40: $'\r': command not found
/volume1/docker/vaultwarden/script_ws/enable_ws.sh: line 44: $'\r': command not found
21:03:34 - Script vaultwarden__Enable_Websocket.sh pour activer les Notifications Websockets
/volume1/docker/vaultwarden/script_ws/enable_ws.sh: line 46: $'\r': command not found
/volume1/docker/vaultwarden/script_ws/enable_ws.sh: line 47: syntax error near unexpected token `$'{\r''
'volume1/docker/vaultwarden/script_ws/enable_ws.sh: line 47: `f_affiche_parametre() {
Et là, j'avoue que je ne comprends pas les erreurs, sachant qu'il n'y a rien sur la ligne 40 et que je ne trouve pas de \r dans le code du script.
Salut,
Là j'ai l'impression que les retours à la ligne ne sont pas corrects...
Quel éditeur de texte avez-vous utilisé ?
Je vous conseille VScode, ou NotePad++.
3.1 : ajout d'une capture d'écran de la configuration du reverse-proxy de DSM + ajout d'une mention concernant ce qui est à remplacer dans le docker-compose.yml
4.0 : changement d'image pour le backup, donc le docker-compose est modifié.`
4.1 : actualisation de certaines captures d'écrans
4.2 : correction de quelques coquilles, et mise à jour de la ligne de commande de création des dossiers en ligne de commande.
4.3 : Ajout d'un avertissement + explications pour la variable SIGNUPS_ALLOWED=false dans mon tuto
Avertissement concernant la variable SIGNUPS_ALLOWED Dans la partie du docker-compose concernant Vaultwarden, il y a une variable d'environnement particulière qui bloque l'inscription de nouveaux comptes si elle a comme valeur false :
Code:
- SIGNUPS_ALLOWED=false
Ce faisant, il vous sera impossible de créer votre premier compte via l'interface web de Vaultwarden si vous la laissez sur false. Mais... Il y a deux possibilités pour quand même avoir un compte (sinon ce n'est pas très utile comme outils...).
La première est peut-être la plus pratique : il suffit d'aller dans l'interface admin ( https://votre-nom-de-domaine.tld/admin ) en utilisant le ADMIN_TOKEN, et de remplir le champ email dans "Invite User" avec votre email pour vous "auto-inviter". Il faut bien entendu que l'envoi d'email soit fonctionnel, ce qui sera obligatoire pour le 2FA.
La deuxième méthode c'est de mettre la variable SIGNUPS_ALLOWED sur true :
Code:
- SIGNUPS_ALLOWED=true
Et là aussi, deux possibilités :
Soit vous créer de base le conteneur cette variable sur true, et alors au premier lancement vous pourrez créer votre compte. Mais il faudra ensuite soit passer par l'interface admin pour passer le paramètre "Allow new signups" à false en décochant la case à cocher (chez moi c'est par défaut à false à cause de la variable SIGNUPS_ALLOWED).
Soit vous modifiez (après le premier lancement et la création du compte) le docker-compose en repassant la variable SIGNUPS_ALLOWED à false, et vous recréez le conteneur.
Quoique vous fassiez, je vous conseil vivement de désactiver l'inscription via la variable SIGNUPS_ALLOWED, et d'inviter chaque utilisateur avec la console admin, puis de désactiver la console admin en commentant la variable ADMIN_TOKEN (donc en recréant le conteneur). (ce n'est qu'un conseil).
Après quelques mésaventures, j'ai réussi à installer Vaultwarden.
Mais j'ai quelques questions résiduelles :
- Quels sont les impacts si on ne met pas en place la partie "Websockets" ? Est-ce que c'est simplement le fait que les extensions du navigateur ne sont pas prévenues des modifications faites dans le base, et qu'il faut faire des rafraichissements manuels ?
- Comme faut-il faire pour prendre en compte une nouvelle version de Vaultwarden ?
- A la place de la sauvegarde, je voudrais faire des exports du contenu de la base. J'ai vu que c'est possible en ligne de commande. Mais comment exécuter cette ligne de commande dans le container ? et comment automatiser cela ?
J'ai recopié les éléments de la config qui fonctionne sous thunderbird sur mon PC de bureau. Par contre, pas moyen de le faire fonctionner par Vaultwarden. J'ai essayé en changeant le port mais rien n'y fait.