diff --git a/intern/docker_mqtt/tasks/main.yml b/intern/docker_mqtt/tasks/main.yml
index f4c51a4cd5ecc92bafc2b4d40424f4b83088e112..5ec3addedfe1668ecc9be993d9e4f5a577080f42 100644
--- a/intern/docker_mqtt/tasks/main.yml
+++ b/intern/docker_mqtt/tasks/main.yml
@@ -1,28 +1,31 @@
 ---
 - include: ../functions/get_secret.yml
   with_items:
-   - { path: /srv/mqtt/influxdb_password, length: 12 }
-   - { path: /srv/mqtt/influxdb_token, length: 24 }
+   - { path: "{{ basedir }}/influxdb_password", length: 12 }
+   - { path: "{{ basedir }}/influxdb_token", length: 24 }
 
-- name: create folder struct for mqtt
+- name: "create folder struct for {{ servicename }}"
   file: 
     path: "{{ item }}"
     state: "directory"
   with_items:
-    - /srv/mqtt/
-    - /srv/mqtt/data/
-    - /srv/mqtt/log/
-    - /srv/mqtt/influxdb-data/
-    - /srv/mqtt/influxdb-conf/
+    - "{{ basedir }}"
+    - "{{ basedir }}/data/"
+    - "{{ basedir }}/log/"
+    - "{{ basedir }}/influxdb-data/"
+    - "{{ basedir }}/influxdb-conf/"
 
-- name: create config files
-  template: src={{ item }} dest=/srv/mqtt/{{ item }}
+- name: "create {{ servicename }} config files"
+  template: 
+    src: "{{ item }}" 
+    dest: "{{ basedir }}/{{ item }}"
   with_items: 
     - docker-compose.yml
+    - mosquitto.conf
     - telegraf.conf
 
-- name: start mqtt docker
+- name: "start {{ servicename }} docker"
   docker_compose:
-    project_src: /srv/mqtt/
+    project_src: "{{ basedir }}"
     state: present
 
diff --git a/intern/docker_mqtt/templates/docker-compose.yml b/intern/docker_mqtt/templates/docker-compose.yml
index cc3ef80f00d8c58edf76558685a103c175c55e2e..52e5c837bbc9ada90d78ea0cdc6cdc9e4c393d83 100644
--- a/intern/docker_mqtt/templates/docker-compose.yml
+++ b/intern/docker_mqtt/templates/docker-compose.yml
@@ -4,25 +4,25 @@ services:
 
   app:
 
-    image: eclipse-mosquitto:1.6.12
+    image: eclipse-mosquitto:2.0.15
     restart: always
     ports:
-      - 1883:1883 
-      - 9001:9001
+      - "{{mqtt_port}}:1883" 
     volumes:
-      - /srv/mqtt/data:/mosquitto/data
-      - /srv/mqtt/log:/mosquitto/log
+      - {{ basedir }}/mosquitto.conf:/mosquitto/config/mosquitto.conf
+      - {{ basedir }}/data:/mosquitto/data
+      - {{ basedir }}/log:/mosquitto/log
 
 
   influxdb:
 
-    image: influxdb:2.0.9
+    image: influxdb:2.5.0
     restart: always
     ports:
       - {{ int_ip4 }}:{{ influxdb_port }}:8086
     volumes:
-      - /srv/mqtt/influxdb-data:/var/lib/influxdb2
-      - /srv/mqtt/influxdb-conf:/etc/influxdb2
+      - {{ basedir }}/influxdb-data:/var/lib/influxdb2
+      - {{ basedir }}/influxdb-conf:/etc/influxdb2
     environment:
       DOCKER_INFLUXDB_INIT_MODE: setup
       DOCKER_INFLUXDB_INIT_USERNAME: mqtt
@@ -31,12 +31,13 @@ services:
       DOCKER_INFLUXDB_INIT_BUCKET: mqtt
       DOCKER_INFLUXDB_INIT_ADMIN_TOKEN: {{ influxdb_token }}
 
+
   telegraf:
 
-    image: telegraf:1.20.3
+    image: telegraf:1.22.4
     restart: always
     depends_on: 
       - app
       - influxdb
     volumes:
-      - /srv/mqtt/telegraf.conf:/etc/telegraf/telegraf.conf:ro
+      - {{ basedir }}/telegraf.conf:/etc/telegraf/telegraf.conf:ro
diff --git a/intern/docker_mqtt/templates/mosquitto.conf b/intern/docker_mqtt/templates/mosquitto.conf
new file mode 100644
index 0000000000000000000000000000000000000000..e8a62f5e44598e164890a61eb1d4f1e3684be8ef
--- /dev/null
+++ b/intern/docker_mqtt/templates/mosquitto.conf
@@ -0,0 +1,7 @@
+
+listener {{ mqtt_port }}
+
+allow_anonymous true
+
+persistence true
+persistence_location /mosquitto/data/
diff --git a/site.yml b/site.yml
index 78529fc92ce2c2dcc06ae4f6bd381d8feb006dad..4ebad002b01c3deecb2ac40b191757ad83f6f46f 100644
--- a/site.yml
+++ b/site.yml
@@ -52,9 +52,10 @@
         basedir: /srv/heimdall 
       }
     - { 
-        role: intern/docker_mqtt, 
-        tags: mqtt, 
+        role: intern/docker_mqtt,   tags: mqtt, 
         servicename: mqtt,
+        basedir: /srv/mqtt, 
+        mqtt_port: 1883,
         influxdb_port: 18086
       }
     - {