diff --git a/README-FR.md b/README-FR.md
index 5876a48e76c4c3475c8ac0f5014a04027578f5e9..1ad3f34ad9adf3c7c3050a69bdc2ba835c22781d 100644
--- a/README-FR.md
+++ b/README-FR.md
@@ -45,6 +45,7 @@ Ces tags sont applicables suivant les rôles.
 |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.|
+|linux|Tâches liées à l'OS Linux.|
 
 ## License
 
diff --git a/README.md b/README.md
index 1690d7d88bba03e6ae523a6481c122b4039313a1..239c7bc178f074a357f8569aaa889e4343639d90 100644
--- a/README.md
+++ b/README.md
@@ -45,6 +45,7 @@ These tags are applicable to roles.
 |smtp|Tasks related to Yunohost smtp relay settings.|
 |backup|Tasks related to Yunohost backups.|
 |pkg|Tasks that install packages.|
+|linux|Tasks related to Linux OS.|
 
 ## License
 
diff --git a/roles/ynh_setup/README-FR.md b/roles/ynh_setup/README-FR.md
index 195760d0a2d370b30b8569db3682afed2ce8534a..1d3687e90cfd7742c264680612bdb5db526bba15 100644
--- a/roles/ynh_setup/README-FR.md
+++ b/roles/ynh_setup/README-FR.md
@@ -19,11 +19,24 @@ Les variables par défaut sont disponibles dans `default/main.yml` cependant il
 ynh_install_script_url: https://install.yunohost.org
 
 ynh_admin_password: MYINSECUREPWD_PLZ_OVERRIDE_THIS
+
+ynh_dir: "/data/yunohost"
+
+ynh_data_dirs:
+  - path: "{{ ynh_dir }}/etc"
+    link: "/etc/yunohost"
+  - path: "{{ ynh_dir }}/var"
+    link: "/var/www"
+ynh_data_dirs.enabled: True
 ```
 
 - `ynh_install_script_url` est le script d'installation des packages Yunohost, par défaut c'est le script officiel. Yunohost ne s'installe que sur Debian 10.
 - `ynh_admin_password` est le mot de passe permettant d'accéder à l’interface d’administration du serveur.
 
+- `ynh_data_dirs.enabled`: active les liens symboliques et permet de déplacer les répertoires de configurations et de données de YunoHost où vous le desirez. Mettez la valeur à `True`.
+- `ynh_data_dirs.path`: il s'agit des répertoires où stocker les données de configuration de Yunohost ainsi que les applications.
+- `ynh_data_dirs.link`: il s'agit des répertoire où seront fait les liens symboliques.
+
 ### Gestion des domaines
 
 ```yml
diff --git a/roles/ynh_setup/README.md b/roles/ynh_setup/README.md
index 4e816a99a1d5c86bf5ccd4b68872675e42ed1647..5b6afb27ae2849b11c13e258e6b87315ef6d554e 100644
--- a/roles/ynh_setup/README.md
+++ b/roles/ynh_setup/README.md
@@ -19,11 +19,24 @@ Default variables are available in `default/main.yml` however it is necessary to
 ynh_install_script_url: https://install.yunohost.org
 
 ynh_admin_password: MYINSECUREPWD_PLZ_OVERRIDE_THIS
+
+ynh_dir: "/data/yunohost"
+
+ynh_data_dirs:
+  - path: "{{ ynh_dir }}/etc"
+    link: "/etc/yunohost"
+  - path: "{{ ynh_dir }}/var"
+    link: "/var/www"
+ynh_data_dirs.enabled: True
 ```
 
 - `ynh_install_script_url` downloads official Yunohost script for installing Yunohost packages. Yunohost is only available on Debian 10.
 - `ynh_admin_password` is the password used to access to the server's administration interface.
 
+- `ynh_data_dirs.enabled`: Enables symbolic links and allows you to move YunoHost's configuration and data directories wherever you want. Set the value to `True`.
+- `ynh_data_dirs.path`: these are the directories where Yunohost configuration data and applications are stored.
+- `ynh_data_dirs.link`: this is the directory where symbolic links will be made.
+
 ### Domain management
 
 ```yml
diff --git a/roles/ynh_setup/defaults/main.yml b/roles/ynh_setup/defaults/main.yml
index 355c99f5d98b7e66ea539f30e314b6ca2ba3d5a3..67c12448f9ee079909b104eae8b4080bb9ca840a 100644
--- a/roles/ynh_setup/defaults/main.yml
+++ b/roles/ynh_setup/defaults/main.yml
@@ -23,6 +23,15 @@ ynh_install_script_url: https://install.yunohost.org
 
 ynh_admin_password: MYINSECUREPWD_PLZ_OVERRIDE_THIS
 
+ynh_dir: "/data/yunohost"
+
+ynh_data_dirs:
+  - path: "{{ ynh_dir }}/etc"
+    link: "/etc/yunohost"
+  - path: "{{ ynh_dir }}/var"
+    link: "/var/www"
+ynh_data_dirs_enabled: True
+
 # The list of Yunohost domains.
 ynh_main_domain: domain.tld
 ynh_extra_domains: null
diff --git a/roles/ynh_setup/tasks/main.yml b/roles/ynh_setup/tasks/main.yml
index 0105337b106005f921b9528829f86ff80a608881..a2d22ba0cb8f845552a5516384691729aa37e50d 100644
--- a/roles/ynh_setup/tasks/main.yml
+++ b/roles/ynh_setup/tasks/main.yml
@@ -27,40 +27,28 @@
   tags:
     - pkg
     - linux
-    - yunohost
 
-- name: Create apps and config directories
+- name: Create data and config subdirs of Yunohost
   ansible.builtin.file:
-    path: "{{ item }}"
+    path: "{{ item.path }}"
     state: directory
-    mode: 0770
-  loop:
-    - "{{ ynh_symlink.appdata_dir }}"
-    - "{{ ynh_symlink.conf_dir }}"
+    mode: "0755"
+  with_items:
+    - "{{ ynh_data_dirs }}"
   tags:
     - linux
-    - yunohost
-  when: ynh_symlink.enabled
+  when: ynh_data_dirs_enabled
 
-- name: Create symbolic link for Yunohost apps data directory
+- name: Create symbolic links for Yunohost subdirs
   ansible.builtin.file:
-    src: /var/www/
-    dest: "{{ ynh_symlink.appdata_dir }}/www_symlink"
+    src: "{{ item.path }}"
+    dest: "{{ item.link }}"
     state: link
+  with_items:
+    - "{{ ynh_data_dirs }}" 
   tags:
     - linux
-    - yunohost
-  when: ynh_symlink.enabled
-
-- name: Create symbolic link for Yunohost configuration directory
-  ansible.builtin.file:
-    src: /etc/yunohost/
-    dest: "{{ ynh_symlink.conf_dir }}/yunohost_symlink"
-    state: link
-  tags:
-    - linux
-    - yunohost
-  when: ynh_symlink.enabled
+  when: ynh_data_dirs_enabled
 
 - name: Test if Yunohost is already installed
   ansible.builtin.stat: path=/etc/yunohost/installed