diff --git a/host_vars/webserver b/host_vars/webserver
index fe0b27d53326602c061acb1e48d2de9eeca9fcc0..22cc64720e6890542630923f5fc0ff8e56ccf09d 100644
--- a/host_vars/webserver
+++ b/host_vars/webserver
@@ -103,6 +103,7 @@ alert:
     - { name: "mail_mailman-nginx_1" }
     - { name: "matrix_ma1sd_1" }
     - { name: "matrix_db_1" }
+    - { name: "matrix_purgemediacache_1" }
     - { name: "matrix_synapse_1" }
     - { name: "matterbridge_cw_1" }
     - { name: "matterbridge_wz_1" }
diff --git a/webserver/docker_matrix/tasks/main.yml b/webserver/docker_matrix/tasks/main.yml
index 990d843ee8d0f0a4dc436db788f39a2e68b3e0e4..c3f42d07bbce36ba4b11e67f3081f823e23c67c5 100644
--- a/webserver/docker_matrix/tasks/main.yml
+++ b/webserver/docker_matrix/tasks/main.yml
@@ -5,6 +5,7 @@
    - { path: /srv/shared/noreply_email_pass, length: -1 }
    - { path: /srv/ldap/secret/ldap_readonly_pass, length: -1 }
    - { path: /srv/matrix/postgres_user_pass,  length: 24 }
+   - { path: /srv/matrix/admin_access_token,  length: -1 } # Get in Element fo an Admin User: Settings > Help > Advanced 
 
 
 - name: create folder struct for matrix
@@ -31,7 +32,9 @@
 
 
 - name: Konfig-Dateien erstellen
-  template: src={{ item }} dest=/srv/matrix/{{ item }}
+  template: 
+    src: "{{ item }}" 
+    dest: "/srv/matrix/{{ item }}"
   with_items:
     - docker-compose.yml
     - rest_auth_provider.py
@@ -41,6 +44,15 @@
   register: configs
 
 
+- name: Script-Dateien erstellen 
+  template: 
+    src: "{{ item }}" 
+    dest: "/srv/matrix/{{ item }}"
+    mode: "ug+rwx"
+  with_items:
+    - purgemediacache.sh
+
+
 - name: stop matrix docker
   docker_compose:
     project_src: /srv/matrix/
diff --git a/webserver/docker_matrix/templates/docker-compose.yml b/webserver/docker_matrix/templates/docker-compose.yml
index 4858c15bd339f10305c78ddb7b7ca25cd37bd331..d8392105790d6ad5cd97b9ea2fa43e2479950877 100644
--- a/webserver/docker_matrix/templates/docker-compose.yml
+++ b/webserver/docker_matrix/templates/docker-compose.yml
@@ -68,6 +68,21 @@ services:
       - default
       - web
 
+
+  purgemediacache:
+    
+    image: jsonfry/curl-cron:latest 
+    restart: always
+    depends_on:
+      - synapse
+    volumes:
+      - /srv/matrix/purgemediacache.sh:/curl.sh
+    environment:
+      CRON_SCHEDULE: "0 7 * * *"
+    networks:
+      - default
+
+
 networks:
   web:
     external: true
diff --git a/webserver/docker_matrix/templates/purgemediacache.sh b/webserver/docker_matrix/templates/purgemediacache.sh
new file mode 100644
index 0000000000000000000000000000000000000000..bd3f4f3e08117291b0acf9e756e7965cc9e70b32
--- /dev/null
+++ b/webserver/docker_matrix/templates/purgemediacache.sh
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+set -e
+
+echo "$(date) - Start"
+
+TS_NOW=$(date +%s)
+DELAY=$((30*24*60*60))
+TS=$((TS_NOW-$DELAY))
+
+curl -X POST --insecure --header "Authorization: Bearer {{ admin_access_token }}" https://{{ domain }}/_synapse/admin/v1/purge_media_cache?before_ts=$(($TS*1000))
+
+echo "$(date) End"
\ No newline at end of file