Kurze Links sind aus dem modernen Web nicht wegzudenken – doch wer einen URL-Shortener selbst hosten möchte, hat drei starke Open-Source-Kandidaten: YOURLS, Shlink und Kutt. Jede Lösung verfolgt einen anderen Ansatz: YOURLS ist der Klassiker, Shlink die API-first-Lösung und Kutt das moderne, datenschutzfreundliche Pendant. Ich zeige dir die Unterschiede und helfe dir bei der Entscheidung.

Die drei Kandidaten im Überblick

YOURLS – Der Klassiker seit 2009

YOURLS (Your Own URL Shortener) ist seit 2009 das Referenzprojekt für selbst gehostete URL-Shortener. Es wurde in PHP geschrieben und läuft auf praktisch jedem LAMP-Stack.

Stärken von YOURLS:

  • Riesiges Plugin-Ökosystem (100+ Community-Plugins)
  • Bekannte Technologie (PHP + MySQL/MariaDB)
  • Anpassbare Slug-Erstellung (Custom Keywords)
  • Einfache Installation auf Shared Hosting ohne Docker
  • QR-Code-Generierung eingebaut
  • Basic-Auth-geschütztes Admin-Interface
  • Bookmark-Toolbar-Button-Support

Schwächen:

  • Kein modernes REST-API-Design (nur über Plugin nachrüstbar)
  • UI-Design veraltet (stammt aus der 2010er-Ära)
  • Kein Docker-Compose out-of-the-box (nur Community-Images)
  • Sehr begrenzte Analytics

Shlink ist eine PHP-basierte Lösung, die primär als REST-API konzipiert ist. Es gibt eine separate Web-UI als optionale Ergänzung. Shlink ist ideal für Entwickler, die URL-Shortening in eigene Applikationen integrieren wollen.

Stärken von Shlink:

  • Vollständige REST-API mit OpenAPI-Dokumentation
  • Offizieller Docker-Container mit einfachem Setup
  • Multiple Domains (verschiedene Shortener auf einer Instanz)
  • Detaillierte Analytics (Geolocation, Browser, Referrer, Zeitverlauf)
  • CLI-Interface für Administration
  • Geo-blocking möglich
  • QR-Code-API
  • JWT-Authentication und API-Keys

Schwächen:

  • Komplexere Konfiguration als die anderen Tools
  • Web-UI ist separates Projekt (Shlink Web Client) – extra Docker-Container
  • Für einfache persönliche Anwendungsfälle überdimensioniert

Kutt – Die moderne, minimalistische Option

Kutt ist eine Node.js-basierte Lösung mit modernem Design und Fokus auf Datenschutz und Einfachheit. Es bietet User-Accounts und eine saubere Web-Oberfläche.

Stärken von Kutt:

  • Modernes, sauberes Web-Interface (React)
  • User-Management mit Accounts und Registrierung
  • REST-API mit JWT-Auth
  • GDPR-freundliche Analytics (kein IP-Logging by default)
  • Docker-Compose-Ready
  • Öffentlicher oder privater Modus (Registrierung deaktivierbar)
  • Custom Domains pro User

Schwächen:

  • Kleinere Community als YOURLS
  • Weniger Plugins und Erweiterungen
  • Node.js + PostgreSQL + Redis als Dependencies

Direkter Vergleich

Merkmal YOURLS Shlink Kutt
Sprache PHP PHP Node.js
REST-API ⚠️ (Plugin nötig) ✅ Vollständig ✅ Vollständig
Docker ⚠️ Community ✅ Offiziell ✅ Offiziell
Analytics Basic Sehr detailliert Datenschutz-freundlich
Multi-User ⚠️ API-Keys ✅ Accounts
Plugins ✅ 100+
Custom Domain ✅ Multi-Domain
Shared Hosting ⚠️
Aktiv gepflegt
GDPR by default ⚠️ ⚠️

Installation: Kutt mit Docker Compose

Kutt ist der einsteigerfreundlichste Einstieg für Self-Hoster auf einem VPS oder Homelab:

# docker-compose.yml
version: "3.8"
services:
  kutt:
    image: kutt/kutt:latest
    restart: always
    environment:
      DB_HOST: postgres
      DB_NAME: kutt
      DB_USER: kutt
      DB_PASSWORD: securepassword
      REDIS_HOST: redis
      JWT_SECRET: your-very-long-random-jwt-secret
      ADMIN_EMAILS: admin@example.com
      SITE_NAME: My URL Shortener
      DEFAULT_DOMAIN: short.example.com
      DISALLOW_REGISTRATION: "false"
    ports:
      - "3000:3000"
    depends_on:
      postgres:
        condition: service_healthy
      redis:
        condition: service_started

  postgres:
    image: postgres:15-alpine
    environment:
      POSTGRES_DB: kutt
      POSTGRES_USER: kutt
      POSTGRES_PASSWORD: securepassword
    volumes:
      - postgres_data:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U kutt"]
      interval: 10s
      timeout: 5s
      retries: 5

  redis:
    image: redis:7-alpine
    volumes:
      - redis_data:/data

volumes:
  postgres_data:
  redis_data:

Shlink bietet einen offiziellen Docker-Container mit API-First-Ansatz:

# Shlink API starten
docker run -d   --name shlink   -e DEFAULT_DOMAIN=short.example.com   -e IS_HTTPS_ENABLED=true   -e DB_DRIVER=postgres   -e DB_HOST=postgres   -e DB_NAME=shlink   -e DB_USER=shlink   -e DB_PASSWORD=password   -e GEOLITE_LICENSE_KEY=your-maxmind-key   -p 8080:8080   shlinkio/shlink:stable

# Optional: Shlink Web Client (UI)
docker run -d   --name shlink-ui   -e SHLINK_SERVER_URL=https://short.example.com   -p 8090:80   shlinkio/shlink-web-client

Analytics-Vergleich im Detail

Analytics sind für URL-Shortener oft der entscheidende Faktor:

YOURLS Analytics (Basis):

  • Klick-Zählung pro Link
  • Zeitbasierte Statistiken
  • Referrer (mit Plugin nachzurüsten)

Shlink Analytics (umfangreich):

  • Geolocation (Land, Stadt) via MaxMind GeoLite2
  • Browser und Betriebssystem
  • Referrer-Tracking
  • Zeitbasierte Trends und Graphen
  • IP-Filterung (Geo-blocking einzelner Länder)
  • Bot-Erkennung und -Filterung

Kutt Analytics (datenschutzfreundlich):

  • Klick-Zählung
  • Browser und Betriebssystem (User-Agent)
  • Kein IP-Logging by default
  • GDPR-konform ohne Konfiguration

YOURLS Plugins: Das Ökosystem nutzen

Eines der größten Vorteile von YOURLS ist sein Plugin-Ökosystem. Beliebte Plugins:

  • API: Vollständige REST-API über YOURLS-API-Extended
  • Auth: OAuth, LDAP-Integration
  • Analytics: Google Analytics Integration
  • UI: ModernYOURLS – modernes Interface
  • Security: Rate-Limiting, Captcha
  • Export: CSV-Export aller Links

Das Plugin-System macht YOURLS sehr anpassungsfähig, erfordert aber mehr Konfigurationsaufwand.

Welche Lösung passt zu dir?

YOURLS wählen, wenn:

  • Du einen einfachen, stabilen URL-Shortener für persönliche Nutzung möchtest
  • Du auf Shared Hosting bist (kein Docker)
  • Du das Plugin-Ökosystem nutzen möchtest
  • Du eine schnelle, bewährte Lösung ohne Lernkurve suchst

Shlink wählen, wenn:

  • Du URL-Shortening in eigene Anwendungen integrieren möchtest (API-first)
  • Du mehrere Domains verwalten willst
  • Du detaillierte Analytics inkl. Geolocation benötigst
  • Du eine Developer-freundliche Lösung mit gutem CLI suchst

Kutt wählen, wenn:

  • Du ein modernes Web-Interface mit User-Accounts möchtest
  • Datenschutz und GDPR-Konformität wichtig sind
  • Du Docker-Compose bevorzugst
  • Du mehreren Nutzern Zugang geben möchtest

Mein Fazit

Für private Nutzung mit minimalem Aufwand ist YOURLS nach wie vor die zuverlässigste Wahl – besonders auf Shared Hosting. Wer APIs und Entwickler-Integration braucht, kommt an Shlink nicht vorbei. Und wer Datenschutz und modernes Design priorisiert, ist mit Kutt gut bedient.

Alle drei Lösungen sind aktiv entwickelt und für Self-Hosting geeignet. Die Entscheidung hängt davon ab, welche Features du tatsächlich brauchst – und wie viel technischen Aufwand du bereit bist zu investieren.

Weiterführende Artikel