← Zurück zur Übersicht linkding mit Docker Compose: Eigene Lesezeichen sauber lokal hosten

linkding mit Docker Compose: Eigene Lesezeichen sauber lokal hosten

linkding mit Docker Compose: Eigene Lesezeichen sauber lokal hosten

Wer Lesezeichen über mehrere Browser, Geräte und Read-it-later-Impulse hinweg halbwegs geordnet halten will, landet schnell bei einem Durcheinander aus Export-Dateien, Browser-Sync und zehn offenen Tabs für "später". linkding ist für genau dieses Problem angenehm direkt: selbst hosten, Tags vergeben, Volltext durchsuchen, später Browser-Extension dazunehmen.

Für diesen Blog ist das am 4. April 2026 ein sinnvoller Fallback statt eines schwachen News-Posts. Die offizielle Installationsseite zeigt weiterhin ein sehr kleines Compose-Setup mit .env-Datei und lokalem Datenverzeichnis, die Projektoptionen dokumentieren einen initialen Superuser per Umgebungsvariable, und auf GitHub ist v1.45.0 vom 6. Januar 2026 weiterhin der jüngste stabile Release.

Screenshot der offiziellen linkding-Website als Artikelbild

Was du am Ende hast

  • linkding lokal unter http://127.0.0.1:9090
  • Einen kleinen Compose-Stack mit persistenten Daten
  • Einen initialen Admin-Login ohne Extra-Container
  • Prüfschritte mit docker compose, Logs und curl

Voraussetzungen

  • Docker Engine und docker compose sind installiert
  • Port 9090 ist frei
  • Du startest in einem neuen Projektordner statt in einem alten Compose-Verzeichnis

1. Arbeitsordner anlegen

Erst der saubere Ordner, dann die App:

mkdir linkding-lab && cd linkding-lab

2. Compose-Datei erstellen

Die offizielle Projektdatei ist bewusst knapp und setzt standardmaessig auf SQLite. Genau das ist fuer einen lokalen Start praktisch, weil du keine zweite Datenbank pflegen musst. Ich pinne das Image hier trotzdem auf 1.45.0 statt latest, damit das Setup reproduzierbar bleibt.

linkding-lab/compose.yaml:

services:
  linkding:
    image: sissbruecker/linkding:1.45.0
    container_name: linkding
    ports:
      - "127.0.0.1:9090:9090"
    volumes:
      - ./data:/etc/linkding/data
    env_file:
      - .env
    restart: unless-stopped

Die Bindung an 127.0.0.1 ist fuer einen lokalen Start sauberer als ein offener Port auf allen Interfaces. Wenn du spaeter extern darauf zugreifen willst, gehoert ein Reverse Proxy mit HTTPS davor.

3. .env fuer den ersten Start anlegen

Die offizielle Beispiel-Datei des Projekts sieht genau diesen Weg vor. Fuer den ersten Start reichen Port, Datenpfad und ein initialer Superuser.

linkding-lab/.env:

LD_CONTAINER_NAME=linkding
LD_HOST_PORT=9090
LD_HOST_DATA_DIR=./data
LD_SUPERUSER_NAME=admin
LD_SUPERUSER_PASSWORD=change-this-now
LD_CSRF_TRUSTED_ORIGINS=
LD_DISABLE_BACKGROUND_TASKS=False

Wichtig dabei:

  • LD_SUPERUSER_NAME erstellt beim ersten Container-Start den Admin-Nutzer, falls er noch nicht existiert.
  • LD_SUPERUSER_PASSWORD setzt das initiale Passwort.
  • LD_CSRF_TRUSTED_ORIGINS bleibt lokal leer und wird erst mit eigener Domain oder Reverse Proxy interessant.

4. Stack starten

Jetzt ziehst du das Image und startest den Container im Hintergrund:

docker compose pull
docker compose up -d

Danach sollte die Oberfläche hier erreichbar sein:

http://127.0.0.1:9090

5. Funktion pruefen

Bevor du im Browser klickst, pruefe einmal den Container-Status und den HTTP-Endpunkt:

docker compose ps
docker compose logs --tail=100 linkding
curl -I http://127.0.0.1:9090

Wenn alles sauber steht, zeigt docker compose ps einen laufenden Container und curl liefert einen erfolgreichen HTTP-Status. Genau hier hat das Tutorial bereits sein sichtbares Ergebnis: linkding antwortet lokal im Browser.

6. Erster Login und erster Bookmark

Oeffne http://127.0.0.1:9090 und melde dich mit diesen Startdaten an:

  • Benutzername: admin
  • Passwort: change-this-now

Danach solltest du sofort:

  • das Passwort aendern
  • einen ersten Bookmark anlegen
  • ein oder zwei Tags vergeben
  • die Suchfunktion einmal testen

Damit siehst du direkt, ob der eigentliche Nutzen des Projekts fuer dich passt: Links nicht nur speichern, sondern wiederfinden.

7. Warum linkding praktisch ist

Der Wert von linkding liegt nicht in moeglichst vielen Social- oder Team-Features, sondern in Konzentration:

  • schnell lokal startbar
  • wenig bewegliche Teile dank SQLite-Default
  • Tags, Notizen und Volltextsuche statt Browser-Ordnerchaos
  • gute Passform fuer Self-Hosting, Homelab und persoenliches Wissensmanagement

Gerade wer staendig Dokumentation, Tools, Release-Seiten oder Einkaufslisten in Tabs parkt, bekommt hier in wenigen Minuten eine nuetzliche Sammelstelle mit echter Suchfunktion.

8. Sinnvolle Befehle fuer den Alltag

Fuer Logs, Updates und Stoppen brauchst du zunaechst nur diese Kommandos:

docker compose logs -f linkding
docker compose pull
docker compose up -d
docker compose down

Deine Daten bleiben im Verzeichnis ./data erhalten.

9. Was du nach dem ersten Start aufraeumen solltest

Nach dem ersten erfolgreichen Login solltest du in linkding-lab/.env mindestens das Startpasswort ersetzen oder die Variable komplett entfernen, wenn der Nutzer einmal angelegt ist.

Sobald du linkding ueber eine Domain oder einen Reverse Proxy veroeffentlichen willst, werden zwei Punkte wichtig:

  • den Host-Header sauber weiterreichen
  • LD_CSRF_TRUSTED_ORIGINS auf deine echte URL setzen

Genau das ist laut offizieller Doku relevant, wenn Login- oder POST-Requests hinter Nginx und aehnlichen Proxies sonst scheitern.

Fazit

Wenn aktuelle News nicht sauber genug tragen, sollte der Ersatz wenigstens ein echtes Alltagsproblem loesen. Genau das schafft linkding: wenig Setup, ein sichtbarer Browser-Endpunkt, persistente Daten und ein Tool, das aus losem Tab-Muell wieder auffindbare Lesezeichen macht.

Fuer einen Fallback am 4. April 2026 ist das deutlich brauchbarer als noch ein generischer Docker-Grundlagenpost ohne Ergebnis.

Quellen