diff --git a/README.md b/README.md
index 6160bd5c8e4b1f2df88a87494b0410387a926ca1..18c70e9c772defbaec39e8f5adef251388e52e4f 100644
--- a/README.md
+++ b/README.md
@@ -37,7 +37,6 @@ Hosts from the following groups added to monitoring :
 * docker_privatebin
 * gitlab
 * odoo_server
-* owncloud_server
 
 Dependencies
 ------------
diff --git a/templates/nagios.yaml.j2 b/templates/nagios.yaml.j2
index 21cd21d9f9121f22620ad047546f0f51038b6a05..84d951cb31b17cf0a8cc6348df2abab09ec1de9e 100644
--- a/templates/nagios.yaml.j2
+++ b/templates/nagios.yaml.j2
@@ -15,11 +15,6 @@ services:
       public:
         ipv4_address: 192.168.239.2
       inverseproxy_shared:
-{% if inventory_hostname in groups.docker_auth %}
-      auth_default:
-    labels:
-      co.elastic.logs/enabled: "false"
-{% else %}
     labels:
       co.elastic.logs/enabled: "false"
       traefik.enable: "true"
@@ -27,13 +22,8 @@ services:
       traefik.http.routers.nagios.rule: "Host(`{{ nagios_url }}`)"
       traefik.http.routers.nagios.service: "nagios"
       traefik.http.services.nagios.loadbalancer.server.port: "80"
-{% endif %}
 
 networks:
-{% if inventory_hostname in groups.docker_auth %}
-  auth_default:
-    external: true
-{% endif %}
   inverseproxy_shared:
     external: true
   public:
diff --git a/templates/templates.cfg.j2 b/templates/templates.cfg.j2
index 0dc98d731d9d3cc889c54e5d30977013f0557e75..7979f4600fba8f1f5dc8b81deb56f300447435e8 100644
--- a/templates/templates.cfg.j2
+++ b/templates/templates.cfg.j2
@@ -90,77 +90,89 @@ define host{
 define servicegroup{
         servicegroup_name       web-services
         alias                   Services Web
-        members                 {% for host in groups['odoo_server'] | sort %}{{ host }},Odoo {{ hostvars[host].odoo_url }},{% endfor %}{% for host in groups['owncloud_server'] | sort %}{{ host }},OwnCloud {{ hostvars[host].cloud_url }},{% endfor %}{% for host in groups['docker_odoo'] | sort %}{% for name, values in hostvars[host].odoo_instances.items() | default([]) %}{% if values.url is defined %}{{ host }},{{ name }} server {{ values.url }},{% endif %}{% if values.domains is defined and values.domains is string %}{{ host }},{{ name }} server {{ values.domains }},{% else %}{% for domain in values.domains | default([]) %}{{ host }},{{ name }} server {{ domain }},{% endfor %}{% endif %}{% endfor %}{% endfor %}{% for host in groups['docker_nextcloud'] | sort %}{{ host }},Cloud Server {{ hostvars[host].cloud_url }}{% if not loop.last %},{% endif %}{% endfor %}
+        members                 {% for host in groups.odoo_server | default([])| sort %}{{ host }},Odoo {{ hostvars[host].odoo_url }},{% endfor %}{% for host in groups.docker_odoo | default([])| sort %}{% for name, values in hostvars[host].odoo_instances.items() | default([]) %}{% if values.url is defined %}{{ host }},{{ name }} server {{ values.url }},{% endif %}{% if values.domains is defined and values.domains is string %}{{ host }},{{ name }} server {{ values.domains }},{% else %}{% for domain in values.domains | default([]) %}{{ host }},{{ name }} server {{ domain }},{% endfor %}{% endif %}{% endfor %}{% endfor %}{% for host in groups.docker_nextcloud | default([]) | sort %}{{ host }},Cloud Server {{ hostvars[host].cloud_url }}{% if hostvars[host].cloud_onlyoffice is defined %}{{ host }},OnlyOffice Server {{ hostvars[host].cloud_onlyoffice_url }}{% endif %}{% if not loop.last %},{% endif %}{% endfor %}
 
         }
 
+{% if 'all' in groups %}
 define servicegroup{
         servicegroup_name       linux-version
         alias                   Versions Linux
-        members                 {{ groups['all'] | map('extract', hostvars, ['inventory_hostname']) | sort | join(',Linux Version,') }},Linux Version
+        members                 {{ groups.all | default([]) | map('extract', hostvars, ['inventory_hostname']) | sort | join(',Linux Version,') }},Linux Version
         }
 
 define servicegroup{
         servicegroup_name       disk-utilisation
         alias                   Utilisation du disque
-        members                 {{ groups['all'] | map('extract', hostvars, ['inventory_hostname']) | sort | join(',Espace Disque,') }},Espace Disque
+        members                 {{ groups.all | default([]) | map('extract', hostvars, ['inventory_hostname']) | sort | join(',Espace Disque,') }},Espace Disque
         }
 
 define servicegroup{
         servicegroup_name       cpu-utilisation
         alias                   Utilisation CPU
-        members                 {{ groups['all'] | map('extract', hostvars, ['inventory_hostname']) | sort | join(',Charge CPU,') }},Charge CPU
+        members                 {{ groups.all | default([]) | map('extract', hostvars, ['inventory_hostname']) | sort | join(',Charge CPU,') }},Charge CPU
         }
 
 define servicegroup{
         servicegroup_name       ram-utilisation
         alias                   Utilisation RAM
-        members                 {{ groups['all'] | map('extract', hostvars, ['inventory_hostname']) | sort | join(',Charge RAM,') }},Charge RAM
+        members                 {{ groups.all | default([]) | map('extract', hostvars, ['inventory_hostname']) | sort | join(',Charge RAM,') }},Charge RAM
         }
 
+{% endif %}
+{% if 'full_maintenance' in groups %}
 define servicegroup{
         servicegroup_name       fail2ban
         alias                   FAIL2BAN
-        members                 {{ groups['full_maintenance'] | map('extract', hostvars, ['inventory_hostname']) | sort | join(',Fail2ban,') }},Fail2ban
+        members                 {{ groups.full_maintenance | default([]) | map('extract', hostvars, ['inventory_hostname']) | sort | join(',Fail2ban,') }},Fail2ban
         }
 
+{% endif %}
 define servicegroup{
         servicegroup_name       services
         alias                   Services
-        members                 {{ groups['all'] | map('extract', hostvars, ['inventory_hostname']) | sort | join(',SSHD Service,') }},SSHD Service,{{ groups['odoo_server'] | union(groups['owncloud_server']) | map('extract', hostvars, ['inventory_hostname']) | sort | join(',Nginx Service,') }},Nginx Service,{{ groups['odoo_server'] | map('extract', hostvars, ['inventory_hostname']) | sort | join(',Odoo Service,') }},Odoo Service,{{ groups['owncloud_server'] | map('extract', hostvars, ['inventory_hostname']) | sort | join(',Owncloud Service,') }},Owncloud Service,{% for host in groups['full_maintenance'] | sort %}{% if hostvars[host].log_collection %}{{ host }},Filebeat Service,{% endif %}{% endfor %}{{ groups['all'] | map('extract', hostvars, ['inventory_hostname']) | sort | join(',Services en cours,') }},Services en cours,Nagios Server,Nagios Service
+        members                 {{ groups.all | default([]) | map('extract', hostvars, ['inventory_hostname']) | sort | join(',SSHD Service,') }},SSHD Service,{{ groups.odoo_server | default([]) | map('extract', hostvars, ['inventory_hostname']) | sort | join(',Nginx Service,') }},Nginx Service,{{ groups.odoo_server | default([]) | map('extract', hostvars, ['inventory_hostname']) | sort | join(',Odoo Service,') }},Odoo Service,{% for host in groups.full_maintenance | default([]) | sort %}{% if hostvars[host].log_collection %}{{ host }},Filebeat Service,{% endif %}{% endfor %}{{ groups.all | default([]) | map('extract', hostvars, ['inventory_hostname']) | sort | join(',Services en cours,') }},Services en cours,Nagios Server,Nagios Service
         }
 
+{% if 'all' in groups %}
 define servicegroup{
         servicegroup_name       ssh
         alias                   SSH
-        members                 {{ groups['all'] | map('extract', hostvars, ['inventory_hostname']) | sort | join(',SSH,') }},SSH
+        members                 {{ groups.all | default([]) | map('extract', hostvars, ['inventory_hostname']) | sort | join(',SSH,') }},SSH
         }
 
 define servicegroup{
         servicegroup_name       connected-users
         alias                   Utilisateurs Connectes
-        members                 {{ groups['all'] | map('extract', hostvars, ['inventory_hostname']) | sort | join(',Utilisateurs Connectes,') }},Utilisateurs Connectes
+        members                 {{ groups.all | default([]) | map('extract', hostvars, ['inventory_hostname']) | sort | join(',Utilisateurs Connectes,') }},Utilisateurs Connectes
         }
 
+{% endif %}
+{% if 'docker' in groups %}
 define servicegroup{
         servicegroup_name       docker_proxy
         alias                   Proxy Dockers
-        members                 {{ groups['docker'] | map('extract', hostvars, ['inventory_hostname']) | sort | join(',Docker Proxy,') }},Docker Proxy
+        members                 {{ groups.docker | default([]) | map('extract', hostvars, ['inventory_hostname']) | sort | join(',Docker Proxy,') }},Docker Proxy
         }
 
+{% endif %}
+{% if 'docker_odoo' in groups %}
 define servicegroup{
         servicegroup_name       docker_odoo
         alias                   Odoo Dockers
-        members                 {% for host in groups['docker_odoo'] | sort %}{% set outer_loop = loop %}{% for name in hostvars[host].odoo_instances.keys() | default([]) %}{{ host }},Docker {{ name }}{% if not (outer_loop.last and loop.last) %},{% endif %}{% endfor %}{% if hostvars[host].restrict_internet_access and hostvars[host].whitelisted_urls is defined %}{% if loop.last %},{% endif %}{{ host }},Docker Odoo Whitelists{% if not loop.last %},{% endif %}{% endif %}{% endfor %}
+        members                 {% for host in groups.docker_odoo | default([]) | sort %}{% set outer_loop = loop %}{% for name in hostvars[host].odoo_instances.keys() | default([]) %}{{ host }},Docker {{ name }}{% if not (outer_loop.last and loop.last) %},{% endif %}{% endfor %}{% if hostvars[host].restrict_internet_access and hostvars[host].whitelisted_urls is defined %}{% if loop.last %},{% endif %}{{ host }},Docker Odoo Whitelists{% if not loop.last %},{% endif %}{% endif %}{% endfor %}
 
         }
 
+{% endif %}
+{% if 'docker_nextcloud' in groups %}
 define servicegroup{
         servicegroup_name       docker_cloud
         alias                   Cloud Dockers
-        members                 {{ groups['docker_nextcloud'] | map('extract', hostvars, ['inventory_hostname']) | sort | join(',Docker Cloud,') }},Docker Cloud
+        members                 {{ groups.docker_nextcloud | default([]) | map('extract', hostvars, ['inventory_hostname']) | sort | join(',Docker Cloud,') }},Docker Cloud
         }
 
+{% endif %}
 # Generic service definition template - This is NOT a real service, just a template!
 
 define service{
diff --git a/templates/vps.cfg.j2 b/templates/vps.cfg.j2
index c87798afb5a73d7f27fe6e8541f45abda2ccef5a..6964e2655a9e89028b22d4d6cf5e72408bc9c679 100644
--- a/templates/vps.cfg.j2
+++ b/templates/vps.cfg.j2
@@ -7,7 +7,7 @@
 ###############################################################################
 
 # Define a host for the local machine
-{% for host in groups['all'] | sort %}
+{% for host in groups['all'] | default([]) | sort %}
 {% if host != inventory_hostname %}
 define host{
         use                     linux-server
@@ -35,24 +35,30 @@ define host{
 
 # Define an optional hostgroup for Linux machines
 
+{% if 'all' in groups and 'docker' in groups %}
 define hostgroup{
         hostgroup_name  servers_no_docker
         alias           Serveurs Sans Docker
         members         {{ groups['all'] | difference(groups['docker']) | map('extract', hostvars, ['inventory_hostname']) | sort | join(',') }}
         }
 
+{% endif %}
+{% if 'docker_direct_internet_access' in groups %}
 define hostgroup{
         hostgroup_name  servers_docker_internet_access
         alias           Serveurs Dockers avec accès à Internet
         members         {{ groups['docker_direct_internet_access'] | map('extract', hostvars, ['inventory_hostname']) | sort | join(',') }}
         }
 
+{% endif %}
+{% if 'docker_restrict_internet_access' in groups %}
 define hostgroup{
         hostgroup_name  servers_docker_no_internet_access
         alias           Serveurs Dockers sans accès à Internet
         members         {{ groups['docker_restrict_internet_access'] | map('extract', hostvars, ['inventory_hostname']) | sort | join(',') }}
         }
 
+{% endif %}
 
 
 ###############################################################################
@@ -63,6 +69,7 @@ define hostgroup{
 ###############################################################################
 ###############################################################################
 
+{% if 'all' in groups %}
 # Define a service to check the Linux version
 
 define service{
@@ -72,6 +79,8 @@ define service{
         check_command                   check_nrpe!check_version
         }
 
+{% endif %}
+{% if 'full_maintenance' in groups %}
 # Define a service to check the Linux packages to be installed
 
 define service{
@@ -82,6 +91,8 @@ define service{
         notifications_enabled           0
         }
 
+{% endif %}
+{% if 'all' in groups %}
 # Define a service to check the disk space of the root partition
 # on the local machine.
 
@@ -92,7 +103,8 @@ define service{
         check_command                   check_nrpe!check_hda1
         }
 
-{% for host in groups['all'] | sort %}
+{% endif %}
+{% for host in groups['all'] | default([]) | sort %}
 {% if hostvars[host].raid_config is defined %}
 {% for device in hostvars[host].raid_config.devices %}
 define service{
@@ -105,6 +117,7 @@ define service{
 {% endfor %}
 {% endif %}
 {% endfor %}
+{% if 'backup_server' in groups %}
 define service{
         use                             daily-service
         host_name                       {{ groups['backup_server'] | map('extract', hostvars, ['inventory_hostname']) | sort | join(',') }}
@@ -126,6 +139,8 @@ define service{
         check_command                   check_nrpe!check_cloud_storage
         }
 
+{% endif %}
+{% if 'all' in groups %}
 # Define a service to check the number of currently logged in
 # users on the local machine.
 
@@ -147,14 +162,18 @@ define service{
         check_command                   check_nrpe!check_total_procs
         }
 
+{% endif %}
+{% if 'odoo_server' in groups %}
 # Define services to check for running processes
 define service{
         use                             generic-service
-        host_name                       {{ groups['odoo_server'] | union(groups['owncloud_server']) | map('extract', hostvars, ['inventory_hostname']) | sort | join(',') }}
+        host_name                       {{ groups['odoo_server'] | map('extract', hostvars, ['inventory_hostname']) | sort | join(',') }}
         service_description             Nginx Service
         check_command                   check_nrpe!check_procs_nginx
         }
 
+{% endif %}
+{% if 'all' in groups %}
 define service{
         use                             generic-service
         host_name                       {{ groups['all'] | map('extract', hostvars, ['inventory_hostname']) | sort | join(',') }}
@@ -162,7 +181,8 @@ define service{
         check_command                   check_nrpe!check_procs_sshd
         }
 
-{% for host in groups['full_maintenance'] | sort %}
+{% endif %}
+{% for host in groups['full_maintenance'] | default([]) | sort %}
 {% if hostvars[host].log_collection %}
 define service{
         use                             generic-service
@@ -174,6 +194,7 @@ define service{
 {% endif %}
 {% endfor %}
 
+{% if 'all' in groups %}
 # Define a service to check the load on the local machine.
 define service{
         use                             generic-service,graphed-service
@@ -198,6 +219,8 @@ define service{
         check_command                   check_ssh_port!{{ default_sshd_port }}
         }
 
+{% endif %}
+{% if 'full_maintenance' in groups %}
 # FAIL2BAN
 define service{
         use                             generic-service,graphed-service
@@ -206,6 +229,8 @@ define service{
         check_command                   check_nrpe!check_fail2ban
         }
 
+{% endif %}
+{% if 'docker' in groups %}
 # Docker Proxy
 define service{
         use                             generic-service,graphed-service
@@ -214,14 +239,18 @@ define service{
         check_command                   check_nrpe!check_docker_proxy
         }
 
+{% endif %}
+{% if 'docker_nextcloud' in groups %}
 # Docker Cloud
 define service{
         use                             generic-service,graphed-service
-        host_name                       {{ groups['docker_nextcloud'] | map('extract', hostvars, ['inventory_hostname']) | sort | join(',') }}
+        host_name                       {{ groups.docker_nextcloud | default([]) | map('extract', hostvars, ['inventory_hostname']) | sort | join(',') }}
         service_description             Docker Cloud
         check_command                   check_nrpe!check_docker_cloud
         }
 
+{% endif %}
+{% if 'docker_drawio' in groups %}
 # Docker Draw.io
 define service{
         use                             generic-service,graphed-service
@@ -230,6 +259,8 @@ define service{
         check_command                   check_nrpe!check_docker_drawio
         }
 
+{% endif %}
+{% if 'docker_etherpad' in groups %}
 # Docker Etherpad
 define service{
         use                             generic-service,graphed-service
@@ -238,6 +269,8 @@ define service{
         check_command                   check_nrpe!check_docker_etherpad
         }
 
+{% endif %}
+{% if 'docker_framadate' in groups %}
 # Docker Framadate
 define service{
         use                             generic-service,graphed-service
@@ -246,6 +279,8 @@ define service{
         check_command                   check_nrpe!check_docker_framadate
         }
 
+{% endif %}
+{% if 'docker_privatebin' in groups %}
 # Docker PrivateBin
 define service{
         use                             generic-service,graphed-service
@@ -254,6 +289,8 @@ define service{
         check_command                   check_nrpe!check_docker_privatebin
         }
 
+{% endif %}
+{% if 'gitlab' in groups %}
 # Gitlab
 define service{
         use                             generic-service,graphed-service
@@ -269,9 +306,10 @@ define service{
         check_command                   check_nrpe!check_gitlab_health
         }
 
+{% endif %}
 # Definition des services HTTP
 
-{% for host in groups['docker_odoo'] | sort %}
+{% for host in groups['docker_odoo'] | default([]) | sort %}
 # {{ host }} Docker Odoo
 {% if hostvars[host].restrict_internet_access and hostvars[host].whitelisted_urls is defined %}
 # Docker Odoo Whitelists
@@ -342,7 +380,7 @@ define service{
 {% endif %}
 {% endfor %}
 
-{% for host in groups['docker_nagios'] | sort %}
+{% for host in groups['docker_nagios'] | default([]) | sort %}
 define service{
         use                             daily-service
         host_name                       {{ host }}
@@ -352,7 +390,7 @@ define service{
 
 {% endfor %}
 
-{% for host in groups['docker_drawio'] | sort %}
+{% for host in groups['docker_drawio'] | default([]) | sort %}
 # {{ host }} Docker Draw.io
 define service{
         use                             generic-service
@@ -363,7 +401,7 @@ define service{
 
 {% endfor %}
 
-{% for host in groups['docker_etherpad'] | sort %}
+{% for host in groups['docker_etherpad'] | default([]) | sort %}
 # {{ host }} Docker Etherpad
 define service{
         use                             generic-service
@@ -374,7 +412,7 @@ define service{
 
 {% endfor %}
 
-{% for host in groups['docker_framadate'] | sort %}
+{% for host in groups['docker_framadate'] | default([]) | sort %}
 # {{ host }} Docker Framadate
 define service{
         use                             generic-service
@@ -385,7 +423,7 @@ define service{
 
 {% endfor %}
 
-{% for host in groups['gitlab'] | sort %}
+{% for host in groups['gitlab'] | default([]) | sort %}
 # {{ host }} GitLab
 define service{
         use                             generic-service
@@ -396,7 +434,7 @@ define service{
 
 {% endfor %}
 
-{% for host in groups['docker_privatebin'] | sort %}
+{% for host in groups['docker_privatebin'] | default([]) | sort %}
 # {{ host }} Docker PrivateBin
 define service{
         use                             generic-service
@@ -407,7 +445,7 @@ define service{
 
 {% endfor %}
 
-{% for host in groups['odoo_server'] | sort %}
+{% for host in groups['odoo_server'] | default([]) | sort %}
 # {{ host }} Odoo
 define service{
         use                             generic-service
@@ -424,21 +462,3 @@ define service{
         }
 
 {% endfor %}
-
-{% for host in groups['owncloud_server'] | sort %}
-# {{ host }} Owncloud
-define service{
-        use                             generic-service
-        host_name                       {{ host }}
-        service_description             OwnCloud {{ hostvars[host].cloud_url }}
-        check_command                   check_https!'{{ hostvars[host].cloud_url }}'!/index.php/login
-        }
-
-define service{
-        use                             generic-service
-        host_name                       {{ host }}
-        service_description             Owncloud Service
-        check_command                   check_nrpe!check_procs_owncloud
-        }
-
-{% endfor %}