Files
kutt-links-cleanup/README.md
Patrick Asmus f9e005cdc6 Initial
2026-07-03 22:29:15 +02:00

2.9 KiB

Techniverse Community

Kutt Links Cleanup

Bash-Script zum automatischen Aufräumen anonymer Links in einer selbst gehosteten Kutt-Instanz.

🏰 Website · 📰 Community · 🐘 Mastodon · 💬 Support


Was macht das Script?

Anonyme Links (ohne Account erstellt) werden gelöscht, wenn sie beispielhaft seit 365 Tagen nicht mehr aufgerufen wurden. Als Referenzdatum gilt:

  • Der letzte Aufruf (letzter Eintrag in der visits-Tabelle)
  • Falls der Link nie aufgerufen wurde: das Erstelldatum

Links von eingeloggten Usern werden nie angefasst.

Voraussetzungen

  • Kutt läuft als Docker-Setup mit einem PostgreSQL-Container namens kutt-db
  • Der ausführende User hat Zugriff auf docker exec

Installation

1. Script ablegen

mkdir -p /home/docker-projekte/kutt/scripts
cp kutt-links-cleanup.sh /home/docker-projekte/kutt/scripts/
chmod +x /home/docker-projekte/kutt/scripts/kutt-links-cleanup.sh

2. Cronjob einrichten

Täglich um 03:00 Uhr ausführen:

crontab -e

Folgende Zeile hinzufügen:

0 3 * * * /home/docker-projekte/kutt/scripts/kutt-links-cleanup.sh >> /home/docker-projekte/kutt/scripts/cleanup.log 2>&1

Verwendung

Dry Run (nur anzeigen, nichts löschen)

./kutt-links-cleanup.sh --dry-run

Zeigt alle Links an, die gelöscht werden würden — ohne etwas zu verändern.

./kutt-links-cleanup.sh

Log prüfen

cat /home/docker-projekte/kutt/scripts/cleanup.log

Konfiguration

Die Variablen stehen am Anfang des Scripts:

Variable Standard Beschreibung
CONTAINER kutt-db Name des PostgreSQL-Containers
DB_USER kutt Datenbank-Benutzer
DB_NAME kutt Datenbank-Name
MAX_AGE_DAYS 365 Tage ohne Zugriff bis zur Löschung

Technische Details

  • Gelöschte Links sind sofort aus der Kutt-Oberfläche verschwunden
  • Zugehörige Visit-Statistiken werden automatisch mitgelöscht (ON DELETE CASCADE)
  • Kutt nutzt Redis nur für Rate-Limiting, nicht als Link-Cache — es gibt kein Cache-Problem nach dem Löschen
  • Die freigewordenen Short-Link-Adressen können danach wieder vergeben werden



© Patrick Asmus · Techniverse Network · Lizenz