Bitwarden_RS avec Backup automatique et programmé

(je suis en train de tester pour les notifications websocket, avec le reverse-proxy de Synology DSM, il se peut que je fasse un autre commit pour inclure un script à lancer régulièrement).
This commit is contained in:
MilesTEG 2021-04-03 14:57:21 +02:00
parent 626316c0de
commit 13cc0ac88e

View File

@ -0,0 +1,133 @@
## Discord Plex FR : https://discord.gg/ERpYMqS
## Version 2021-04-03
##========================================================================================
## ##
## Fichier docker-compose.yml pour Bitwarden_RS avec Bitwarden-Backup ##
## ##
##========================================================================================
## ##
## Attention, avec ce fichier, il faut avoir créer le réseau "bitwarden_network" avant ##
## de créer les conteneurs. ##
## ##
## La mise en place de fail2ban se fera avec un docker-compose dédié. ##
## ##
##========================================================================================
---
version: "2"
services:
bitwardenrs: # Voir : https://github.com/dani-garcia/bitwarden_rs
image: bitwardenrs/server:latest
container_name: bitwardenrs
networks:
- bitwarden_network
environment:
# Utiliser la commande (en SSH) : id NOM_UTILISATEUR
- PUID=XXxxXX
- PGID=XXxxXX
- 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
# Nécessaire pour activer le 2FA pour la connexion à notre serveur bitwarden_rs
# 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
- INVITATION_ORG_NAME=Bitwarden_RS [Votre Nom, pseudo...] # Permet de spécifier un nom d'application pour les invitations d'organisation
# Pour enregistrer les log avec un niveau particulier
- LOG_FILE=/data/bitwarden.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/bitwarden_rs/wiki/Enabling-admin-page
# /!\
# /!\ N'importe qui pourra accéder à la page de connextion, 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)
volumes:
- "/volume1/docker/bitwarden_rs/bitwarden-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ù !
bitwarden_backup: # Voir : https://gitlab.com/1O/bitwarden_rs-backup
image: bruceforce/bw_backup:latest
container_name: bitwarden_backup
networks:
- bitwarden_network
restart: always
depends_on:
- bitwardenrs
volumes:
- /etc/localtime:/etc/localtime:ro
- /volume1/docker/bitwarden_rs/bitwarden-data/:/data/
# Chemin d'accès pour stocker le backup
- /volume1/docker/bitwarden_rs/bitwarden-backup:/backup_folder/
environment:
# Path to the Bitwarden 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é à Bitwarden, 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
networks:
bitwarden_network:
external:
name: bitwarden_network