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.

📑 Ähnliche Beiträge
Vergrößern einer Partition in Ubuntu

Stell dir vor, deine Ubuntu-Installation braucht einfach mehr „Luft zum Atmen“. Angenommen, du hast eine 100GB-SSD, auf der 30GB für Read more

Asciinema 3: Installation der neuesten Version des Terminal Session Recorder

Asciinema hat sich als das Tool der Wahl für das Aufzeichnen und Teilen von Terminal-Sessions etabliert. In der kommenden Version Read more

Fritz!Box per Bash-Script neustarten

Heute möchte ich dir ein nützliches Bash-Script vorstellen, das mir persönlich sehr geholfen hat. Es handelt sich um ein "Fritz!Box Read more

Linux: Einfach E-Mails versenden mit msmtp

Oft ist es sinnvoll, wenn man sich von seinem Linux System Benachrichtigungsmails versenden lassen kann. Anwendungsbeispiele wären zum Beispiel der Read more

OwnCloud: Den Footer im Login-Screen bearbeiten

In diesem Beitrag möchte ich den Footer der OwnCloud anpassen. Das bearbeiten des Footers geht ziemlich einfach und schnell. Ich Read more

Vielen Dank fürs Teilen!