Dies ist eine alte Version des Dokuments!
Container 'matrix-synapse'
Ressourcen
- 4 GB RAM
- 4 Cores
- 5 GB HDD (root-fs)
- 25 GB HDD (/var/www)
System
- interne IPs
- 10.2.0.16, fd00:10:2:0::16
- 10.3.0.16, fd00:10:3:0::16
Dienste
- matrix-synapse
Installation
- Standard-Template mit Benutzern
Matrix Synapse
- Matrix-Synapse Repository hinzufügen
- sudo apt-get install -y lsb-release wget apt-transport-https
- sudo wget -O /usr/share/keyrings/matrix-org-archive-keyring.gpg https://packages.matrix.org/debian/matrix-org-archive-keyring.gpg
- echo "deb [signed-by=/usr/share/keyrings/matrix-org-archive-keyring.gpg] https://packages.matrix.org/debian/ $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/matrix-org.list
- sudo apt-get update
- Matrix-Synapse installieren
- sudo apt-get install matrix-synapse-py3
- Konfigurationen erstellen
FIXME
- Dienst aktivieren und neustarten
- sudo systemctl enable 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
- curl -XPOST -d '{"type":"m.login.password", "user":"USERNAME", "password":"PASSWORD"}' "http://127.0.0.1:8008/_matrix/client/r0/login"
- Skript hinzufügen und generierten Token verwenden
#!/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 - Berechtigungen für Skript anpassen
- chmod 700 /usr/local/bin/synapse_media_cleanup.sh
- Cronjob erstellen
- crontab -e
0 2 * * * /usr/local/bin/synapse_media_cleanup.sh > /var/log/synapse_media_cleanup.log 2>&1
Backup mit Borgmatic
- Installation siehe mariadb
- Konfiguration
... location: # List of source directories to backup (required). Globs and # tildes are expanded. source_directories: - /etc - /home - /root - /var/log - /var/lib/matrix-synapse ...