
Kutt ist ein leistungsstarker Open-Source-URL-Shortener, der sich durch seine einfache Installation und Benutzerfreundlichkeit auszeichnet. In diesem Blogbeitrag zeigen wir dir, wie du Kutt mithilfe von Docker auf deiner Synology DiskStation installieren kannst – ohne SSH-Zugriff und nur mit dem Container Manager in DSM 7.2. Diese Anleitung ist speziell für DSM 7.2 optimiert.
Voraussetzungen
Bevor wir mit der Installation beginnen, stelle sicher, dass folgende Voraussetzungen erfüllt sind:
- Synology DiskStation mit DSM 7.2: Diese Anleitung ist für DSM 7.2 optimiert.
- Docker installiert: Installiere Docker über das Paket-Zentrum deiner DiskStation, falls noch nicht geschehen.
- Container Manager: Der Container Manager ist in DSM 7.2 der Nachfolger von Docker und wird für die Verwaltung der Container verwendet.
- Deine Diskstation sollte aus dem Internet erreichbar sein. Wie Du das machst findest Du in diesem Beitrag.
Schritt 1: Arbeitsverzeichnis erstellen
Zuerst erstellen wir ein Verzeichnis, in dem alle Daten für Kutt gespeichert werden. Dies sorgt dafür, dass deine Einstellungen und Daten auch nach einem Neustart des Containers erhalten bleiben.
- Öffne File Station auf deiner DiskStation.
- Navigiere zu
/volume1/docker/
und erstelle einen neuen Ordner namens kutt. - Innerhalb des
kutt
-Ordners erstellst du zwei weitere Unterordner:- db: Hier wird die SQLite-Datenbank gespeichert.
- custom: Dieser Ordner dient für benutzerdefinierte Anpassungen.
Schritt 2: Container im Container Manager erstellen
Nun richten wir den Kutt-Container über den Container Manager ein. Dies ist die grafische Oberfläche in DSM 7.2, mit der du Docker-Container verwalten kannst.
- Öffne den Container Manager auf deiner DiskStation.
- Klicke auf Projekt (oben links) und dann auf Erstellen.
- Gib dem Projekt einen Namen, z.B. kutt.
- Wähle den Pfad zum Arbeitsverzeichnis aus, das wir zuvor erstellt haben (
/volume1/docker/kutt
). - Klicke auf docker-compose.yml erstellen.
Schritt 3: docker-compose.yml
erstellen
Im nächsten Schritt erstellen wir die docker-compose.yml
-Datei, die die Konfiguration für den Kutt-Container enthält. Dies kannst du direkt im Container Manager erledigen.
Klicke im Container Manager auf Datei erstellen und wähle docker-compose.yml aus.
Füge den folgenden Inhalt in die Datei ein:
version: '3.7'
services:
server:
image: kutt/kutt:latest # Offizielles Kutt-Image
container_name: kutt-server
restart: unless-stopped
volumes:
- /volume1/docker/kutt/db:/var/lib/kutt # Persistente Speicherung für SQLite
- /volume1/docker/kutt/custom:/kutt/custom # Benutzerdefinierte Anpassungen
environment:
DB_FILENAME: "/var/lib/kutt/data.sqlite"
NODE_ENV: "production"
JWT_SECRET: "dein_geheimer_token" # Token hier eintragen
DEFAULT_DOMAIN: "example.com" # Standarddomain anpassen
ADMIN_EMAILS: "admin@example.com" # Admin-Mail setzen
DISALLOW_ANONYMOUS_LINKS: "true" # Anonyme Links deaktivieren
ports:
- "3050:3000" # Kutt auf Port 3050 erreichbar machen
networks:
- kutt-network
networks:
kutt-network:
driver: bridge
ACHTUNG: Ändere hier den Wert von JWT_SECRET, sowie deine Admin-Email.
Schritt 4: JWT Secret generieren
Damit Kutt sicher funktioniert, benötigst du einen geheimen Token (JWT_SECRET
). Dieser Token wird für die Authentifizierung verwendet und sollte sicher aufbewahrt werden.
- Generiere einen zufälligen 32-stelligen Token. Du kannst dazu einen Online-Token-Generator verwenden, wie z.B. diesen hier.
- Kopiere den generierten Token und ersetze den Platzhalter
dein_geheimer_token
in derdocker-compose.yml
-Datei mit diesem Wert. - Ersetze “example.com” mit diener eigenen produktiv Domain.
- Erstze Admin-Mail mit deiner eigenen Emailadresse.
Schritt 5: Container starten
Nachdem die Konfiguration abgeschlossen ist, klicken wir auf “weiter“.
Webportal via Webstation können wir überspringen.
Setzte einen Haken bei “Projekt starten nachdem es erstellt wurde“
Jetzt musst du kurz Warten bis alles erledig ist.
Schritt 6: Kutt aufrufen
Nachdem der Container gestartet wurde, ist Kutt unter der IP-Adresse deiner DiskStation und dem Port 3050
erreichbar.
- Öffne einen Browser und gib folgende Adresse ein:
http://deine-diskstation-ip:3050 - Du solltest nun die Kutt-Weboberfläche sehen.
Fehlerbehebung
Falls Kutt nicht wie erwartet funktioniert, kannst du die Logs überprüfen, um mögliche Fehler zu identifizieren:
- Öffne den Container Manager.
- Wähle den kutt-server-Container aus.
- Klicke auf Details und dann auf Logs, um die Logs anzuzeigen.
Stelle außerdem sicher, dass der Port 3050
nicht von einem anderen Dienst belegt ist. Falls nötig, kannst du den Port in der docker-compose.yml
-Datei anpassen.
Überprüfe die Firewall (falls aktiviert) Deiner Disksstation.
Schritt 7: Domain über DynDNS auf der DiskStation erreichbar machen
Um deine Domain (oder alternativ deine Synology.me-Adresse) auf deiner DiskStation erreichbar zu machen, musst du einen DynDNS-Dienst einrichten. Dies ermöglicht es, dass deine Domain immer auf die aktuelle IP-Adresse deiner DiskStation verweist, auch wenn sich diese ändert.
- Öffne die Systemsteuerung deiner DiskStation.
- Navigiere zu Externer Zugriff und klicke auf DDNS.
- Klicke auf Hinzufügen, um einen neuen DynDNS-Dienst zu erstellen.
- Wähle deinen DNS-Provider aus der Liste aus. Falls dein Provider nicht aufgeführt ist, kannst du Custom Provider auswählen und die notwendigen Informationen manuell eingeben.
- Gib deine Domain ein (z.B.
web.modernmaverick.net
) und konfiguriere die Einstellungen gemäß den Anforderungen deines DNS-Providers. - Speichere die Einstellungen und stelle sicher, dass der DynDNS-Dienst aktiviert ist.
WICHTIG: Stelle sicher das in den DNS-EInstellungen Deiner Domain DynDNS aktiviert ist.
Schritt 8: SSL-Zertifikat für die Domain einrichten
Um deine Domain mit einem SSL-Zertifikat zu verschlüsseln, kannst du ein kostenloses Zertifikat von Let’s Encrypt verwenden.
- Öffne die Systemsteuerung deiner DiskStation.
- Navigiere zu Sicherheit und klicke auf Zertifikate.
- Klicke auf Hinzufügen und wähle Neues Zertifikat hinzufügen.
- Wähle Ein Zertifikat von Let’s Encrypt beziehen aus.
- Gib deine Domain ein (z.B.
web.modern-maverick.net
) und klicke auf Übernehmen. - Nachdem das Zertifikat erstellt wurde, weise es deiner Domain zu. Gehe dazu zurück zur Zertifikatsübersicht und klicke auf Einstellungen.
- Wähle deine Domain aus und weise das neu erstellte Zertifikat zu.
Schritt 9: Reverse Proxy einrichten
Um Kutt über deine Domain mit SSL zu erreichen, musst du einen Reverse Proxy einrichten.
- Öffne die Systemsteuerung deiner DiskStation.
- Navigiere zu Anmeldeportal und klicke auf Erweitert.
- Klicke auf Reverse Proxy und dann auf Erstellen.
- Gib einen Namen für den Reverse Proxy ein (z.B.
Kutt
). - Wähle als Quellprotokoll
HTTPS
und gib deine Domain ein (z.B.web.modernmaverick.net
). - Setze den Quellport auf
443
. - Wähle als Ziel deine DiskStation (entweder
localhost
oder die IP-Adresse deiner DiskStation). - Setze den Zielport auf
3050
(den Port, auf dem Kutt läuft). - Klicke auf Erweitert -> Benutzerdefinierte Header und füge
WebSocket
hinzu. - Speichere die Einstellungen.
Schritt 10: SSL-Zertifikat für den Reverse Proxy zuweisen
- Gehe zurück zur Systemsteuerung und navigiere zu Sicherheit > Zertifikate.
- Stelle sicher, dass deine Domain das richtige Zertifikat verwendet. Falls nicht, weise das Zertifikat erneut zu.
- Überprüfe, ob der Reverse Proxy korrekt funktioniert, indem du deine Domain im Browser aufrufst (z.B.
https://web.modernmaverick.net
).
Schritt 11: Kutt über die Domain aufrufen
Nachdem du den Reverse Proxy eingerichtet und das SSL-Zertifikat zugewiesen hast, kannst du Kutt über deine Domain aufrufen. Öffne einen Browser und gib deine Domain ein (z.B. https://web.modernmaverick.net
). Du solltest nun die Kutt-Weboberfläche sehen, die über SSL verschlüsselt ist.
Fazit
Herzlichen Glückwunsch! Du hast erfolgreich Kutt auf deiner Synology DiskStation installiert – ohne SSH-Zugriff und nur mit dem Container Manager in DSM 7.2. Mit Kutt kannst du nun deine eigenen Kurzlinks erstellen und verwalten. Bei Bedarf kannst du weitere Anpassungen vornehmen, z.B. durch die Integration einer externen Datenbank wie MySQL oder PostgreSQL.
Viel Spaß beim Nutzen deines eigenen URL-Shorteners! Falls du Fragen oder Anregungen hast, hinterlasse gerne einen Kommentar.
Universelle Verwendung der Docker Compose Datei
Die in dieser Anleitung verwendete docker-compose.yml
-Datei ist nicht nur für die Synology DiskStation geeignet, sondern kann auch in anderen Docker Compose-Umgebungen verwendet werden. Egal, ob du auf einem Linux-Server, einem Windows-PC mit Docker Desktop oder einer anderen NAS-Lösung arbeitest – die Konfiguration bleibt weitgehend gleich. Du musst lediglich sicherstellen, dass die Volumes (also die Pfade zu den Verzeichnissen) an deine Umgebung angepasst werden.
Hey super Videos & Blog. Habe mich mal hier an dem Kutt probiert & die .yml per Portainer installiert.
Leider komme ich nicht weiter. Am Anfang kommt immer ich soll ein Konto erstellen Mail & Passwort. Dann Automatische Weiterleitung zum Login. Dort natürlich die Daten wie vorher eingeben ….. kurze Weiterleitung & wieder zurück zum LogIn. Was mache ich falsch ?
Hey, installierst Du Kutt über Pottainer auf einer Diskstation? Ich habe den Blogbeitrag noch um einiges ergänzt.
Hier dennoch ein paar Lösungsvorschläge die Du versuchen kannst.
1. Datenbank und Verzeichnisse prüfen: Stelle sicher, dass die SQLite-Datenbank (data.sqlite) im Verzeichnis /volume1/docker/kutt/db korrekt erstellt wurde.
2. Umgebungsvariablen überprüfen: Kontrolliere, ob JWT_SECRET, DEFAULT_DOMAIN und ADMIN_EMAILS korrekt gesetzt sind. Der JWT_SECRET sollte ein sicherer, zufälliger String sein.
3. Logs analysieren: Überprüfe die Container-Logs mit docker logs kutt-server, um Fehlermeldungen zu identifizieren, die auf das Problem hinweisen könnten.
Heute ist ein Video zum Thema Kutt-Installation online gegangen – schau mal rein, vielleicht hilft es weiter!
Hey, erstmal vielen Dank für die schnelle Antwort! Hast du das Video extra heute Morgen erstellt? Top Arbeit!
Ich habe es jetzt nochmal bis auf die Sache mit dem Reverse Proxy so gemacht, wie du es beschrieben hast, und auch die Logs gecheckt. Kutt läuft ohne Probleme, bis auf dieses LogIn-Problem. Ich habe mit meiner Mail und einem Passwort, wie im Video gezeigt, einen Account erstellt. Das LogIn funktioniert soweit auch, aber danach leitet er mich wieder zum LogIn zurück. Zum Verrücktwerden! Wäre echt dankbar für deine Hilfe
Hey, das Video war bereits auf Youtube auf heute Morgen 8:00 Uhr geplant, war also Zufall. Du musst deine Kutt-Instanz über https://deine-domain.de laufen lassen. Da Kutt eine Domain braucht um ordnungsgemäß zu funktionieren.
Ich habe das ganze jetzt selbst mal über meine Lokale IP (192.168.178.108:3050) probiert und das Problem ist das gleiche wie du es beschreibst. Damit Kutt funktioniert brauchst Du eine Domain und diese muss zwingend über https:// erreichbar sein.
Kutt funktioniert sowiso nur mit einer Domain die es auch als short url verwenden kann. Falls Du keine hast kannst Du dir bei dyndns eine kostenlose .dyndns Adresse holen oder über deine Diskstation eine synology.me adresse. Wie du Deine Diskstaion oder Deinen Server aus dem inet erreichbar machst dazu habe ich jeweils ein Video und Blogbeitrag.
Du musst also die DNS Einstellungen deiner domain (example.com) auf dyndns einstellen. Diese Domain dann entweder in Deiner Diskstation oder in der Fritzbox unter dem punkt DDNS oder Dyndns registrieren. Dana in deinem Router die Ports 443 und 80 für deine Diskstation freigeben und einen Reverse Proxy (also domain auf Kutt leiten) einrichten.
Danach das alles noch mit einem SSL Zertifikat absichern und dann geht es! Klingt schwieriger als es ist.
Hier paar Links wie Du dein Gerät aus dem Internet errechbar machen kannst:
Blogbeitrag Diskstation aus dem Inet erreichbar machen (mit Video): http://kutt.modern-maverick.net/ceG4Ua
Blogbeitrag Server aus dem Inet erreichbar machen (mit Video): http://kutt.modern-maverick.net/fQFaQH
Blogbeitrag Reverse Proxy (mit Video): http://kutt.modern-maverick.net/KdgSgS
Viel Erfolg!
Vielen Dank werde es umsetzen. Gern mehr Videos von Synology.
Hallo Florian,
ich hatte das gleiche Problem mit dem Login.
Es ist tatsächlich so wie Miles es schreibt über einen externen Zugriff erreichbar