diff --git a/README-FR.md b/README-FR.md
index 04d7e13880ce449fdd38a8fe129650b25d6b7ff3..a25a64b20f23a5d074453ecce713df65bb85847d 100644
--- a/README-FR.md
+++ b/README-FR.md
@@ -13,20 +13,35 @@
 [🇬🇧 English version](README.md)
 
 Cette collection vise à installer, configurer et sauvegarder [Yunohost](https://yunohost.org/#/).
-Comme il s'agit d'une collection indépendante, elle peut être publiée selon sa propre cadence de publication.
+Comme il s'agit d'une collection indépendante, elle peut être publiée selon sa propre cadence de publication. De plus, les rôles qu'elle contient sont mis à jour indépendamment.
 
 ## Prérequis
 
-Votre serveur doit être basé sur du Debian Buster.
+Votre serveur doit être basé sur du Debian Buster et Yunohost ne doit pas déjà être installé.
 
 ## Contenu de la collection
 
 ### Rôles
 
-- `lydra.yunohost.ynh_setup` : Ce rôle prépare les serveurs à base de Debian-Buster à exécuter Yunohost.
-- `lydra.yunohost.ynh_config` : Ce rôle gère la configuration et le démarrage des différents services de Yunohost (relais SMTP, mises à jour automatiques).
+- `lydra.yunohost.ynh_setup` : Ce rôle prépare les serveurs à base de Debian-Buster à exécuter Yunohost. Il configure Yunohost avec ses paramètres initiaux et les domaines, utilisateurs et applications de votre choix.
+- `lydra.yunohost.ynh_config` : Ce rôle gère la configuration de différents services de Yunohost (relais SMTP, mises à jour automatiques).
 - `lydra.yunohost.ynh_backup` : Ce rôle gère la configuration des sauvegardes.
 
+### lydra.yunohost Tags du rôle
+
+Ces tags sont applicables suivant les rôles.
+
+|tags|commentaires|
+|----|-------|
+|yunohost|Tâches spécifiques à Yunohost.|
+|users|Tâches spécifiques aux utilisateurs de Yunohost.|
+|domains|Tâches spécifiques aux domaines liés à Yunohost.|
+|apps|Tâches spécifiques aux applications de Yunohost.|
+|update|Tâches liées aux paramètres de mise à jour de Yunohost.|
+|smtp|Tâches liées aux paramètres de relais smtp de Yunohost.|
+|backup|Tâches liées aux sauvegardes de Yunohost.|
+|pkg|Tâches d'installation de paquets.|
+
 ## License
 
 [![ansible-yunohost Copyright 2021 Lydra](https://www.gnu.org/graphics/gplv3-with-text-136x68.png)](https://choosealicense.com/licenses/gpl-3.0/)
diff --git a/README.md b/README.md
index fc3a7da5288a0aa117d053d0e32e95bb144899f6..e98c5d5204368794fbc95a5bbb708df93c0abbb2 100644
--- a/README.md
+++ b/README.md
@@ -13,19 +13,34 @@
 [🇫🇷 French version](README-FR.md)
 
 This collection aims at installing, configuring and backing up [Yunohost](https://yunohost.org/#/).
-As this is an independent collection, it can be released on its own release cadence.
+As this is an independent collection, it can be released on its own release cadence. Moreover, the roles it contains are updated independently.
 
 # Prerequisites
 
-Your server must be Debian-Buster based.
+Your server must be Debian-Buster based and Yunohost shouldn't be already installed.
 
 ## Collection contents
 
 ### Roles
 
-- `lydra.yunohost.ynh_setup` : This role prepares servers with Debian-Buster-based to run Yunohost.
-- `lydra.yunohost.ynh_config` : This role manages configuring and starting various Yunohost services (SMTP relay, auto updates).
-- `lydra.yunohost.ynh_backup` : This role manages configuring of backups.
+- `lydra.yunohost.ynh_setup` : This role prepares servers with Debian-Buster-based to run Yunohost. It sets up Yunohost with its initial settings and domains, users and apps of your choice.
+- `lydra.yunohost.ynh_config` : This role configures various Yunohost services (SMTP relay, auto updates).
+- `lydra.yunohost.ynh_backup` : This role manages the configuration of backups.
+
+## lydra.yunohost Role Tags
+
+These tags are applicable to roles.
+
+|tags|comment|
+|----|-------|
+|yunohost|Tasks specific to Yunohost.|
+|users|Tasks specific to users in Yunohost.|
+|domains|Tasks specific to domains linked to Yunohost.|
+|apps|Tasks specific to Yunohost apps.|
+|update|Tasks related to Yunohost update settings.|
+|smtp|Tasks related to Yunohost smtp relay settings.|
+|backup|Tasks related to Yunohost backups.|
+|pkg|Tasks that install packages.|
 
 ## License
 
diff --git a/roles/ynh_backup/README-FR.md b/roles/ynh_backup/README-FR.md
index 44854a1b4d9fc246a7d4dbebc4d779225a380e98..0989149d4fa5d4f365f051615461fde297c38c28 100644
--- a/roles/ynh_backup/README-FR.md
+++ b/roles/ynh_backup/README-FR.md
@@ -56,17 +56,13 @@ Aucune.
 
 ```yml
 ---
-- name: Install Yunohost on Debian Server
+- name: Configure Yunohost backups
   hosts: all
   become: True
-  pre_tasks:
-    - name: Update all packages and index
-      ansible.builtin.apt:
-        upgrade: dist
-        update_cache: yes
-    
-  roles:
+  collections:
     - lydra.yunohost
+  roles:
+    - ynh_backup
 ```
 
 ## License
diff --git a/roles/ynh_backup/README.md b/roles/ynh_backup/README.md
index a1730f8c24a38bd8b930996b59dac3489a3efb65..83824154d9c17f3ad26e107d7ba13c03c56585c4 100644
--- a/roles/ynh_backup/README.md
+++ b/roles/ynh_backup/README.md
@@ -59,6 +59,8 @@ None.
 - name: Install Yunohost on Debian Server
   hosts: all
   become: True
+  collections:
+    - lydra.yunohost
   pre_tasks:
     - name: Update all packages and index
       ansible.builtin.apt:
@@ -66,7 +68,7 @@ None.
         update_cache: yes
     
   roles:
-    - ansible-yunohost
+    - ynh_backup
 ```
 
 ## License
diff --git a/roles/ynh_backup/tasks/backup.yml b/roles/ynh_backup/tasks/backup.yml
index e3f1f0f6c39fa5e1d6edbbd0f0ba8cd7b3a61d1d..b6f4926e4507d95822d16ec86e7dc88f6a02d6e8 100644
--- a/roles/ynh_backup/tasks/backup.yml
+++ b/roles/ynh_backup/tasks/backup.yml
@@ -23,6 +23,8 @@
     path: "{{ ynh_backup.directory | default('/home/yunohost.backup/archives') }}"
     state: directory
     mode: '0750'
+  tags: 
+    - "backup"
 
 - name: Create backup script
   ansible.builtin.template:
@@ -31,6 +33,9 @@
     owner: root
     group: root
     mode: '0740'
+  tags: 
+    - "backup"
+    - "cron"
 
 - name: Create cron task to perform YNH backup
   ansible.builtin.cron:
@@ -42,3 +47,6 @@
     user: root
     job: "{{ ynh_backup.dest_script | default('/usr/local/bin/') }}ynh_backup.sh"
     cron_file: ynh_backup_cron
+  tags: 
+    - "backup"
+    - "cron"
diff --git a/roles/ynh_backup/tasks/main.yml b/roles/ynh_backup/tasks/main.yml
index e0f491afab73422964a15e9b15fda2e129587762..73baaf392f2d053efaeed7861f5df51b51ade448 100644
--- a/roles/ynh_backup/tasks/main.yml
+++ b/roles/ynh_backup/tasks/main.yml
@@ -21,3 +21,5 @@
 - name: Enable Yunohost apps backup
   ansible.builtin.include_tasks: backup.yml
   when: ynh_backup.scheduled
+  tags: 
+    - "backup"
diff --git a/roles/ynh_config/README-FR.md b/roles/ynh_config/README-FR.md
index 1e9ed720591c0b1c5fb5944f5516a9ddad27af97..882a71a8c8b212ce6c7e29180e0969aa61ee28d6 100644
--- a/roles/ynh_config/README-FR.md
+++ b/roles/ynh_config/README-FR.md
@@ -68,9 +68,11 @@ Aucune.
 
 ```yml
 ---
-- name: Configure Yunohost on Debian Server
+- name: Install Yunohost on Debian Server
   hosts: all
   become: True
+  collections:
+    - lydra.yunohost
   pre_tasks:
     - name: Update all packages and index
       ansible.builtin.apt:
@@ -78,7 +80,7 @@ Aucune.
         update_cache: yes
     
   roles:
-    - lydra.yunohost
+    - ynh_config
 ```
 
 ## License
diff --git a/roles/ynh_config/README.md b/roles/ynh_config/README.md
index fa774db9775c5440bb2fa4ca0f6b850dc2db3435..b704c6e0760d2c4ced189fc4124d55a2c02e091b 100644
--- a/roles/ynh_config/README.md
+++ b/roles/ynh_config/README.md
@@ -71,6 +71,8 @@ None.
 - name: Install Yunohost on Debian Server
   hosts: all
   become: True
+  collections:
+    - lydra.yunohost
   pre_tasks:
     - name: Update all packages and index
       ansible.builtin.apt:
@@ -78,7 +80,7 @@ None.
         update_cache: yes
     
   roles:
-    - ansible-yunohost
+    - ynh_config
 ```
 
 ## License
diff --git a/roles/ynh_config/tasks/autoupdate.yml b/roles/ynh_config/tasks/autoupdate.yml
index ff923af5b5c049c5ab59833fbb77ed8b1d446fbd..8678d9e3f1e74c4ab3a3b47d02c0134c3188a748 100644
--- a/roles/ynh_config/tasks/autoupdate.yml
+++ b/roles/ynh_config/tasks/autoupdate.yml
@@ -25,6 +25,9 @@
     owner: root
     group: root
     mode: '0740'
+  tags: 
+    - "update"
+    - "cron"
 
 - name: Creates cron task under /etc/cron.d to auto-update Yunohost
   ansible.builtin.cron:
@@ -34,3 +37,6 @@
     user: root
     job: "{{ ynh_autoupdate.dest_script | default('/usr/local/bin/') }}ynh_autoupdate.sh"
     cron_file: ynh_autoupdate_cron
+  tags: 
+    - "update"
+    - "cron"
diff --git a/roles/ynh_config/tasks/main.yml b/roles/ynh_config/tasks/main.yml
index 7650a87751eddfd182099ab857bc24d577b3eb4f..fbcd358ad18c2a4142286861e904cb3125dfee23 100644
--- a/roles/ynh_config/tasks/main.yml
+++ b/roles/ynh_config/tasks/main.yml
@@ -22,7 +22,11 @@
   ansible.builtin.include_tasks: smtp_relay.yml
   loop: "{{ ynh_smtp_relay | dict2items }}"
   when: item.value
+  tags:
+    - "smtp"
 
 - name: Configures Yunohost autoupdate
   ansible.builtin.include_tasks: autoupdate.yml
   when: ynh_autoupdate.scheduled
+  tags: 
+    - "update"
diff --git a/roles/ynh_config/tasks/smtp_relay.yml b/roles/ynh_config/tasks/smtp_relay.yml
index 874587083904f1279b05a4b54f118ec81ac40ce4..1090417c8dba42d489914549ab6ffe8c3963a7d4 100644
--- a/roles/ynh_config/tasks/smtp_relay.yml
+++ b/roles/ynh_config/tasks/smtp_relay.yml
@@ -23,8 +23,12 @@
     "yunohost settings get smtp.relay.{{ item.key }}"
   register: _ynh_smtp_current_values
   changed_when: False
+  tags:
+    - "smtp"
 
 - name: Set new SMTP settings
   ansible.builtin.command:
     "yunohost settings set smtp.relay.{{ item.key }} -v {{ item.value }}"
   when: _ynh_smtp_current_values.stdout != item.value
+  tags:
+    - "smtp"
diff --git a/roles/ynh_setup/README-FR.md b/roles/ynh_setup/README-FR.md
index bbacd3283c46e468acecab296ba049b8f6122c29..83ee4febbc0f224eb578164837663d899c8db7b1 100644
--- a/roles/ynh_setup/README-FR.md
+++ b/roles/ynh_setup/README-FR.md
@@ -141,6 +141,8 @@ Aucune.
     
   roles:
     - ynh_setup
+    - ynh_config
+    - ynh_backup
 ```
 
 ## License
diff --git a/roles/ynh_setup/README.md b/roles/ynh_setup/README.md
index 084e91d2947fa8643831e05de6be9033807c2236..511e82a154c24e7129f68f438809f07fe0c2a2d4 100644
--- a/roles/ynh_setup/README.md
+++ b/roles/ynh_setup/README.md
@@ -141,6 +141,8 @@ None.
     
   roles:
     - ynh_setup
+    - ynh_config
+    - ynh_backup
 ```
 
 ## License
diff --git a/roles/ynh_setup/tasks/app.yml b/roles/ynh_setup/tasks/app.yml
index ef15d38be2387ecc5ed2499faf9cea89d9d3d38a..d0395996930921de3476ace9896734ea3803c595 100644
--- a/roles/ynh_setup/tasks/app.yml
+++ b/roles/ynh_setup/tasks/app.yml
@@ -24,6 +24,9 @@
      --label "{{ ynh_app.label }}" \
      --args "{% for key, value in ynh_app.args.items() %}{{ key }}={{ value }}{% if not loop.last %}&{% endif %}{% endfor %}"
   changed_when: False
+  tags: 
+    - "yunohost"
+    - "apps"
 
 # Post-installation part
 - name: Create post-install template
@@ -35,6 +38,8 @@
     mode: "{{ (item.type == 'script') | ternary('740', '660') }}"
   loop: "{{ ynh_app.post_install|default([]) }}"
   when: ynh_app.post_install
+  tags: 
+    - "apps"
 
 - name: Launch post-install script
   ansible.builtin.command: "{{ ynh_app_post_install.dest }}"
@@ -44,6 +49,8 @@
   loop_control:
     loop_var: ynh_app_post_install
   when: ynh_app_post_install.type == "script"
+  tags: 
+    - "apps"
 
 - name: Remove script after execution
   ansible.builtin.file:
@@ -53,3 +60,5 @@
   loop_control:
     loop_var: ynh_app_post_install
   when: ynh_app_post_install.type == "script"
+  tags: 
+    - "apps"
diff --git a/roles/ynh_setup/tasks/apps.yml b/roles/ynh_setup/tasks/apps.yml
index 6ac376ba747fb1f305bb752d1b78ae8b8d3b051e..9289ddd46860e4350532f48cd82522eb0583169c 100644
--- a/roles/ynh_setup/tasks/apps.yml
+++ b/roles/ynh_setup/tasks/apps.yml
@@ -22,9 +22,15 @@
   ansible.builtin.command: yunohost app map --output-as json
   register: ynh_installed_apps_raw
   changed_when: False
+  tags: 
+    - "yunohost"
+    - "apps"
 
 - name: Format json of apps
   ansible.builtin.set_fact: ynh_installed_apps="{{ ynh_installed_apps_raw.stdout | from_json }}"
+  tags: 
+    - "yunohost"
+    - "apps"
 
 - name: Install yunohost apps and perform post-install
   ansible.builtin.include_tasks: app.yml
@@ -32,4 +38,7 @@
   loop_control:
     loop_var: ynh_app
   when: ynh_app.label not in ynh_installed_apps.values()
+  tags: 
+    - "yunohost"
+    - "apps"
 
diff --git a/roles/ynh_setup/tasks/domains.yml b/roles/ynh_setup/tasks/domains.yml
index 43fd607adbbc512deb8538a88c8bff3bbbbe5332..baa41afb2e9ede6b37bd71de4a9941964e0394bc 100644
--- a/roles/ynh_setup/tasks/domains.yml
+++ b/roles/ynh_setup/tasks/domains.yml
@@ -22,11 +22,20 @@
   ansible.builtin.command: yunohost domain list --output-as json
   register: ynh_installed_domains_raw
   changed_when: False
+  tags: 
+    - "yunohost"
+    - "domains"
 
 - name: Format json of domains
   ansible.builtin.set_fact: ynh_installed_domains="{{ ynh_installed_domains_raw.stdout | from_json }}"
+  tags: 
+    - "yunohost"
+    - "domains"
 
 - name: Create domains
   ansible.builtin.command: yunohost domain add {{ item }}
   with_items: "{{ ynh_extra_domains }}"
   when: item not in ynh_installed_domains.domains
+  tags: 
+    - "yunohost"
+    - "domains"
diff --git a/roles/ynh_setup/tasks/main.yml b/roles/ynh_setup/tasks/main.yml
index e0f8b73252fcbfd9ea571700081a93e3e69b58d4..2736af9005c5e87e391c69cee32a0dde21a4a74a 100644
--- a/roles/ynh_setup/tasks/main.yml
+++ b/roles/ynh_setup/tasks/main.yml
@@ -24,10 +24,14 @@
       - git
       - dialog
     state: present
+  tags: 
+    - "pkg"
 
 - name: Test if Yunohost is already installed
   ansible.builtin.stat: path=/etc/yunohost/installed
   register: ynh_file_install
+  tags: 
+    - "yunohost"
 
 - name: Download Yunohost install script
   ansible.builtin.get_url:
@@ -35,10 +39,14 @@
     dest: /tmp/install_yunohost.sh
     mode: 700
   when: not ynh_file_install.stat.exists
+  tags: 
+    - "yunohost"
 
 - name: Launch Yunohost install script
   ansible.builtin.command: /tmp/install_yunohost.sh -a
   when: not ynh_file_install.stat.exists
+  tags: 
+    - "yunohost"
 
 - name: Launch Yunohost postinstall
   ansible.builtin.command:
@@ -47,23 +55,39 @@
       --password "{{ ynh_admin_password }}" \
       {% if ynh_ignore_dyndns_server %} --ignore-dyndns {% endif %}
   when: not ynh_file_install.stat.exists
+  tags: 
+    - "yunohost"
+    - "domains"
 
 - name: Create extra domains
   ansible.builtin.include_tasks: domains.yml
   when: ynh_extra_domains
+  tags: 
+    - "yunohost"
+    - "domains"
 
 - name: Run first Yunohost diagnosis
   ansible.builtin.command: yunohost diagnosis run
   when: not ynh_file_install.stat.exists
+  tags: 
+    - "yunohost"
 
 - name: Install domain certificates
   ansible.builtin.command: yunohost domain cert-install
   changed_when: False
+  tags: 
+    - "yunohost"
 
 - name: Add Yunohost users
   ansible.builtin.include_tasks: users.yml
   when: ynh_users
+  tags: 
+    - "yunohost"
+    - "users"
 
 - name: Install Yunohost apps
   ansible.builtin.include_tasks: apps.yml
   when: ynh_apps
+  tags: 
+    - "yunohost"
+    - "apps"
diff --git a/roles/ynh_setup/tasks/users.yml b/roles/ynh_setup/tasks/users.yml
index 06e3c4c171e3673e7b2a7c306353d881eb24aff3..d4ad86af16009e7f6d5f02024442688685c141d6 100644
--- a/roles/ynh_setup/tasks/users.yml
+++ b/roles/ynh_setup/tasks/users.yml
@@ -22,9 +22,15 @@
   ansible.builtin.command: yunohost user list --output-as json
   register: ynh_registered_users_raw
   changed_when: False
+  tags: 
+    - "yunohost"
+    - "users"
 
 - name: Format json of users
   ansible.builtin.set_fact: ynh_registered_users="{{ ynh_registered_users_raw.stdout | from_json }}"
+  tags: 
+    - "yunohost"
+    - "users"
 
 - name: Create missing Yunohost users
   ansible.builtin.command:
@@ -35,3 +41,6 @@
     -p "{{ item.pass }}"
   loop: "{{ ynh_users }}"
   when: item.name not in ynh_registered_users.users.keys()
+  tags: 
+    - "yunohost"
+    - "users"