Zum Inhalt springen
Serverküche
Suche

Die Suche wird geladen … (nur in der veröffentlichten Seite verfügbar).

Anwendungen Schwierigkeit: Fortgeschritten

linkding: Lesezeichen selbst hosten

Alle Lesezeichen an einem Ort, geräteübergreifend und ohne Browser-Zwang: linkding als schlanker Bookmark-Manager hinter Traefik – mit Tags und API.

· 4 Min. Lesezeit ·Dauer: ca. 30 Minuten
Inhaltsverzeichnis

Lesezeichen im Browser sind an ein Gerät gebunden, chaotisch organisiert und weg, sobald das Profil kaputtgeht. linkding sammelt deine Links zentral auf dem eigenen Server: über den Browser, per Extension, per API – durchsuchbar, verschlagwortet und geräteübergreifend.

Was bauen wir?

Einen schlanken, selbst gehosteten Bookmark-Manager mit linkding (v1.46.2) hinter Traefik. Am Ende speicherst du Links mit einem Klick, versiehst sie mit Tags, findest sie per Volltextsuche wieder – und linkding holt Titel und Beschreibung automatisch von der verlinkten Seite. linkding ist bewusst minimalistisch und extrem genügsam (SQLite, kaum RAM).

Voraussetzungen

🍳 Empfehlung Anzeige

VPS 1000 G12.5

4 vCore · 8 GB RAM · 128 GB SSD

ab 14,50 €/Monat

linkding ist winzig – selbst der kleinste VPS langweilt sich damit.

Zu netcup →

💶 5 € Gutschein für netcup-Neukunden: (nicht für Domains und VPS Lite)

Im Warenkorb einlösen →

Schritt für Schritt

Schritt 1: Projekt und Compose-Datei

linkding speichert alles (Datenbank, Einstellungen) in einem data-Ordner. Lege das Projekt an:

Terminal
mkdir -p /opt/linkding/data && cd /opt/linkding

Die compose.yaml – ersetze DEINE_DOMAIN. Das Admin-Konto erzeugt linkding beim ersten Start aus den Umgebungsvariablen:

YAML
services:
  linkding:
    image: sissbruecker/linkding:1.46.2
    restart: unless-stopped
    volumes:
      - ./data:/etc/linkding/data
    environment:
      LD_SUPERUSER_NAME: koch
      LD_SUPERUSER_PASSWORD: DEIN_STARKES_PASSWORT
      LD_CSRF_TRUSTED_ORIGINS: https://DEINE_DOMAIN
    networks: [proxy]
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.linkding.rule=Host(`DEINE_DOMAIN`)"
      - "traefik.http.routers.linkding.entrypoints=websecure"
      - "traefik.http.routers.linkding.tls.certresolver=le"
      - "traefik.http.services.linkding.loadbalancer.server.port=9090"

networks:
  proxy:
    external: true

LD_CSRF_TRUSTED_ORIGINS nicht vergessen

Wie viele Django-Anwendungen hinter einem Reverse Proxy braucht linkding die Angabe LD_CSRF_TRUSTED_ORIGINS mit deiner vollständigen HTTPS-Domain – sonst schlägt das Anmeldeformular mit einem CSRF-Fehler fehl. Die Login-Seite lädt zwar, aber das Absenden wird abgelehnt.

Schritt 2: Starten und anmelden

Terminal
docker compose up -d

Das Image bringt einen Healthcheck mit; Traefik leitet erst weiter, wenn linkding healthy ist (etwa 30 Sekunden). Öffne dann https://DEINE_DOMAIN/:

Die Anmeldeseite von linkding unter der eigenen HTTPS-Domain
Der linkding-Login – die Zugangsdaten stammen aus der Compose-Datei

Melde dich mit dem in der Compose-Datei gesetzten Konto an.

Schritt 3: Das erste Lesezeichen speichern

Klicke oben auf Add bookmark und füge eine URL ein. Der Clou: linkding ruft die Seite auf und füllt Titel und Beschreibung automatisch aus – du musst nur noch Tags vergeben (durch Leerzeichen getrennt, ohne #):

Das Formular zum Anlegen eines Lesezeichens mit automatisch gefülltem Titel und Beschreibung
„Add bookmark“: linkding holt Titel und Beschreibung selbst von der Seite; du ergänzt Tags

Optional kannst du ein Lesezeichen als ungelesen markieren („Mark as unread“) – praktisch als Leseliste für später.

Schritt 4: Sammlung durchsuchen und filtern

Die Übersicht zeigt deine Lesezeichen chronologisch, rechts eine anklickbare Tag-Wolke. Über die Suche findest du Links nach Wörtern oder #tags:

Die linkding-Übersicht mit mehreren Lesezeichen, Tags und Suchfeld
Die Bookmark-Liste: Titel, Tags und automatische Beschreibung, rechts die Tag-Navigation

Ein Klick auf ein Tag filtert sofort; mehrere Tags kombinieren die Filter. So bleibt auch eine große Sammlung übersichtlich – ganz ohne Ordnerhierarchie.

Schritt 5: Schnell speichern aus dem Browser

Für den Alltag willst du nicht jedes Mal die Weboberfläche öffnen. linkding bietet zwei bequeme Wege:

  • Browser-Extension: Es gibt eine offizielle linkding-Erweiterung für Firefox und Chrome. In deren Einstellungen trägst du https://DEINE_DOMAIN und einen API-Token ein (den findest du in linkding unter Settings → Integrations → REST API). Danach speicherst du die aktuelle Seite per Klick.
  • Bookmarklet: Alternativ bietet linkding unter Settings ein Bookmarklet an – ein Lesezeichen in der Browser-Leiste, das die aktuelle Seite direkt an linkding schickt. Funktioniert ohne Extension, auch auf dem Handy.

Bestehende Lesezeichen importieren

Wechselst du vom Browser oder einem anderen Dienst, exportiere dort deine Lesezeichen als HTML-Datei (das Standardformat aller Browser) und importiere sie unter Settings → Import. So ziehen alle Links auf einen Schlag um – inklusive Ordnerstruktur, die linkding in Tags umwandelt.

Wenn es nicht funktioniert

Login scheitert mit CSRF-Fehler. LD_CSRF_TRUSTED_ORIGINS: https://DEINE_DOMAIN fehlt oder ist falsch (muss mit https:// und ohne Pfad angegeben sein). Ergänzen und docker compose up -d (siehe Warnung in Schritt 1).

Die Seite kommt nicht (Traefik-404), obwohl der Container läuft. Der Healthcheck ist noch nicht healthy – Traefik leitet dann bewusst nicht. Rund 30 Sekunden nach dem Start abwarten; Status mit docker inspect -f '{{.State.Health.Status}}' linkding-linkding-1 prüfen.

Titel/Beschreibung werden nicht automatisch geholt. Die Zielseite blockiert automatisierte Zugriffe oder antwortet zu langsam. Du kannst Titel und Beschreibung dann einfach von Hand eintragen – die Felder stehen im selben Formular.

Das Admin-Konto wurde nicht angelegt. LD_SUPERUSER_NAME/LD_SUPERUSER_PASSWORD greifen nur beim ersten Start mit leerer Datenbank. Existiert die data-Datenbank schon, ändert eine spätere Anpassung nichts. Konto nachträglich anlegen: docker compose exec linkding python manage.py createsuperuser.

Die Extension verbindet sich nicht. Fast immer der API-Token oder die URL. Token unter Settings → Integrations neu erzeugen und exakt https://DEINE_DOMAIN als Server eintragen.

Wartung & Backups

  • Updates. Setze den Image-Tag (sissbruecker/linkding:1.46.2) gelegentlich auf die aktuelle Version und docker compose up -d; die Datenbank migriert beim Start automatisch. Der Rest läuft über deinen normalen Update-Prozess.
  • Backup ist winzig. Der gesamte Zustand liegt im data-Ordner (SQLite-Datenbank). Ihn ins Restic-Backup aufnehmen – dann sind alle Lesezeichen, Tags und Einstellungen gesichert. Zusätzlich lohnt gelegentlich ein HTML-Export (Settings → Export) als browser-lesbares, dienstunabhängiges Backup.
  • Aufwand geht gegen null. linkding ist ein „einrichten und vergessen"-Dienst. Die einzige wiederkehrende Aktivität ist das Speichern neuer Links – und das erledigst du künftig per Extension oder Bookmarklet in einer Sekunde.

Feedback per E-Mail: feedback@serverkueche.de

Das könnte dir auch schmecken