diff --git a/deployment/environment/group_vars/all/vitamui_services.yml.rej b/deployment/environment/group_vars/all/vitamui_services.yml.rej
deleted file mode 100644
index 1747c1cb6044f6ccc2fb5a43210db469777a9ffd..0000000000000000000000000000000000000000
--- a/deployment/environment/group_vars/all/vitamui_services.yml.rej
+++ /dev/null
@@ -1,17 +0,0 @@
-diff a/deployment/environment/group_vars/all/vitamui_services.yml b/deployment/environment/group_vars/all/vitamui_services.yml	(rejected hunks)
-@@ -157,6 +157,7 @@ vitamui_services:
-     dirs:
-       config: /vitamui/conf/ui-identity
-       log:    /vitamui/log/ui-identity
-+      assets: /vitamui/assets/ui-identity
- 
-     server_name: "{{ vitamui_env_name }}-identity.teamvitamui.com"
-     java_opts: -Xms128m -Xmx512m -Djava.net.preferIPv4Stack=true -Djava.net.preferIPv4Addresses=true
-@@ -211,6 +212,7 @@ vitamui_services:
-     dirs:
-       config: /vitamui/conf/ui-portal
-       log:    /vitamui/log/ui-portal
-+      assets: /vitamui/assets/ui-portal
-     server_name: "{{ vitamui_env_name }}-portal.teamvitamui.com"
-     java_opts: -Xms128m -Xmx512m -Djava.net.preferIPv4Stack=true -Djava.net.preferIPv4Addresses=true
-     access_log_enabled: false
diff --git a/deployment/environments/group_vars/all/vitamui_vars.yml b/deployment/environments/group_vars/all/vitamui_vars.yml
index 43bca4eeb63419adb21e35be3bacc3ba3add39ea..6b4ce70c5c37a9aed0ece81ffe17d9212d463a28 100755
--- a/deployment/environments/group_vars/all/vitamui_vars.yml
+++ b/deployment/environments/group_vars/all/vitamui_vars.yml
@@ -41,6 +41,7 @@ vitamui:
   identity:
     host: "identity.service.consul"
     vitamui_component: "ui-identity"
+    vitamui_component_type: "ui"
     package_name: "vitamui-ui-identity"
     service_name: "vitamui-ui-identity"
     store_name: "ui-identity"
@@ -55,11 +56,13 @@ vitamui:
       logback_total_size_cap: "5GB"
       root_log_level: "ERROR"
       vitamui_level: "INFO"
+    # Custom directories linked to the module
     dirs:
-      assets: "/tmp/assets"
+      - "{{ vitam_defaults.folder.root_path }}/conf/assets"
   identity_admin:
     host: "identity-admin.service.consul"
     vitamui_component: "ui-identity-admin"
+    vitamui_component_type: "ui"
     package_name: "vitamui-ui-identity-admin"
     service_name: "vitamui-ui-identity-admin"
     store_name: "ui-identity-admin"
@@ -74,11 +77,13 @@ vitamui:
       logback_total_size_cap: "5GB"
       root_log_level: "ERROR"
       vitamui_level: "INFO"
+    # Custom directories linked to the module
     dirs:
-      assets: "/tmp/assets"
+      - "{{ vitam_defaults.folder.root_path }}/conf/assets"
   portal:
     host: "portal.service.consul"
     vitamui_component: "ui-portal"
+    vitamui_component_type: "ui"
     package_name: "vitamui-ui-portal"
     service_name: "vitamui-ui-portal"
     store_name: "ui-portal"
@@ -93,11 +98,13 @@ vitamui:
       logback_total_size_cap: "5GB"
       root_log_level: "ERROR"
       vitamui_level: "INFO"
+    # Custom directories linked to the module
     dirs:
-      assets: "/tmp/assets"
+      - "{{ vitam_defaults.folder.root_path }}/conf/assets"
   iam_external:
     host: "iam-external.service.consul"
     vitamui_component: "iam-external"
+    vitamui_component_type: "external"
     package_name: "vitamui-iam-external"
     store_name: "iam-external"
     service_name: "vitamui-iam-external"
@@ -115,6 +122,7 @@ vitamui:
   iam_internal:
     host: "iam-internal.service.consul"
     vitamui_component: "iam-internal"
+    vitamui_component_type: "internal"
     package_name: "vitamui-iam-internal"
     store_name: "iam-internal"
     service_name: "vitamui-iam-internal"
@@ -137,6 +145,7 @@ vitamui:
   cas_server:
     host: "cas-server.service.consul"
     vitamui_component: "cas-server"
+    vitamui_component_type: "external"
     package_name: "vitamui-cas-server"
     store_name: "cas-server"
     service_name: "vitamui-cas-server"
@@ -155,6 +164,7 @@ vitamui:
   security_internal:
     host: "security-internal.service.consul"
     vitamui_component: "security-internal"
+    vitamui_component_type: "internal"
     package_name: "vitamui-security-internal"
     store_name: "security-internal"
     service_name: "vitamui-security-internal"
diff --git a/deployment/roles/vitamui/files/ui/assets/vitamui-logo.png b/deployment/roles/vitamui/files/ui/assets/vitamui-logo.png
new file mode 100644
index 0000000000000000000000000000000000000000..5fccc526e489c1e1b41fa6a4a6c5eb24a8012435
Binary files /dev/null and b/deployment/roles/vitamui/files/ui/assets/vitamui-logo.png differ
diff --git a/deployment/roles/vitamui/handlers/main.yml b/deployment/roles/vitamui/handlers/main.yml
index 119cf20016f9f523a6c9a4236664903c103fb843..55587c25515319dced3d42b653c9517be1b7efd3 100644
--- a/deployment/roles/vitamui/handlers/main.yml
+++ b/deployment/roles/vitamui/handlers/main.yml
@@ -3,8 +3,7 @@
   service:
     name: "{{ service_consul }}"
     state: restarted
-  listen: restart service
-  when: service_name == 'vitamui-cas-server'
+  listen: restart consul
 
 - name: restart the service
   service:
diff --git a/deployment/roles/vitamui/tasks/cas-server.yml b/deployment/roles/vitamui/tasks/cas-server.yml
new file mode 100644
index 0000000000000000000000000000000000000000..31f3a30bc97d4ebdc84e282efd9c0ad572ade28a
--- /dev/null
+++ b/deployment/roles/vitamui/tasks/cas-server.yml
@@ -0,0 +1,10 @@
+- name: apply consul conf when cas-server ONLY
+  template:
+    src: "cas-server/vitamui-cas-server.json.j2"
+    dest: "{{ vitamui_conf_consul }}/vitamui-cas-server.json"
+    owner: "{{ vitamui_defaults.users.vitamui }}"
+    group: "{{ vitamui_defaults.users.group }}"
+    mode: "{{ vitamui_defaults.folder.folder_permission }}"
+  notify:
+    - restart consul
+    - restart service
\ No newline at end of file
diff --git a/deployment/roles/vitamui/tasks/iam-internal.yml b/deployment/roles/vitamui/tasks/iam-internal.yml
new file mode 100644
index 0000000000000000000000000000000000000000..d44233249897cf3ab86551a02546dcffcbc1f6cc
--- /dev/null
+++ b/deployment/roles/vitamui/tasks/iam-internal.yml
@@ -0,0 +1,15 @@
+- name: "Copy vitam certificates"
+  copy:
+    src: "{{ item }}"
+    dest: "{{ vitamui_folder_conf }}/{{ item | basename }}"
+    owner: "{{ vitamui_defaults.users.vitamui }}"
+    group: "{{ vitamui_defaults.users.group }}"
+    mode: "{{ vitamui_defaults.folder.folder_permission }}"
+  with_fileglob:
+    - "{{ inventory_dir }}/keystores/client-vitam/*.*"
+  when:
+    - vitam_cert is defined
+  tags:
+    - update_vitam_configuration
+  notify:
+    - restart service
\ No newline at end of file
diff --git a/deployment/roles/vitamui/tasks/main.yml b/deployment/roles/vitamui/tasks/main.yml
index 09c1fae51a91aa8fc39bbcd1c94a744a4a88e51e..aad7ad14a9a5b16b103e339ea112726957eea4fa 100644
--- a/deployment/roles/vitamui/tasks/main.yml
+++ b/deployment/roles/vitamui/tasks/main.yml
@@ -52,13 +52,17 @@
   notify:
     - restart service
 
-- name: Ensure that the templates sub-directory exists
+- name: Create custom sub-directories
   file:
-    path: "{{ vitamui_folder_conf }}/templates"
+    path: "{{ item }}"
     state: directory
     owner: "{{ vitamui_defaults.users.vitamui }}"
     group: "{{ vitamui_defaults.users.group }}"
     mode: "{{ vitamui_defaults.folder.folder_permission }}"
+  loop: "{{ vitamui_struct.dirs }}"
+  when: 
+    - vitamui_struct.dirs is defined
+    - vitamui_struct.dirs|length > 0
   notify:
     - restart service
 
@@ -137,32 +141,13 @@
   notify:
     - restart service
 
-- name: "Copy vitam certificates"
-  copy:
-    src: "{{ item }}"
-    dest: "{{ vitamui_folder_conf }}/{{ item | basename }}"
-    owner: "{{ vitamui_defaults.users.vitamui }}"
-    group: "{{ vitamui_defaults.users.group }}"
-    mode: "{{ vitamui_defaults.folder.folder_permission }}"
-  with_fileglob:
-    - "{{ inventory_dir }}/keystores/client-vitam/*.*"
-  when:
-    - vitam_cert is defined
-  tags:
-    - update_vitam_configuration
-  notify:
-    - restart service
+- name: "Execute sub-tasks for the component type: {{ vitamui_struct.vitamui_component_type }}" 
+  include_tasks: "{{ vitamui_struct.vitamui_component_type }}.yml"
+  when: "{{ lookup('pipe', 'test -f {{ role_path }}/tasks/{{ vitamui_struct.vitamui_component_type }}.yml || echo nofile') == \"\" }}"
 
-- name: apply consul conf when cas-server ONLY
-  template:
-    src: "cas-server/vitamui-cas-server.json.j2"
-    dest: "{{ vitamui_conf_consul }}/vitamui-cas-server.json"
-    owner: "{{ vitamui_defaults.users.vitamui }}"
-    group: "{{ vitamui_defaults.users.group }}"
-    mode: "{{ vitamui_defaults.folder.folder_permission }}"
-  when: vitamui_struct.service_name == 'vitamui-cas-server'
-  notify:
-    - restart service
+- name: "Execute sub-tasks for the component: {{ vitamui_struct.vitamui_component }}" 
+  include_tasks: "{{ vitamui_struct.vitamui_component }}.yml"
+  when: "{{ lookup('pipe', 'test -f {{ role_path }}/tasks/{{ vitamui_struct.vitamui_component }}.yml || echo nofile') == \"\" }}"
 
 - name: flush_handlers
   meta: flush_handlers
diff --git a/deployment/roles/vitamui/tasks/ui.yml b/deployment/roles/vitamui/tasks/ui.yml
new file mode 100644
index 0000000000000000000000000000000000000000..90c315f9bbf585965abbaa8185c688080fbbf553
--- /dev/null
+++ b/deployment/roles/vitamui/tasks/ui.yml
@@ -0,0 +1,21 @@
+- name: Ensure asset directory is present
+  file:
+    path: "{{ vitam_defaults.folder.root_path}}/conf/assets"
+    state: directory
+    owner: "{{ vitamui_defaults.users.vitamui }}"
+    group: "{{ vitamui_defaults.users.group }}"
+    mode: "{{ vitamui_defaults.folder.folder_permission }}"
+
+- name: Deploy custom files for UI.
+  copy:
+    src: "{{ item }}"
+    dest: "{{ vitam_defaults.folder.root_path}}/conf/assets"
+    owner: "{{ vitamui_defaults.users.vitamui }}"
+    group: "{{ vitamui_defaults.users.group }}"
+    mode: "{{ vitamui_defaults.folder.folder_permission }}"
+  with_fileglob:
+    - ../files/ui/assets/*
+  tags:
+    - update_vitamui_certificates
+  notify:
+    - restart service
\ No newline at end of file
diff --git a/deployment/roles/vitamui/templates/ui-identity-admin/application.yml.j2 b/deployment/roles/vitamui/templates/ui-identity-admin/application.yml.j2
index 4adbe9c74504f38b330a67d21b3e9a1b37c4a2c1..d5db880d640e0dcf809fb0a4088217d28569c3df 100644
--- a/deployment/roles/vitamui/templates/ui-identity-admin/application.yml.j2
+++ b/deployment/roles/vitamui/templates/ui-identity-admin/application.yml.j2
@@ -62,7 +62,7 @@ ui-identity:
         key-password: {{ password_truststore }} # TODO OMA : revoir
       hostname-verification: false
 {% endif %}
-  assets: "{{ vitamui_struct.ui_identity_admin.dirs.assets }}"
+  assets: "{{ vitam_defaults.folder.root_path }}/conf/assets"
   base-url:
 {% if vitamui.portal.base_url is defined %}
     portal: "{{ vitamui.portal.base_url }}"
@@ -101,8 +101,4 @@ cas:
   ssl:
     trust-store: {{ vitamui_folder_conf }}/truststore_{{ vitamui_certificate_type }}.jks
     trust-store-password: {{ password_truststore }}
-{% endif %}
-
-theme:
-  main-color: {{}}
-  secondary-color: {{}}
+{% endif %}
\ No newline at end of file
diff --git a/deployment/roles/vitamui/templates/ui-identity/application.yml.j2 b/deployment/roles/vitamui/templates/ui-identity/application.yml.j2
index 8b2f022eaf932f700082e73917b554de604480ff..e81d6487a15d373f17764925bd82ed81dd72ef6c 100644
--- a/deployment/roles/vitamui/templates/ui-identity/application.yml.j2
+++ b/deployment/roles/vitamui/templates/ui-identity/application.yml.j2
@@ -59,7 +59,7 @@ ui-identity:
         key-password: {{ password_truststore }}
       hostname-verification: false
 {%endif %}
-  assets: "{{ vitamui_struct.ui_identity.dirs.assets }}"
+  assets: "{{ vitam_defaults.folder.root_path }}/conf/assets"
   base-url:
 {% if vitamui.portal.base_url is defined %}
     portal: "{{ vitamui.portal.base_url }}"
diff --git a/deployment/roles/vitamui/templates/ui-portal/application.yml.j2 b/deployment/roles/vitamui/templates/ui-portal/application.yml.j2
index 9a0b4f88b0d9c2475fcd7e6a4c005319edc3d7f8..fdc4d72f4042af936b06bd92fa493f55506266e2 100644
--- a/deployment/roles/vitamui/templates/ui-portal/application.yml.j2
+++ b/deployment/roles/vitamui/templates/ui-portal/application.yml.j2
@@ -54,7 +54,7 @@ ui-portal:
         key-path: {{ vitamui_folder_conf }}/truststore_{{ vitamui_certificate_type }}.jks
         key-password: {{ password_truststore }} # TODO OMA : revoir
       hostname-verification: false
-  assets: "{{ vitamui_struct.ui_portal.dirs.assets }}"
+  assets: "{{ vitam_defaults.folder.root_path }}/conf/assets"
 {% endif %}
 {% if vitamui.portal.base_url is undefined %}
   base-url: