Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
dienste:bytecluster0002:matrix-synapse [27.01.2023 20:14] – angelegt mape2kdienste:bytecluster0002:matrix-synapse [03.11.2026 08:47] (aktuell) – State Compressor mape2k
Zeile 1: Zeile 1:
-====== Container 'matrix-element' ======+====== Container 'matrix-synapse' ======
 ===== Ressourcen ===== ===== Ressourcen =====
  
Zeile 36: Zeile 36:
     * **sudo systemctl enable matrix-synapse.service**     * **sudo systemctl enable matrix-synapse.service**
     * **sudo systemctl restart matrix-synapse.service**     * **sudo systemctl restart matrix-synapse.service**
 +
 +==== Cronjobs zur Bereinigung von Matrix Synapse ====
 +
 +=== Media Cleanup ===
 +
 +Der Media Cleanup bereinigt Mediendateien, die über Matrix geteilt wurden und ein bestimmtes Alter erreicht haben.
 +Die aktuelle Schwelle liegt bei **2 Jahren**. Mediendateien, die älter sind, werden entfernt.
 +
 +  - Access Token für Matrix Administrator lokal erzeugen
 +    * **<nowiki>curl -XPOST -d '{"type":"m.login.password", "user":"USERNAME", "password":"PASSWORD"}' "http://127.0.0.1:8008/_matrix/client/r0/login"</nowiki>**
 +  - Skript hinzufügen und generierten Token verwenden<file|/usr/local/bin/synapse_media_cleanup.sh>
 +#!/bin/bash
 +
 +TOKEN="XXXX"
 +
 +PROTOCOL="http"
 +SERVER="127.0.0.1"
 +PORT=8008
 +
 +# Calculate date
 +TIMESTAMP=$(date +%s000 --date "2 years ago")
 +
 +# Build API URLs
 +API_URL_MEDIA_LOCAL="$PROTOCOL://$SERVER:$PORT/_synapse/admin/v1/media/delete?before_ts=$TIMESTAMP"
 +API_URL_MEDIA_CACHE="$PROTOCOL://$SERVER:$PORT/_synapse/admin/v1/purge_media_cache?before_ts=$TIMESTAMP"
 +
 +# Check requiirements
 +if ! which jq > /dev/null; then
 +  echo "jq not found. Please install required package!"
 +  exit 1
 +fi
 +
 +# Log
 +log(){
 +  >&2 echo "${@:2}"
 +  echo "${@:2}" | logger -i -t synapse_media_cleanup -p local0.$1
 +}
 +
 +# Log error message
 +logError(){
 +  log err "$@"
 +}
 +
 +# Log info message
 +logInfo(){
 +  log info "$@"
 +}
 +
 +# Clean up local media
 +echo "Clean up local media ..."
 +RESPONSE=$(curl --silent --fail-with-body --header "Authorization: Bearer $TOKEN" -X POST $API_URL_MEDIA_LOCAL)
 +if [[ $? -ne 0 ]]; then
 +  # Curl error
 +  logError "Request to API failed: ${RESPONSE}"
 +else
 +  logInfo "Removed $(echo $RESPONSE | jq '.total') entries from local media"
 +fi
 +
 +# Clean up media cache
 +echo "Clean up media cache ..."
 +RESPONSE=$(curl --silent --fail-with-body --header "Authorization: Bearer $TOKEN" -X POST $API_URL_MEDIA_CACHE)
 +if [[ $? -ne 0 ]]; then
 +  # Curl error
 +  logError "Request to API failed: ${RESPONSE}"
 +else
 +  logInfo "Removed $(echo $RESPONSE | jq '.deleted') entries from media cache"
 +fi
 +</file>
 +  - Berechtigungen für Skript anpassen
 +    * **<nowiki>chmod 700 /usr/local/bin/synapse_media_cleanup.sh</nowiki>**
 +  - Cronjob erstellen
 +    * **<nowiki>crontab -e</nowiki>**<file>0 2 * * *       /usr/local/bin/synapse_media_cleanup.sh > /var/log/synapse_media_cleanup.log 2>&1
 +</file>
 +
 +=== State Compressor ===
 +Der [[https://github.com/matrix-org/rust-synapse-compress-state|State Compressor]] reduziert die Einträge in der Tabelle state_groups_state in PostgreSQL und hält so die Datenbank kompakt.
 +
 +  - Build des State Compressors auf einer externen VM mit gleichem OS wie der Server matrix-synapse nach [[https://github.com/matrix-org/rust-synapse-compress-state#building|Anleitung]]
 +  - Ordner erstellen
 +    * **<nowiki>mkdir /usr/local/bin/compressor</nowiki>** 
 +  - Dateien **synapse_auto_compressor/target/debug/synapse_auto_compressor** und **synapse_auto_compressor/target/debug/synapse_compress_state** in den **Ordner /usr/local/bin/compressor** übertragen
 +  - Skript erstellen<file|/usr/local/bin/compressor/synapse_auto_compressor.sh>
 +#!/bin/bash
 +
 +# Run compressor with CHUNK_SIZE=1000 and CHUNKS_TO_COMPRESS=10000000
 +/usr/local/bin/compressor/synapse_auto_compressor -p postgresql://PGSQL-USER:"PGSQL-PASS"@@10.3.0.102/synapse -c 1000 -n 1000000
 +</file>
 +  - Berechtigungen für Skript anpassen
 +    * **<nowiki>chmod 700 /usr/local/bin/compressor/synapse_auto_compressor.sh</nowiki>**
 +  - Cronjob erstellen
 +    * **<nowiki>crontab -e</nowiki>**<file>0 4 * * *       /usr/local/bin/compressor/synapse_auto_compressor.sh > /var/log/synapse_auto_compressor.log 2>&1
 +</file>
 +
 +==== Backup mit Borgmatic ====
 +
 +  - Installation siehe [[mariadb]]
 +  - Konfiguration <file|/etc/borgmatic/config.yaml>
 +...
 +location:
 +    # List of source directories to backup (required). Globs and
 +    # tildes are expanded.
 +    source_directories:
 +        - /etc
 +        - /home
 +        - /root
 +        - /var/log
 +        - /var/lib/matrix-synapse
 +...
 +</file>
  • dienste/bytecluster0002/matrix-synapse.1674850456.txt.gz
  • Zuletzt geändert: 27.01.2023 20:14
  • von mape2k