143 lines
9.4 KiB
YAML
143 lines
9.4 KiB
YAML
|
##==============================================================================================
|
||
|
## ##
|
||
|
## Fichier docker-compose.yml pour Vaultwarden seulement ##
|
||
|
## Révision du fichier : v4.0 ##
|
||
|
## ##
|
||
|
## Voir tuto : https://www.forum-nas.fr/viewtopic.php?f=56&t=15341&p=99007#p99007 ##
|
||
|
## ##
|
||
|
##==============================================================================================
|
||
|
## ##
|
||
|
## Attention, avec ce fichier, il faut avoir créer le réseau "vaultwarden_network" avant de ##
|
||
|
## créer les conteneurs. ##
|
||
|
## ##
|
||
|
## La mise en place de fail2ban se fera avec un docker-compose dédié. ##
|
||
|
## ##
|
||
|
##==============================================================================================
|
||
|
## ##
|
||
|
## NOTE IMPORTANTE ##
|
||
|
## ----------------- ##
|
||
|
## ##
|
||
|
## Lors de l'importation d'un fichier contenant beaucoup d'entrées, j'ai eu une erreur ##
|
||
|
## 405 Not Allowed - Nginx ##
|
||
|
## Après quelques recherches, et un certains nombre de minutes, il s'est avéré que les ##
|
||
|
## expiration du délai ... (les timeout) dans le reverse proxy par défaut de 60s étaient ##
|
||
|
## trop faible. ##
|
||
|
## En passant les 3 valeurs à 300s (5min), ça a réglé mon problème. ##
|
||
|
## (Pensez à relancer le script vaultwarden__Enable_Websocket.sh après ces modifications) ##
|
||
|
## ##
|
||
|
##==============================================================================================
|
||
|
## ##
|
||
|
## Ajout des Notifications Websocket ##
|
||
|
## ##
|
||
|
## Pour qu'elles'fonctionnent, il faut configurer le reverse-proxy correctement. ##
|
||
|
## Pour celui de DSM, il n'est malheureusement pas possible de configurer les ##
|
||
|
## redirections /notifications/hub vers le serveur WebSocket ni celles vers le port normal ##
|
||
|
## /notifications/hub/negotiate ##
|
||
|
## Voir cet article pour tout ce qui n'est pas possible via l'interface de DSM : ##
|
||
|
## https://github.com/dani-garcia/vaultwarden/wiki/Enabling-WebSocket-notifications ##
|
||
|
## ##
|
||
|
## Dès lors, il faut ruser et passer par l'exécution d'un petit script qui va créer un ##
|
||
|
## fchier ws.locations contenant les modifications précédentes, et qui va écrire une ##
|
||
|
## ligne dans le fichier /etc/nginx/app.d/server.ReverseProxy.conf pour inclure le ##
|
||
|
## fichier ws.locations au niveau de la section concernant le nom de domaine pour ##
|
||
|
## vaultwarden. ##
|
||
|
## Comme cela, il n'est pas nécessaire de passer par le changement de reverse-proxy, assez ##
|
||
|
## complexe à mettre en oeuvre... ##
|
||
|
## ##
|
||
|
## Le script est : vaultwarden__Enable_Websocket.sh ##
|
||
|
## ##
|
||
|
## Il faudra la lancer régulièrement et à chaque redémarrage du NAS, via deux tâches ##
|
||
|
## plannifiées dédiées, en donnant 3 paramètres au fichier : ##
|
||
|
## - le nom de domaine de vaultwarden ##
|
||
|
## - le port HTTP exposé (donc pas l'interne du conteneur) pour l'interface graphique ##
|
||
|
## - le port websocket exposé (donc pas l'interne du conteneur) ##
|
||
|
## Voir les commentaires de ce fichier vaultwarden__Enable_Websocket.sh pour plus ##
|
||
|
## d'explications. ##
|
||
|
## ##
|
||
|
##==============================================================================================
|
||
|
|
||
|
---
|
||
|
version: "2.4"
|
||
|
|
||
|
services:
|
||
|
vaultwarden:
|
||
|
image: vaultwarden/server:latest # https://github.com/dani-garcia/vaultwarden
|
||
|
# https://github.com/dani-garcia/vaultwarden/wiki
|
||
|
container_name: vaultwarden
|
||
|
networks:
|
||
|
- vaultwarden_network
|
||
|
environment:
|
||
|
# Utiliser la commande (en SSH) : id NOM_UTILISATEUR
|
||
|
- PUID=1000
|
||
|
- PGID=100
|
||
|
- TZ=Europe/Paris
|
||
|
|
||
|
# Pour l'envoi d'emails
|
||
|
- SMTP_HOST=XXxxXX
|
||
|
- SMTP_FROM=XXxxXX
|
||
|
- SMTP_FROM_NAME=BlaBla
|
||
|
- SMTP_PORT=XXxxXX
|
||
|
- SMTP_SSL=true
|
||
|
- SMTP_USERNAME=XXxxXX
|
||
|
- SMTP_PASSWORD=XXxxXX
|
||
|
|
||
|
- INVITATION_ORG_NAME=Vaultwarden [Votre Nom, pseudo...] # Permet de spécifier un nom d'application pour les invitations d'organisation
|
||
|
|
||
|
# Nécessaire pour activer le 2FA pour la connexion à notre serveur Vaultwarden
|
||
|
# Il est possible de spécifier un port de connexion dans l'URL. Le https:// est obligatoire.
|
||
|
# Pour cette option, il est donc OBLIGATOIRE d'avoir fait le nécessaire pour avoir du HTTPS (certificats, reverse-proxy, ...)
|
||
|
- DOMAIN=XXxxXX
|
||
|
|
||
|
# Pour enregistrer les log avec un niveau particulier
|
||
|
- LOG_FILE=/data/vaultwarden.log
|
||
|
- LOG_LEVEL=warn
|
||
|
- EXTENDED_LOGGING=true
|
||
|
|
||
|
# je n'aime pas les indices pour les mots de passe...
|
||
|
- SHOW_PASSWORD_HINT=false
|
||
|
|
||
|
# Pour activer la console d'administation, accessible via : https://mon.domaine.tld/admin/
|
||
|
# Voir détails ici : https://github.com/dani-garcia/vaultwarden/wiki/Enabling-admin-page
|
||
|
# /!\
|
||
|
# /!\ N'importe qui pourra accéder à la page de connexion, alors blinder le token d'amdin ci-dessous (64 caractères pour moi) !
|
||
|
# /!\ Il est de plus TRÈS important d'avoir ACTIVÉ le HTTPS avant l'activation de cette option.
|
||
|
# /!\
|
||
|
# Je conseille de ne l'activer qu'en cas de nécessité, et de la désactiver après.
|
||
|
# Pour désactiver, il suffit de commenter la ligne ci-dessous.
|
||
|
- ADMIN_TOKEN=XXxxXX
|
||
|
# À 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'.
|
||
|
|
||
|
- SIGNUPS_ALLOWED=false # Fait en sorte que les inscriptions soient bloquées, seul l'admin pourra inviter
|
||
|
# des utilisateurs avec un envoi d'email depuis la console d'administation
|
||
|
|
||
|
- WEBSOCKET_ENABLED=true # Active les WebSocket notifications (Nécessite la configuration du reverse-proxy)
|
||
|
# Durant le nombre importants d'essais, j'en suis venu à laisser le port par défaut
|
||
|
# pour le WEBSOCKET_PORT. Il est possible que ça fonctionne avec un port différent.
|
||
|
# Il faudra alors décommenter la ligne suivante, et changer le port exposé plus bas.
|
||
|
#- WEBSOCKET_PORT=3012 # Par défaut = 3012
|
||
|
|
||
|
# Pour activer la récupération des icones des IP LAN, il faut mettre sur false la variable ICON_BLACKLIST_NON_GLOBAL_IPS
|
||
|
- ICON_BLACKLIST_NON_GLOBAL_IPS=false # Par défaut = true
|
||
|
|
||
|
# On défini ici quelques chemins de dossiers qu'il faudra créer (pas sur que le conteneur les crées lui-même...)
|
||
|
- ICON_CACHE_FOLDER=data/icon_cache
|
||
|
- ATTACHMENTS_FOLDER=data/attachments
|
||
|
- SENDS_FOLDER=data/sends
|
||
|
|
||
|
labels:
|
||
|
- "com.centurylinklabs.watchtower.enable=true"
|
||
|
|
||
|
volumes:
|
||
|
- "/volume1/docker/vaultwarden/vaultwarden-data/:/data/"
|
||
|
ports:
|
||
|
- XXxxXX:3012 # Choisir un port libre pour le websocket
|
||
|
- XXxxXX:80 # Choisir un port libre pour l'interface WEB
|
||
|
restart: unless-stopped
|
||
|
|
||
|
networks:
|
||
|
vaultwarden_network:
|
||
|
external:
|
||
|
name: vaultwarden_network
|
||
|
|