diff --git a/composer.json b/composer.json
index 13f94353c56b3f117914c9524e334c642d1a5844..ca0d67e84ec2775f6a1dbd77b0a417ead5b57370 100644
--- a/composer.json
+++ b/composer.json
@@ -28,7 +28,7 @@
         "php": ">=7.2",
         "composer-plugin-api": "^1||^2",
         "lakedrops/composer-json-utils": "^2.0||dev-master",
-        "lakedrops/docker-traefik": "^1.4||dev-master"
+        "lakedrops/docker-traefik": "^2.0||dev-master"
     },
     "require-dev": {
         "composer/composer": "^1||^2",
diff --git a/templates/docker-compose.yml.twig b/templates/docker-compose.yml.twig
index b1b7eb5ef3992a9e90ba23710874779505862251..031f710819e1aeda88d359688767b611c861f26c 100644
--- a/templates/docker-compose.yml.twig
+++ b/templates/docker-compose.yml.twig
@@ -80,9 +80,10 @@ services:
     volumes:
       - {{ projectroot }}:/var/www/html
     labels:
-      traefik.backend: '{{ projectname }}_{{ webserver.type }}_1'
-      traefik.port: '80'
-      traefik.frontend.rule: 'Host:{{ projectname }}.{{ traefik.domain }}{% for domain in extradomains|default([]) %},{{ domain }}{% endfor %}'
+      traefik.enable: true
+      traefik.network: {{ projectname }}
+      traefik.http.routers.whoami.rule: Host(`{{ projectname }}.{{ traefik.domain }}`)
+      #{% for domain in extradomains|default([]) %},{{ domain }}{% endfor %}'
 {% if varnish.enable %}
 
   varnish:
@@ -94,9 +95,9 @@ services:
       VARNISH_BACKEND_HOST: {{ webserver.type }}
       VARNISH_BACKEND_PORT: 80
     labels:
-      traefik.backend: '{{ projectname }}_varnish_1'
-      traefik.port: '6081'
-      traefik.frontend.rule: 'Host:varnish.{{ projectname }}.{{ traefik.domain }}'
+      traefik.enable: true
+      traefik.network: {{ projectname }}
+      traefik.http.routers.whoami.rule: Host(`varnish.{{ projectname }}.{{ traefik.domain }}`)
 {% endif %}
 
   redis:
@@ -108,9 +109,10 @@ services:
     environment:
       ADMINER_SALT: adminer-salt
     labels:
-      traefik.backend: '{{ projectname }}_adminer_1'
-      traefik.port: '9000'
-      traefik.frontend.rule: 'Host:adminer.{{ projectname }}.{{ traefik.domain }}'
+      traefik.enable: true
+      traefik.network: {{ projectname }}
+      traefik.http.routers.whoami.rule: Host(`adminer.{{ projectname }}.{{ traefik.domain }}`)
+      #traefik.port: '9000'
 {% elseif dbbrowser.type == 'pma' %}
   pma:
     image: 'phpmyadmin/phpmyadmin:5'
@@ -121,9 +123,9 @@ services:
       PHP_UPLOAD_MAX_FILESIZE: 1G
       PHP_MAX_INPUT_VARS: 1G
     labels:
-      traefik.backend: '{{ projectname }}_pma_1'
-      traefik.port: '80'
-      traefik.frontend.rule: 'Host:pma.{{ projectname }}.{{ traefik.domain }}'
+      traefik.enable: true
+      traefik.network: {{ projectname }}
+      traefik.http.routers.whoami.rule: Host(`pma.{{ projectname }}.{{ traefik.domain }}`)
 {% endif %}
 {% if solr.enable %}
 
@@ -132,17 +134,19 @@ services:
     environment:
       SOLR_HEAP: 1024m
     labels:
-      traefik.backend: '{{ projectname }}_solr_1'
-      traefik.port: '8983'
-      traefik.frontend.rule: 'Host:solr.{{ projectname }}.{{ traefik.domain }}'
+      traefik.enable: true
+      traefik.network: {{ projectname }}
+      traefik.http.routers.whoami.rule: Host(`solr.{{ projectname }}.{{ traefik.domain }}`)
+      #traefik.port: '8983'
 {% endif %}
 
   mailhog:
     image: 'mailhog/mailhog'
     labels:
-      traefik.backend: '{{ projectname }}_mailhog_1'
-      traefik.port: '8025'
-      traefik.frontend.rule: 'Host:mailhog.{{ projectname }}.{{ traefik.domain }}'
+      traefik.enable: true
+      traefik.network: {{ projectname }}
+      traefik.http.routers.whoami.rule: Host(`mailhog.{{ projectname }}.{{ traefik.domain }}`)
+      #traefik.port: '8025'
 {% if node.enable %}
 
   nodejs:
@@ -150,9 +154,10 @@ services:
     environment:
        NODE_SERVICE_KEY: '{{ node.key }}'
     labels:
-      traefik.backend: 'nodejs'
-      traefik.port: '8080'
-      traefik.frontend.rule: 'Host:nodejs.{{ projectname }}.{{ traefik.domain }}'
+      traefik.enable: true
+      traefik.network: {{ projectname }}
+      traefik.http.routers.whoami.rule: Host(`nodejs.{{ projectname }}.{{ traefik.domain }}`)
+      #traefik.port: '8080'
     volumes:
       - {{ projectroot }}/{{ node.path }}:/app
     command: sh -c 'npm install && npm run start'
@@ -161,9 +166,10 @@ services:
     image: 'node:alpine'
     working_dir: /app
     labels:
-      traefik.backend: '{{ projectname }}_node_1'
-      traefik.port: '3000'
-      traefik.frontend.rule: 'Host:front.{{ projectname }}.{{ traefik.domain }}'
+      traefik.enable: true
+      traefik.network: {{ projectname }}
+      traefik.http.routers.whoami.rule: Host(`front.{{ projectname }}.{{ traefik.domain }}`)
+      #traefik.port: '3000'
     expose:
       - '3000'
     volumes:
@@ -208,9 +214,10 @@ services:
     environment:
       WEBGRIND_PROFILER_DIR: '/mnt/files/xdebug/profiler'
     labels:
-      traefik.backend: '{{ projectname }}_webgrind_1'
-      traefik.port: '8080'
-      traefik.frontend.rule: 'Host:webgrind.{{ projectname }}.{{ traefik.domain }}'
+      traefik.enable: true
+      traefik.network: {{ projectname }}
+      traefik.http.routers.whoami.rule: Host(`webgrind.{{ projectname }}.{{ traefik.domain }}`)
+      #traefik.port: '8080'
     volumes:
       - {{ projectroot }}/files:/mnt/files
 {% endif %}