Zum Inhalt springen
SONOYA.com
Web & Code

Anleitung: Linkwarden mit Docker selbst hosten

Linkwarden sammelt Deine Lesezeichen, liest Artikel im Reader-Modus und archiviert jede Seite als Screenshot, PDF und HTML. So richtest Du den Open-Source-Bookmark-Manager mit Docker Compose auf Deinem eigenen Server ein, damit alle Daten bei Dir bleiben …

Von Sonoya Redaktion 5 Min. Lesezeit
Anleitung: Linkwarden mit Docker selbst hosten
Anleitung: Linkwarden mit Docker selbst hosten

Deine Lesezeichen liegen verstreut über drei Browser, ein paar Notiz-Apps und ein Dutzend offener Tabs, und die Hälfte der gespeicherten Seiten ist nach einem Jahr ohnehin nicht mehr erreichbar. Linkwarden räumt damit auf: Der quelloffene Bookmark-Manager sammelt Deine Links an einem Ort, liest Artikel im ablenkungsfreien Reader-Modus und legt von jeder Seite gleich einen Screenshot, ein PDF und eine vollständige HTML-Kopie an, damit der Inhalt auch dann noch lesbar bleibt, wenn das Original verschwindet. In dieser Anleitung richtest Du Linkwarden mit Docker Compose auf Deinem eigenen Server ein, sodass alle Daten bei Dir liegen.

Warum sich Linkwarden auf dem eigenen Server lohnt

Linkwarden ist mehr als eine Linkliste. Jede gespeicherte Seite wird automatisch in mehreren Formaten archiviert, Du kannst Artikel direkt in der App lesen, markieren und mit Notizen versehen, und Du sortierst alles über Sammlungen und Tags, die Du auch mit anderen teilen kannst. Eine optionale KI-Verschlagwortung vergibt passende Tags von selbst, eine quelloffene Browser-Erweiterung speichert Seiten mit einem Klick, und über die nativen Apps für iOS und Android sowie eine installierbare Web-App hast Du Deine Sammlung auch unterwegs dabei.

Der entscheidende Punkt beim Selbst-Hosten: Linkwarden steht unter der AGPL-3.0-Lizenz, und alle Funktionen der bezahlten Cloud sind auch in der selbst gehosteten Version enthalten. Du zahlst nichts und gibst keine Deiner gespeicherten Seiten an einen fremden Anbieter. Falls Du zwischen Linkwarden und einer schlankeren Alternative schwankst, hilft Dir vorher der Beitrag Linkding vs Linkwarden: Zwei selbst-gehostete Bookmark-Manager im Vergleich bei der Entscheidung.

Voraussetzungen

Du brauchst einen Linux-Server mit installiertem Docker und Docker Compose sowie SSH-Zugang. Linkwarden besteht aus drei Diensten, die zusammenarbeiten: der Anwendung selbst, einer PostgreSQL-Datenbank und der Suchmaschine Meilisearch. Dazu kommt für die Archivierung ein Browser, der im Hintergrund läuft. Plane deshalb mindestens 2 GB Arbeitsspeicher ein, mit 4 GB hast Du beim Archivieren mehr Luft.

Wenn Du noch keinen Server hast, bekommst Du über diesen Affiliate-Link zu DigitalOcean (Affiliate Link) Startguthaben, mit dem Du ein passendes Droplet ein paar Wochen kostenlos ausprobieren kannst. Genauso gut läuft Linkwarden auf einem kleinen Server zu Hause, etwa einem sparsamen Mini-PC (Affiliate Link), den Du rund um die Uhr laufen lassen kannst.

Schritt 1: Konfigurationsdateien herunterladen

Melde Dich per SSH auf Deinem Server an, lege ein Verzeichnis für Linkwarden an und lade die beiden offiziellen Konfigurationsdateien herunter:

Code
mkdir linkwarden
cd linkwarden
curl -O https://raw.githubusercontent.com/linkwarden/linkwarden/refs/heads/main/docker-compose.yml
curl -L https://raw.githubusercontent.com/linkwarden/linkwarden/refs/heads/main/.env.sample -o .env

Der erste curl-Befehl holt die fertige docker-compose.yml mit den drei Diensten, der zweite lädt die Beispiel-Konfiguration und speichert sie direkt als .env. In dieser .env-Datei stellst Du im nächsten Schritt alle wichtigen Werte ein.

Schritt 2: Sichere Schlüssel erzeugen und die .env anpassen

Linkwarden braucht drei selbst gewählte Geheimnisse, die nicht erraten werden dürfen. Erzeuge Dir dafür drei zufällige Zeichenketten, indem Du diesen Befehl dreimal hintereinander ausführst und Dir jede Ausgabe notierst:

Code
openssl rand -base64 32

Öffne danach die Konfigurationsdatei im Editor:

Code
nano .env

Trage jetzt für die drei Pflichtwerte je eine der erzeugten Zeichenketten ein. Du änderst genau diese Zeilen:

Code
NEXTAUTH_SECRET=hier_die_erste_zufallszeichenkette
POSTGRES_PASSWORD=hier_die_zweite_zufallszeichenkette
MEILI_MASTER_KEY=hier_die_dritte_zufallszeichenkette

NEXTAUTH_SECRET signiert Deine Anmelde-Sitzungen, POSTGRES_PASSWORD schützt die Datenbank und MEILI_MASTER_KEY sichert die Volltextsuche ab. Diese drei Werte musst Du zwingend setzen, alles andere kannst Du fürs Erste so lassen.

Eine Zeile ist noch wichtig: NEXTAUTH_URL legt fest, unter welcher Adresse Linkwarden erreichbar ist. Solange Du nur lokal testest, passt der Standardwert. Greifst Du vom eigenen Rechner über die IP des Servers zu, ersetze localhost durch die IP-Adresse Deines Servers, der Pfad am Ende muss aber stehen bleiben:

Code
NEXTAUTH_URL=http://DEINE_SERVER_IP:3000/api/v1/auth

Ersetze DEINE_SERVER_IP durch die tatsächliche IP-Adresse Deines Servers. Speichere die Datei anschließend mit Strg + O, bestätige mit Enter und schließe den Editor mit Strg + X.

Schritt 3: Linkwarden starten

Jetzt startest Du den ganzen Stack aus Anwendung, Datenbank und Suchmaschine mit einem einzigen Befehl:

Code
docker compose up -d

Docker lädt beim ersten Mal die nötigen Images herunter und startet die drei Container im Hintergrund. Linkwarden richtet beim ersten Start noch die Datenbank ein, das dauert ein paar Minuten. Du kannst dem Vorgang dabei zusehen:

Code
docker compose logs -f linkwarden

Sobald in den Logs steht, dass der Server bereit ist, rufst Du im Browser http://DEINE_SERVER_IP:3000 auf. Beim ersten Aufruf legst Du Dein Administrator-Konto an, danach bist Du in Deiner eigenen Linkwarden-Instanz und kannst die erste Sammlung anlegen und Links speichern.

Schritt 4: KI-Verschlagwortung aktivieren (optional)

Wenn Linkwarden Deine Links automatisch mit passenden Tags versehen soll, kannst Du dafür ein lokales Sprachmodell über Ollama anbinden, ohne dass Daten den Server verlassen. Stoppe den Stack kurz mit docker compose down, ergänze in der .env die Adresse Deiner Ollama-Instanz und das gewünschte Modell und starte danach wieder mit docker compose up -d:

Code
NEXT_PUBLIC_OLLAMA_ENDPOINT_URL=http://DEINE_OLLAMA_ADRESSE:11434
OLLAMA_MODEL=phi3:mini

Für das Tagging reicht ein leichtgewichtiges Modell wie phi3:mini, das Du vorher mit ollama pull phi3:mini herunterlädst. Alternativ unterstützt Linkwarden über die Variablen OPENAI_API_KEY und OPENAI_MODEL auch OpenAI-kompatible Anbieter, falls Du kein eigenes Modell betreiben willst.

Linkwarden über eine Domain mit HTTPS erreichbar machen

Den Aufruf über die nackte IP und Port 3000 solltest Du nur zum Testen nutzen. Für den Dauerbetrieb setzt Du einen Reverse Proxy davor, der den Datenverkehr per HTTPS verschlüsselt und auf den internen Port 3000 weiterleitet. Wichtig ist dabei, dass Du NEXTAUTH_URL in der .env auf Deine echte Adresse mit https:// umstellst, zum Beispiel https://links.deine-domain.de/api/v1/auth, sonst schlägt die Anmeldung fehl.

Wie Du einen solchen Reverse Proxy mit kostenlosem SSL-Zertifikat einrichtest, zeigt Dir die Schritt-für-Schritt Anleitung: n8n mit Docker und SSL auf einem Digitalocean Droplet installieren, deren Vorgehen sich direkt auf Linkwarden übertragen lässt.

Updates einspielen

Linkwarden erscheint in einem schnellen Takt, und neue Versionen bringst Du mit zwei Befehlen ein. Wechsle in Dein linkwarden-Verzeichnis und führe aus:

Code
docker compose pull
docker compose up -d

Der erste Befehl lädt die aktuellen Images, der zweite startet die Container neu mit der neuen Version. Keine Sorge um Deine Daten: Sie liegen in den Ordnern pgdata, data und meili_data neben der docker-compose.yml und bleiben beim Update erhalten. Genau diese drei Ordner solltest Du auch regelmäßig sichern.

Fazit

Mit Docker Compose steht Linkwarden in wenigen Minuten auf Deinem eigenen Server, und ab dann landen alle Lesezeichen samt vollständigem Archiv jeder Seite an einem Ort, der Dir gehört. Du fängst klein an mit einer Sammlung und der Browser-Erweiterung, und wenn Du mehr willst, holst Du Dir mit der KI-Verschlagwortung und dem Reader-Modus nach und nach den vollen Funktionsumfang dazu. Wenn Dir das Selbst-Hosten Spaß macht, ist ein eigener Passwort-Tresor der logische nächste Schritt: Wie das geht, zeigt die Schritt-für-Schritt Anleitung: Vaultwarden auf einem DigitalOcean Droplet einrichten.

Weiterlesen .