diff --git a/pica-db-backup/README.md b/pica-db-backup/README.md
index 86790248b143906fb6270b7a56e063387344128d..4e7006a1f2a77d21472205317b45283286bd5225 100644
--- a/pica-db-backup/README.md
+++ b/pica-db-backup/README.md
@@ -6,10 +6,29 @@ Il est capable de gérer les bases de données `postgres`, `mysql` ou `mongo` po
 
 Il est flexible et se configure via des fichiers JSON.
 
+<!-- TOC depthFrom:2 depthTo:6 withLinks:1 updateOnSave:1 orderedList:0 -->
+
+- [Lancement](#lancement)
+- [Configuration](#configuration)
+	- [Structure](#structure)
+	- [Gestion des secrets](#gestion-des-secrets)
+	- [Exemple](#exemple)
+
+<!-- /TOC -->
+
 ## Lancement
 
 On se synchronise simplement avec le dépôt et on lance le Docker Compose.
-Docker Compose sélectionne automatiquement le bon fichier de configuration en fonction du nom d'hôte de la machine virtuelle, il n'y a donc rien à modifier.
+
+On copie `secrets/db.secrets.example` dans `secrets/db.secrets` :
+* On assigne le nom de la VM à `HOSTNAME` (*e.g.* `pica02`),
+* On renseigne les secrets (voir [plus bas]((#gestion-des-secrets)))
+
+Docker Compose sélectionne automatiquement le bon fichier de configuration en fonction du nom d'hôte de la machine virtuelle, il n'y a donc rien à modifier :
+
+```
+$ docker-compose up -d
+```
 
 ## Configuration
 
@@ -26,6 +45,8 @@ On veillera à ce que les noms d'hôte correspondent bien aux noms des conteneur
  - "Host" : Indique l'hôte de la base de données
  - "Port" : Indique le port pour se connecter au service
  - "Database" : Indique le nom de la base de données
+ - "User" : Nom d'utilisateur ou nom d'une variable d'environnement (optionnel)
+ - "Password" : Mot de passe ou nom d'une variable d'environnement (optionnel)
  - "Folder" : Indique le nom du dossier de backup utilisé par le script de backup et de rotation
  - "Cron" : Indique la fréquence de temps à laquelle les backups sont effectués par le script de rotation au format cron
  - "Init-Backup" : Indique si un backup doit être effectué au démarrage du service, en plus de la programmation du cron
@@ -35,6 +56,15 @@ On veillera à ce que les noms d'hôte correspondent bien aux noms des conteneur
      - "Week" : nombre de backups hebdomadaires à conserver
      - "Month": nombre de backups mensuels à conserver
 
+### Gestion des secrets
+
+Afin de pouvoir versionner les fichiers de configuration sans exposer les identifiants aux bases de données, on utilise le système suivant :
+* Dans le JSON, on utilise un nom de variable d'environnement à la place de l'identifant, **sans le $**, *e.g.* `ETHERPAD_DB_USER`.
+* Dans le fichier `db.secrets`, on renseigne la valeur de cette variable d'environnement.
+
+La substitution est effectué automatiquement par l'outil.
+
+
 ### Exemple
 
 ```json
@@ -60,8 +90,8 @@ On veillera à ce que les noms d'hôte correspondent bien aux noms des conteneur
     {
       "Host": "etherpad-db",
       "Port": "3306",
-      "User": "root",
-      "Password": "lolilolilol",
+      "User": "ETHERPAD_DB_USER",
+      "Password": "ETHERPAD_DB_PASSWORD",
       "Database": "--all-databases",
       "Type": "mysql",
       "Folder": "etherpad",
diff --git a/pica-db-backup/backup_env_var.py b/pica-db-backup/backup_env_var.py
index e96491cd8a0d90fe305d71d45f4e90f8b14bc2e9..475be9d21e95ddb70e0cccdf070b13b0ae4c3297 100755
--- a/pica-db-backup/backup_env_var.py
+++ b/pica-db-backup/backup_env_var.py
@@ -37,6 +37,7 @@ if not(os.path.isfile(PATH_TO_CONFIG)):
 # Variables initialization
 open_config_file = open(PATH_TO_CONFIG)
 services_list = json.load(open_config_file)
+services_list = {k: os.environ.get(k, v) for k, v in olddata.items()}
 flag_mongo = False
 flag_mysql = False
 flag_postgres = False
@@ -44,7 +45,7 @@ flag_postgres = False
 for service in services_list:
     if services_list[service]["Type"] == "mongo":
 
-	# Mongo DB handling 	
+	# Mongo DB handling
         add_value_to_key(service,"MONGO_SERVICE_NAME_LIST")
         add_value_to_key(services_list[service]["Host"],"MONGO_HOST_LIST")
         add_value_to_key(services_list[service]["Port"],"MONGO_PORT_LIST")
@@ -62,8 +63,12 @@ for service in services_list:
         add_value_to_key(service,"MYSQL_SERVICE_NAME_LIST")
         add_value_to_key(services_list[service]["Host"],"MYSQL_HOST_LIST")
         add_value_to_key(services_list[service]["Port"],"MYSQL_PORT_LIST")
-        add_value_to_key(services_list[service]["User"],"MYSQL_USER_LIST")
-        add_value_to_key(services_list[service]["Password"],"MYSQL_PASS_LIST")
+        user = services_list[service]["User"]
+        user = os.environ[user] if user in os.environ
+        add_value_to_key(user,"MYSQL_USER_LIST")
+        password = services_list[service]["Password"]
+        password = os.environ[password] if password in os.environ
+        add_value_to_key(password,"MYSQL_PASS_LIST")
         add_value_to_key(services_list[service]["Database"],"MYSQL_DB_LIST")
         add_value_to_key(services_list[service]["Init-Backup"],"MYSQL_INIT_BACKUP_LIST")
         add_value_to_key(services_list[service]["Cron"],"MYSQL_CRON_TIME_LIST")
@@ -79,8 +84,12 @@ for service in services_list:
         add_value_to_key(service,"POSTGRES_SERVICE_NAME_LIST")
         add_value_to_key(services_list[service]["Host"],"POSTGRES_HOST_LIST")
         add_value_to_key(services_list[service]["Port"],"POSTGRES_PORT_LIST")
-        add_value_to_key(services_list[service]["User"],"POSTGRES_USER_LIST")
-        add_value_to_key(services_list[service]["Password"],"POSTGRES_PASS_LIST")
+        user = services_list[service]["User"]
+        user = os.environ[user] if user in os.environ
+        add_value_to_key(user,"POSTGRES_USER_LIST")
+        password = services_list[service]["Password"]
+        password = os.environ[password] if password in os.environ
+        add_value_to_key(password,"POSTGRES_PASS_LIST")
         add_value_to_key(services_list[service]["Database"],"POSTGRES_DB_LIST")
         add_value_to_key(services_list[service]["Init-Backup"],"POSTGRES_INIT_BACKUP_LIST")
         add_value_to_key(services_list[service]["Cron"],"POSTGRES_CRON_TIME_LIST")
diff --git a/pica-db-backup/docker-compose.yml b/pica-db-backup/docker-compose.yml
index c64e4214bcc9338e5253146900bd9f3bf20f69c4..844269bdff056d236f2aac0b2cd5025cb15a686f 100644
--- a/pica-db-backup/docker-compose.yml
+++ b/pica-db-backup/docker-compose.yml
@@ -13,6 +13,8 @@ services:
       - /DATA/BACKUP/:/backup/
       - ./config/${HOSTNAME}.json:/config/backup_data.json
       - /etc/localtime:/etc/localtime:ro
+    env_file:
+      - ./secrets/db.secrets
     networks:
       - docker_default
     restart: always
diff --git a/pica-db-backup/secrets/db.secrets.example b/pica-db-backup/secrets/db.secrets.example
new file mode 100644
index 0000000000000000000000000000000000000000..9863a0b598eb28494e2e8b6e7ef49b8b7c5c1ef8
--- /dev/null
+++ b/pica-db-backup/secrets/db.secrets.example
@@ -0,0 +1,3 @@
+HOSTNAME=pica02
+ETHERPAD_DB_USER=test
+ETHERPAD_DB_PASSWORD=test