diff --git a/handlers/main.yml b/handlers/main.yml
new file mode 100644
index 0000000000000000000000000000000000000000..4b9322981090fdb7323759b36155286d75976f89
--- /dev/null
+++ b/handlers/main.yml
@@ -0,0 +1,16 @@
+---
+# file: roles/matterbridge/handlers/main.yml
+
+- name: Re-create the matterbridge container
+  docker_container:
+    name: matterbridge
+    image: 42wim/matterbridge
+    state: started
+    recreate: yes
+    restart_policy: always
+    volumes:
+      - /etc/matterbridge.toml:/matterbridge.toml
+    log_driver: fluentd
+    log_options:
+      fluentd-address: 'tcp://localhost:24224'
+      tag: app.matterbridge
diff --git a/tasks/main.yml b/tasks/main.yml
index 849548762092449000ea0860c44ec5d368d59bac..17f07a4ca40d22348cc8ae17364fcc95e576eeed 100644
--- a/tasks/main.yml
+++ b/tasks/main.yml
@@ -17,23 +17,12 @@
         group: root
         mode: 0664
 
-    - name: Start Docker container
-      docker_container:
-        name: matterbridge
-        image: 42wim/matterbridge
-        # pull: yes
-        recreate: yes
-        restart: yes
-        # command: -debug
-        state: started
-        restart_policy: always
-        volumes:
-          - /etc/matterbridge.toml:/matterbridge.toml
-        log_driver: fluentd
-        log_options:
-          fluentd-address: 'tcp://localhost:24224'
-          tag: app.matterbridge
+    - name: Pull docker image
+      docker_image:
+        name: 42wim/matterbridge
+        source: pull
+        force_source: yes
+      notify:
+        - Re-create the matterbridge container
 
   when: not excluded_roles or "matterbridge" not in excluded_roles
-
-# docker run --name matterbridge --restart always -v=/etc/matterbridge.toml:/matterbridge.toml --log-driver fluentd --log-opt fluentd-address='tcp://localhost:24224' --log-opt tag='app.matterbridge' -d 42wim/matterbridge