Matrix Räume in Synapse aufräumen – einfach automatisiert
„80 % aller gespeicherten Daten werden nie wieder angeschaut.“
Diese Statistik trifft nicht nur auf riesige Datensilos zu, sondern auch auf unsere Matrix-Chaträume, die mit Matrix Synapse laufen. Systemmeldungen, CI/CD-Benachrichtigungen, Webhook-Events – sie rauschen täglich in unsere Räume und… bleiben dort. Für immer. Es sei denn, du sorgst selbst für Ordnung!
Ich zeige dir heute ein kleines Bash-Script, das genau das tut: Es hält deine Matrix-Räume sauber. Automatisch und Zuverlässig.
Warum du deine Matrix-Räume regelmäßig bereinigen solltest
Matrix ist eine tolle Plattform. Offen, dezentral, selbst gehostet – alles, was du willst. Aber genau wie bei jedem anderen System gilt: Was nicht aufgeräumt wird, wächst dir irgendwann über den Kopf.
Monitoring-Benachrichtigungen, RSS-Feeds, automatisierte Commits, Bot-Meldungen – sie alle fluten deine Räume. Und obwohl sie kurzfristig wichtig sind, verlieren sie schnell ihren Wert. Warum also dauerhaft aufbewahren?
Wenn du dein Synapse-Backend schlank halten, Storage sparen und für Klarheit in der Timeline sorgen willst, ist ein regelmäßiger Datenputz genau das Richtige.
Die Lösung: Täglicher Matrix-Purge per Script
Ich habe ein kleines Bash-Script gebaut, das du direkt integrieren kannst. Es prüft, welche Nachrichten in bestimmten Matrix-Räumen älter als 7 bzw. 30 Tage sind – und löscht diese gezielt über die Synapse Admin API.
Das klingt vielleicht banal, aber die Umsetzung bringt echten Mehrwert:
- Du definierst klar, welche Räume aufgeräumt werden sollen.
- Du steuerst je Raum, wie lange Nachrichten erhalten bleiben dürfen.
- Du bekommst Logs mit Status, wann was gelöscht wurde.
- Du kannst das Ganze per Cronjob automatisieren – und musst nie wieder manuell aufräumen.
So funktioniert’s
Das Script nutzt die Synapse Admin API (/purge_history
) und trennt deine Räume in zwei Kategorien:
- ROOMS_7DAYS – Räume, in denen alles älter als 7 Tage gelöscht wird (z. B. Alerts, CI/CD-Events)
- ROOMS_30DAYS – Räume, die etwas langlebiger sein dürfen (z. B. Community-Chats, Status-Meldungen)
Jeden Abend um 23 Uhr könnte das Script laufen. Es berechnet die passenden Zeitstempel, schickt die entsprechenden curl
-Requests an Synapse und schreibt die Ergebnisse in ein Logfile. So behältst du jederzeit die Kontrolle.
So richtest du den Cronjob ein
Damit das Script jeden Tag zuverlässig ausgeführt wird, brauchst du nicht viel – ein einfacher Cronjob reicht völlig aus. In meinem Fall läuft das Script täglich um 23:00 Uhr.
0 23 * * * bash /home/scripts/default/matrix_prune-messages.v1.sh >/dev/null 2>&1
Du kannst diesen Eintrag ganz einfach mit crontab -e
in deine Benutzer-Crontab einfügen.
Dein Einstiegspunkt zum Aufräumen
Wenn du das Script selbst ausprobieren willst, findest du es hier:
🔗 matrix_prune-messages.v1.sh – zum Repository
Einmal eingerichtet, läuft es jeden Tag für dich – ganz automatisch. Und du kannst dich wieder um die wichtigen Dinge kümmern.