Merge pull request 'Miles-Vaultwarden' (#75) from Miles-Vaultwarden into master

Reviewed-on: #75
This commit is contained in:
MilesTEG 2021-05-15 06:48:20 +02:00
commit 74f21e2d03
3 changed files with 335 additions and 216 deletions

View File

@ -1,5 +1,9 @@
[size=200][color=#800000][b]( [u] > TUTO mis à jour - v3.0 < [/u] )[/b][/color][/size]
[size=200][color=#800000][b]( [u] > TUTO mis à jour - v4.0 < [/u] )[/b][/color][/size]
[color=#800000][list][*] 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.
[/list][/color]
Bonjour à toutes et à tous,
@ -9,27 +13,32 @@ Bonjour à toutes et à tous,
0. Fichiers joints
1. Note à lire : Mise à jour v3.0 (changement de nom de l'image)
2. Préambule & Prérequis
3- Mise en place et création des conteneurs [color=#800000][b]( [u] > Mise à jour < [/u] )[/b][/color]
3- Mise en place et création des conteneurs [color=#800000][b]( [u] > Mise à jour v4.0 < [/u] )[/b][/color]
3.1- Petites explications sur ce qui suivra
3.2- Création du docker-compose.yml [color=#800000][b]( [u] > Mise à jour < [/u] )[/b][/color]
3.3- Création des dossiers et du réseau
3.4- Création des conteneurs (2 méthodes)
3.2- Création du docker-compose.yml [color=#800000][b]( [u] > Mise à jour v4.0 < [/u] )[/b][/color]
3.3- Configuration de rclone pour le backup [color=#800000][b]( [u] > Mise à jour v4.0 < [/u] )[/b][/color]
3.4- Création des dossiers et du réseau
3.5- Création des conteneurs (2 méthodes)
4- 1er lancement et sécurisation 2FA
5- Ajout d'un script pour les notifications Websocket [color=#800000][b]( [u] > Ajout < [/u] )[/b][/color]
5.1- Explications : Pourquoi ? Comment ? [color=#800000][b]( [u] > Ajout < [/u] )[/b][/color]
5.2- Comment lancer le script ? [color=#800000][b]( [u] > Ajout < [/u] )[/b][/color]
5.3- Enfin le script lui même ! [color=#800000][b]( [u] > Ajout < [/u] )[/b][/color]
5- Ajout d'un script pour les notifications Websocket [color=#800000][b]( [u] > Ajout v3.0 < [/u] )[/b][/color]
5.1- Explications : Pourquoi ? Comment ? [color=#800000][b]( [u] > Ajout v3.0 < [/u] )[/b][/color]
5.2- Comment lancer le script ? [color=#800000][b]( [u] > Ajout v3.0 < [/u] )[/b][/color]
5.3- Enfin le script lui même ! [color=#800000][b]( [u] > Ajout v3.0 < [/u] )[/b][/color]
...
[/color]
[color=#BF40BF][b][size=200]0. Fichiers joints[/size][/b][/color]
[list]
[*] docker-compose-v1.0.yml (plus maintenu, mais laissé pour la postérité) : [attachment=3]docker-compose-v1.0.yml.7z[/attachment]
[*] docker-compose-v2.0.yml (plus maintenu, mais laissé pour la postérité) : [attachment=2]docker-compose-v2.0.yml.7z[/attachment]
[*] docker-compose-v3.0.yml (La dernière version) : [attachment=1]docker-compose-v3.0.yml.7z[/attachment]
[*] Le script pour les notifications Websockets : [attachment=0]vaultwarden__Enable_Websocket.7z[/attachment]
[*] docker-compose-v1.0.yml (plus maintenu, mais laissé pour la postérité) : [attachment=5]docker-compose-v1.0.yml.7z[/attachment]
[*] docker-compose-v2.0.yml (plus maintenu, mais laissé pour la postérité) : [attachment=4]docker-compose-v2.0.yml.7z[/attachment]
[*] docker-compose-v3.0.yml (plus maintenu, mais laissé pour la postérité) : [attachment=3]docker-compose-v3.0.yml.7z[/attachment]
[*] docker-compose-v4.0.yml (La dernière version) : [attachment=1]docker-compose-v4.0.yml.7z[/attachment]
[*] Le fichier rclone.conf : [attachment=0]config-rclone.conf.7z[/attachment]
[*] Le script pour les notifications Websockets : [attachment=2]vaultwarden__Enable_Websocket.7z[/attachment]
[/list]
[color=#BF40BF][b][size=200]1. Note à lire : Mise à jour v3.0 (changement de nom de l'image)[/size][/b][/color]
L'auteur de Bitwarden_RS, dani-garcia, a renommé son image en Vaultwarden.
[quote][img]https://gitlab.com/BZHDeveloper/HFR/raw/master/emojis-micro/1f4e2.png[/img] Note: This project was known as Bitwarden_RS and has been renamed to separate itself from the official Bitwarden server in the hopes of avoiding confusion and trademark/branding issues. Please see [url=https://github.com/dani-garcia/vaultwarden/discussions/1642]#1642[/url] for more explanation.[/quote]
@ -76,8 +85,8 @@ On va tout d'abord commencer par créer un fichier [i]docker-compose.yml[/i] qui
J'opte pour combiner la création des deux conteneurs ([b]vaultwarden[/b] et [b]vaultwarden Backup[/b]) en un seul fichier [i]docker-compose.yml[/i]. J'ai également choisi de placer ces deux conteneurs dans un même réseau (network) que je nomme [i]vaultwarden_network[/i].
Ensuite il faudra créer ce réseau et les dossiers utilisés avant de créer les conteneurs.
Pour les dossiers, je pars sur cette organisation : (sur le volume1)
[img]https://i.imgur.com/h0BsuDT.png[/img]
[url=https://i.imgur.com/xs3kngV.png][img]https://i.imgur.com/xs3kngV.png[/img][/url]
(Note : j'ai conservé pour quelques semaines encore, l'ancien dossier de backup : vaultwarden_backup, il n'est pas nécessaire pour vous de le créer...)
[b][color=#800000]Note : Tout ce qui sera XXxxXX sera à remplacer par vos valeurs. J'indiquerais comment les obtenir si ce n'est pas évident.[/color][/b]
@ -90,11 +99,15 @@ Ce fichier est composé de trois parties : une partie dédiée à vaultwarden et
[u][b]Explications sur la partie configuration ([b][color=#4040FF]partie 1[/color][/b]) de vaultwarden (1ère partie du docker-compose.yml) :[/b][/u]
Ce qui suit met en place la version de docker-compose à utiliser : pour plus de compatibilité (et par simplicité car je ne maitrise pas la v3...) on part sur une v2.
Je place dans l'extrait ci-dessous des commentaires supplémentaires (non présents dans le fichier joint) pour expliquer les choix faits.
[color=#13A8BD]Il y a dans l'extrait ci-dessous des commentaires qui permettent de comprendre ce qui est fait.
Il faudra remplacer les [b]XXxxXX[/b] par vos valeurs à vous.
[/color]
[code]##==============================================================================================
## ##
## Fichier docker-compose.yml pour vaultwarden avec Bitwarden-Backup ##
## Révision du fichier : v3.0 ##
## Fichier docker-compose.yml pour Vaultwarden avec ttionya/vaultwarden-backup ##
## Révision du fichier : v4.0 ##
## ##
##==============================================================================================
## ##
@ -229,67 +242,71 @@ services:
[/code]
[u][b]Maintenant la deuxième partie ([b][color=#4040FF]partie 2[/color][/b]) qui peut ne pas être utilisée si vous ne souhaitez pas sauvegarder automatiquement la BDD :[/b][/u] [color=#800000][b]( [u] > Mise à jour < [/u] )[/b][/color]
[u][b]Maintenant la deuxième partie ([b][color=#4040FF]partie 2[/color][/b]) qui peut ne pas être utilisée si vous ne souhaitez pas sauvegarder automatiquement la BDD :[/b][/u] [color=#800000][b]( [u] > Mise à jour v4.0 < [/u] )[/b][/color]
[color=#800000][b]( [u] > Mise à jour v4.0 < [/u] )[/b]
Je change la méthode de sauvegarde pour une nouvelle image qui permet davantage de choses, dont la sauvegarde des dossiers attachements, et sends en plus de la base de données.
[img]https://i.imgur.com/2T2U5QL.png[/img]
Il est possible de faire un backup local (méthode utilisée ici) mais il est également possible de faire une sauvegarde dans un cloud parmis une liste assez grande (voir plus bas).
Le fichier 7z obtenu est protégé par un mot de passe, celui présent dans le docker-compose dans la variable ZIP_PASSWORD.
La méthode de compression peut être changée pour zip, moins compressé, mais moins demandeur de ressources...
[/color]
Comme précédemment, les indications sont en commentaires)
[code] # Sauvegarde automatique de la base de données, au-cas-où !
vaultwarden_backup: # Voir : https://gitlab.com/1O/bitwarden_rs-backup
image: bruceforce/bw_backup:latest
container_name: vaultwarden_backup
[code] vaultwarden_backup_ttionya: # Voir : https://github.com/ttionya/vaultwarden-backup
image: ttionya/vaultwarden-backup:latest
container_name: vaultwarden_backup_ttionya
networks:
- vaultwarden_network
restart: always
depends_on:
vaultwarden:
condition: service_healthy
labels:
- "com.centurylinklabs.watchtower.enable=true"
volumes:
- /volume1/docker/vaultwarden/vaultwarden-data/:/data/
# Chemin d'accès pour stocker le backup, voir https://gitlab.com/1O/bitwarden_rs-backup#wrong-permissions
- /volume1/docker/vaultwarden/vaultwarden-backup:/backup_folder/
- /volume1/docker/vaultwarden/vaultwarden-data:/data
# Chemin d'accès pour stocker le backup et la configuration rclone, voir https://github.com/ttionya/vaultwarden-backup
- /volume1/docker/vaultwarden/vaultwarden-backup_ttionya/config:/config
- /volume1/docker/vaultwarden/vaultwarden-backup_ttionya/rclone_backup:/rclone_backup
environment:
# Path to the vaultwarden sqlite3 database inside the container
- DB_FILE=/data/db.sqlite3
# Path to the desired backup location inside the container
# - BACKUP_FILE=/data/db_backup/backup.sqlite3
- BACKUP_FILE=/backup_folder/backup.sqlite3
# Sets the permissions of the backup file
# The permissions should at least be 700 since the backup folder itself gets the same permissions
# and with 600 it would not be accessible.
- BACKUP_FILE_PERMISSIONS=700
# Cronjob format "Minute Hour Day_of_month Month_of_year Day_of_week Year"
# https://crontab.guru/#0_9_*_*_*
# minutes | heures | jour du mois | mois | jour de la semaine
- CRON_TIME=0 18 * * *
# Set to true to append timestamp to the BACKUP_FILE
- TIMESTAMP=true
# User ID to run the cron job with
- UID=1000 # J'ai créé un utilisateur dédié à vaultwarden, utiliser la commande 'id nom_user'
# Group ID to run the cron job with
- GID=100
# Path to the logfile inside the container
#- LOGFILE
# Path to the cron file inside the container
#- CRONFILE
# Delete old backups after X many days
- DELETE_AFTER=14
- DATA_DIR=/data # Dossier de données de Vaultwarden monté avec les volumes
- RCLONE_REMOTE_NAME=Backup_Syno # Nom de la config rclone utilisée (voir note plus bas)
- RCLONE_REMOTE_DIR=/rclone_backup/ # Dossier qui doit monté avec les volumes
# If you need timestamps in your local timezone you should mount /etc/timezone:/etc/timezone:ro and
# /etc/localtime:/etc/localtime:ro like it's done in the docker-compose.yml.
# An other possible solution is to set the environment variable accordingly (like TZ=Europe/Berlin)
# (see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones for more information).
- TZ=Europe/Paris
# Utiliser soit SCHEDULE soit INTERVAL (ce dernier en sec)
# Pour SCHEDULE : https://crontab.guru/#0_22_*_*_*
# Dans la ligne suivante, on programme l'exécution tous les jours à 22h
- CRON=0 22 * * *
- ZIP_ENABLE=TRUE
- ZIP_PASSWORD=WHEREISMYPASSWORD?
- ZIP_TYPE=7z
- BACKUP_FILE_DATE_SUFFIX=--%Hh%Mm%Ss
- BACKUP_KEEP_DAYS=7
# - MAIL_SMTP_ENABLE=FALSE
# - MAIL_SMTP_VARIABLES=''
# - MAIL_TO=''
# - MAIL_WHEN_SUCCESS='TRUE'
# - MAIL_WHEN_FAILURE='TRUE'
- TIMEZONE=Europe/Paris
#############################################
# Note à propos de la configuration de rclone
#############################################
# Si vous voulez faire une sauvegarde locale, il faut juste placer le fichier rclone.conf dans le dossier ../config/rclone/
# Dans ce fichier vous trouverez ceci :
# [Backup_Syno]
# type = local
#
# Il faudra remplacer Backup_Syno par un autre nom au besoin.
# Ce fichier est donc prévu pour une sauvegarde locale.
# Pour configurer d'autres types de sauvegarde, il faut lancer la configuration de rclone avec cette commande :
# docker run --rm -it -v /volume1/docker/vaultwarden/vaultwarden-backup_ttionya/config:/config ttionya/vaultwarden-backup:latest rclone config
[/code]
@ -304,14 +321,51 @@ Comme précédemment, les indications sont en commentaires)
Il est à préciser que ces trois parties sont à fusionner en un seul et même fichier. Je les ai séparer pour les explications.
Voir le fichier docker-compose.yml joint précédement.
[color=#BF40BF][b][size=150]3.3- Création des dossiers et du réseau[/size][/b][/color]
[color=#BF40BF][b][size=150]3.3- Configuration de rclone pour le backup[/size][/b][/color] [color=#800000][b]( [u] > Mise à jour v4.0 < [/u] )[/b][/color]
Pour que la sauvegarde se fasse sans erreur, il faut configurer un fichier rclone.conf qui devra se trouver dans /volume1/docker/vaultwarden/vaultwarden-backup_ttionya/config/rclone/
Deux possiblités en fonction de ce que vous voudrez faire.
[list][*] La première si vous faites comme moi, une sauvegarde locale (dans un dossier du NAS, monté dans les volumes, voir paragraphe précédent).
Pour cette méthode, il suffit de créer un fichier rclone.conf dans /volume1/docker/vaultwarden/vaultwarden-backup_ttionya/config/rclone/ (ou de copier le fichier joint) contenant :
[code][Backup_Syno]
type = local
[/code]
Vous remarquerez que Backup_Syno est le nom donné dans le docker compore à la variable RCLONE_REMOTE_NAME.
Il faudra donc bien configurer la variable RCLONE_REMOTE_DIR avec le chemin d'accès à l'intérieur du conteneur.
Je tiens à préciser que ce mode de sauvegarde doit être complété par une tâche de backup planifiée (Hyperbackup) du dossier docker contenant le dossier Vaultwarden dans un cloud ou ailleurs.
[*] La seconde si vous voulez ajouter des options, ou bien faire une sauvegarde dans un cloud.
Pour cela, il faut lancer une commande en ligne de commande SSH (donc se connecter en SSH au NAS) :
[code]docker run --rm -it \
-v /volume1/docker/vaultwarden/vaultwarden-backup_ttionya/config:/config \
ttionya/vaultwarden-backup:latest \
rclone config
[/code]
[b]NOTE : Attention, pour ceux qui utilise Portainer, il se pourrait que cette commande, lancée avant la création du conteneur, fasse que la stack ne soit pas gérable par Portainer... Créer d'abord le conteneur, puis stopper le, avant de lancer cette commande.[/b]
Cette commande ne crée pas le conteneur, elle va juste lancer le processus de configuration de rclone :
[url=https://i.imgur.com/6QD37JW.png][img]https://i.imgur.com/6QD37JW.png[/img][/url]
Vous pourrez éditer la configuration précédemment enregistrée (dans mon exemple, celle utilisée pour le backup local), en créer une nouvelle, etc...
Pour la création, il faut donc taper n (new remote).
Une fois donné un nom, vous aurez le choix entre toutes ces possibilités de cloud (sauf n°22 qui est la sauvegarde locale) :
[url=https://i.imgur.com/xSWPKVz.png][img]https://i.imgur.com/xSWPKVz.png[/img][/url] [url=https://i.imgur.com/kxO3LcS.png][img]https://i.imgur.com/kxO3LcS.png[/img][/url]
Je n'ai pas poursuivi une de ces méthodes de cloud, à vous d'essayer ;) (si vous le faites, n'hésiter pas à revenir faire un petit retour ;) ).
À l'issue de l'exécution de cette configuration, vous aurez automatiquement le fichier rclone.conf écrit dans le dossier .../config/rclone/ (ou bien celui déjà existant sera modifié). [/list]
[color=#BF40BF][b][size=150]3.4- Création des dossiers et du réseau[/size][/b][/color]
La partie explications des options à placer dans le fichier [i]docker-compose.yml[/i] étant faite, passons à la [b]création des dossiers sur le NAS[/b].
Vous pouvez soit passer par DSM, soit par la ligne de commande.
Si vous optez pour la CLI, voilà les commandes à taper :
[code]sudo -i
cd /volume1/docker
mkdir -p vaultwarden vaultwarden/vaultwarden-data vaultwarden/vaultwarden-backup[/code]
mkdir -p vaultwarden vaultwarden/vaultwarden-data vaultwarden/vaultwarden-backup_ttionya/config/rclone vaultwarden/vaultwarden-backup_ttionya/rclone_backup[/code]
Une fois ces dossiers créés, copier votre [i]docker-compose.yml[/i] dans le dossier [b]/volume1/docker/vaultwarden[/b].
Il faut maintenant créer le réseau. Plusieurs possibilités existent.
@ -337,7 +391,7 @@ Et ensuite taper vos commande sans le [i]sudo[/i] devant.
[color=#BF40BF][b][size=150]3.4- Création des conteneurs (2 méthodes)[/size][/b][/color]
[color=#BF40BF][b][size=150]3.5- Création des conteneurs (2 méthodes)[/size][/b][/color]
Maintenant tout est prêt pour qu'on se lance dans la création des conteneurs.
Deux possibilités : passer par Portainer, ou bien la CLI.
[list]
@ -355,7 +409,7 @@ Il ne reste plus qu'à cliquer sur le bouton "Deploy the stack" tout en bas à g
Si une erreur apparait, ce sera dans le coin supérieur droit dans un rectangle rouge, essayer d'en faire une capture avant sa disparition.
Si non, un message en vert apparait et les conteneurs seront créés :
[url=https://i.imgur.com/3jMl1BF.png][img]https://i.imgur.com/3jMl1BF.png[/img][/url]
[url=https://i.imgur.com/T2UpRR4.png][img]https://i.imgur.com/T2UpRR4.png[/img][/url]
[url=https://i.imgur.com/tVvnL7U.png][img]https://i.imgur.com/tVvnL7U.png[/img][/url]
Vous noterez dans cette stack, il est possible de l'éditer pour la modifier avec l'onglet [b]Editor[/b] :
[url=https://i.imgur.com/wKptW0e.png][img]https://i.imgur.com/wKptW0e.png[/img][/url]
__________
@ -376,15 +430,18 @@ Si vous essayer d'accéder via l'IP LAN en http ça ne fonctionnera pas, car le
[url=https://i.imgur.com/fgfVIHs.png][img]https://i.imgur.com/fgfVIHs.png[/img][/url]
Et si vous essayer toujours avec l'IP mais en HTTPS, vous aurez cette erreur :
[url=https://i.imgur.com/NpwOycm.png][img]https://i.imgur.com/NpwOycml.png[/img][/url]
Bref, il faut y accéder avec votre nom de domaine :
[url=https://i.imgur.com/uBTXLKe.png][img]https://i.imgur.com/uBTXLKe.png[/img][/url]
[color=#13A8BD][b]( [u] > Mise à jour - v3.1 < [/u] )[/b]
Bref, il faut y accéder avec votre nom de domaine. Mais pour cela il faut paramétrer le reverse-proxy de DSM.
[url=https://i.imgur.com/iP47nZm.png][img]https://i.imgur.com/iP47nZm.png[/img][/url]
Une fois cette entrée créé, vous pouvez accéder en HTTPS avec votre nom de domain à Vaultwarden :[/color]
[url=https://i.imgur.com/kbZkHCF.png][img]https://i.imgur.com/kbZkHCF.png[/img][/url]
[color=#800000][b]( [u] > Mise à jour - v3.0 < [/u] )[/b]
Vous devriez voir ici "© 2021, Bitwarden Inc. (Powered by Vaultwarden)", ceci marque le changement de nom de l'image, voir §1)
[/color]
Il faut ensuite créer votre compte et vous pourrez alors créer vos mots de passe, importer depuis un autre logiciel de mot de passe...
[url=https://i.imgur.com/5sIki2u.png][img]https://i.imgur.com/5sIki2u.png[/img][/url]
Voilà voilà.
Reste plus qu'à sécuriser le compte avec le 2FA. Pour cela, il faut aller dans le compte :

View File

@ -0,0 +1,3 @@
[Backup_Syno]
type = local

View File

@ -1,10 +1,9 @@
##==============================================================================================
## ##
## Fichier docker-compose.yml pour vaultwarden avec Bitwarden-Backup ##
## Révision du fichier : v3.0 ##
## Fichier docker-compose.yml pour Vaultwarden avec ttionya/vaultwarden-backup ##
## Révision du fichier : v4.0 ##
## ##
##==============================================================================================
## Voir tuto : https://www.forum-nas.fr/viewtopic.php?f=56&t=15341&p=99007#p99007 ##
## ##
##==============================================================================================
## ##
@ -58,146 +57,206 @@
##==============================================================================================
---
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
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
vaultwarden_backup_ttionya: # Voir : https://github.com/ttionya/vaultwarden-backup
image: ttionya/vaultwarden-backup:latest
container_name: vaultwarden_backup_ttionya
networks:
- vaultwarden_network
# 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'.
restart: always
- 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
depends_on:
vaultwarden:
condition: service_healthy
# 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
labels:
- "com.centurylinklabs.watchtower.enable=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
# Sauvegarde automatique de la base de données, au-cas-où !
vaultwarden_backup: # Voir : https://gitlab.com/1O/bitwarden_rs-backup
image: bruceforce/bw_backup:latest
container_name: vaultwarden_backup
networks:
- vaultwarden_network
restart: always
depends_on:
vaultwarden:
condition: service_healthy
labels:
- "com.centurylinklabs.watchtower.enable=true"
volumes:
- /volume1/docker/vaultwarden/vaultwarden-data/:/data/
# Chemin d'accès pour stocker le backup, voir https://gitlab.com/1O/bitwarden_rs-backup#wrong-permissions
- /volume1/docker/vaultwarden/vaultwarden-backup:/backup_folder/
environment:
# Path to the vaultwarden sqlite3 database inside the container
- DB_FILE=/data/db.sqlite3
# Path to the desired backup location inside the container
# - BACKUP_FILE=/data/db_backup/backup.sqlite3
- BACKUP_FILE=/backup_folder/backup.sqlite3
# Sets the permissions of the backup file
# The permissions should at least be 700 since the backup folder itself gets the same permissions
# and with 600 it would not be accessible.
- BACKUP_FILE_PERMISSIONS=700
# Cronjob format "Minute Hour Day_of_month Month_of_year Day_of_week Year"
# https://crontab.guru/#0_9_*_*_*
# minutes | heures | jour du mois | mois | jour de la semaine
- CRON_TIME=0 18 * * *
# Set to true to append timestamp to the BACKUP_FILE
- TIMESTAMP=true
# User ID to run the cron job with
- UID=1000 # J'ai créé un utilisateur dédié à vaultwarden, utiliser la commande 'id nom_user'
# Group ID to run the cron job with
- GID=100
# Path to the logfile inside the container
#- LOGFILE
# Path to the cron file inside the container
#- CRONFILE
# Delete old backups after X many days
- DELETE_AFTER=14
# If you need timestamps in your local timezone you should mount /etc/timezone:/etc/timezone:ro and
# /etc/localtime:/etc/localtime:ro like it's done in the docker-compose.yml.
# An other possible solution is to set the environment variable accordingly (like TZ=Europe/Berlin)
# (see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones for more information).
- TZ=Europe/Paris
networks:
vaultwarden_network:
external:
name: vaultwarden_network
volumes:
- /volume1/docker/vaultwarden/vaultwarden-data:/data
# Chemin d'accès pour stocker le backup et la configuration rclone, voir https://github.com/ttionya/vaultwarden-backup
- /volume1/docker/vaultwarden/vaultwarden-backup_ttionya/config:/config
- /volume1/docker/vaultwarden/vaultwarden-backup_ttionya/rclone_backup:/rclone_backup
environment:
- DATA_DIR=/data # Dossier de données de Vaultwarden monté avec les volumes
- RCLONE_REMOTE_NAME=Backup_Syno # Nom de la config rclone utilisée (voir note plus bas)
- RCLONE_REMOTE_DIR=/rclone_backup/ # Dossier qui doit monté avec les volumes
# Utiliser soit SCHEDULE soit INTERVAL (ce dernier en sec)
# Pour SCHEDULE : https://crontab.guru/#0_22_*_*_*
# Dans la ligne suivante, on programme l'exécution tous les jours à 22h
- CRON=0 22 * * *
- ZIP_ENABLE=TRUE
- ZIP_PASSWORD=WHEREISMYPASSWORD?
- ZIP_TYPE=7z
- BACKUP_FILE_DATE_SUFFIX=--%Hh%Mm%Ss
- BACKUP_KEEP_DAYS=7
# - MAIL_SMTP_ENABLE=FALSE
# - MAIL_SMTP_VARIABLES=''
# - MAIL_TO=''
# - MAIL_WHEN_SUCCESS='TRUE'
# - MAIL_WHEN_FAILURE='TRUE'
- TIMEZONE=Europe/Paris
#############################################
# Note à propos de la configuration de rclone
#############################################
# Si vous voulez faire une sauvegarde locale, il faut juste placer le fichier rclone.conf dans le dossier ../config/rclone/
# Dans ce fichier vous trouverez ceci :
# [Backup_Syno]
# type = local
#
# Il faudra remplacer Backup_Syno par un autre nom au besoin.
# Ce fichier est donc prévu pour une sauvegarde locale.
# Pour configurer d'autres types de sauvegarde, il faut lancer la configuration de rclone avec cette commande :
# docker run --rm -it -v /volume1/docker/vaultwarden/vaultwarden-backup_ttionya/config:/config ttionya/vaultwarden-backup:latest rclone config
###############################################################################################
# Ancienne version de la partie sauvegarde
###############################################################################################
# Sauvegarde automatique de la base de données, au-cas-où !
# vaultwarden_backup: # Voir : https://gitlab.com/1O/bitwarden_rs-backup
# image: bruceforce/bw_backup:latest
# container_name: vaultwarden_backup
# networks:
# - vaultwarden_network
# restart: always
# depends_on:
# vaultwarden:
# condition: service_healthy
# labels:
# - "com.centurylinklabs.watchtower.enable=true"
# volumes:
# - /volume1/docker/vaultwarden/vaultwarden-data/:/data/
# # Chemin d'accès pour stocker le backup, voir https://gitlab.com/1O/bitwarden_rs-backup#wrong-permissions
# - /volume1/docker/vaultwarden/vaultwarden-backup:/backup_folder/
# environment:
# # Path to the vaultwarden sqlite3 database inside the container
# - DB_FILE=/data/db.sqlite3
# # Path to the desired backup location inside the container
# # - BACKUP_FILE=/data/db_backup/backup.sqlite3
# - BACKUP_FILE=/backup_folder/backup.sqlite3
# # Sets the permissions of the backup file
# # The permissions should at least be 700 since the backup folder itself gets the same permissions
# # and with 600 it would not be accessible.
# - BACKUP_FILE_PERMISSIONS=700
# # Cronjob format "Minute Hour Day_of_month Month_of_year Day_of_week Year"
# # https://crontab.guru/#0_9_*_*_*
# # minutes | heures | jour du mois | mois | jour de la semaine
# - CRON_TIME=0 18 * * *
# # Set to true to append timestamp to the BACKUP_FILE
# - TIMESTAMP=true
# # User ID to run the cron job with
# - UID=1038 # J'ai créé un utilisateur dédié à vaultwarden, utiliser la commande 'id nom_user'
# # Group ID to run the cron job with
# - GID=100
# # Path to the logfile inside the container
# #- LOGFILE
# # Path to the cron file inside the container
# #- CRONFILE
# # Delete old backups after X many days
# - DELETE_AFTER=14
# # If you need timestamps in your local timezone you should mount /etc/timezone:/etc/timezone:ro and
# # /etc/localtime:/etc/localtime:ro like it's done in the docker-compose.yml.
# # An other possible solution is to set the environment variable accordingly (like TZ=Europe/Berlin)
# # (see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones for more information).
# - TZ=Europe/Paris
###############################################################################################
networks:
vaultwarden_network:
external:
name: vaultwarden_network