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