7bfd202a33
Je précise aussi qu'il est conseillé d'utiliser la v2.4 des fichiers docker-compose pour garde un maximum de compatibilité. La v3.x est seulement dans le cas où certaines options ne sont pas supportées par la norme 2.4.
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
|
|
|