← Zurück zur Übersicht Linkwarden mit Docker Compose: Eigene Leseliste mit Archiv lokal starten

Linkwarden mit Docker Compose: Eigene Leseliste mit Archiv lokal starten

Linkwarden sauber lokal starten

Browser-Lesezeichen, offene Tabs, spaeter-lesen-Listen und gespeicherte Artikel landen bei vielen Leuten in vier verschiedenen Systemen. Linkwarden ist gerade deshalb interessant, weil es diese Teile zusammenzieht: Links speichern, Inhalte archivieren, spaeter wiederfinden und bei Bedarf auch teilen.

Der Stand fuer diesen Artikel ist belastbar. Die offizielle Self-Hosting-Doku verweist Anfang Juni 2026 weiter auf den Download von docker-compose.yml und .env.sample aus dem Projekt-Repository. Die aktuelle Compose-Datei nutzt dabei postgres:16-alpine, ghcr.io/linkwarden/linkwarden:latest und getmeili/meilisearch:v1.12.8. Gleichzeitig listet GitHub v2.14.1 als juengsten Release vom 22. April 2026. Genau deshalb folgt dieses Tutorial dem offiziellen Compose-Weg statt irgendeiner veralteten Drittanbieter-Vorlage.

Selbstgehosteter Bookmark- und Archiv-Workspace auf einem Laptop-Schreibtisch

Was du am Ende hast

  • Linkwarden lokal unter http://127.0.0.1:3000
  • PostgreSQL fuer die App-Daten
  • Meilisearch fuer schnelle Suche
  • Ein erstes eigenes Konto und eine gespeicherte Test-Seite
  • Klare Befehle zum Pruefen, Updaten und Absichern

Voraussetzungen

Du brauchst:

  • Docker Engine oder Docker Desktop
  • docker compose
  • einen freien Port 3000
  • einen neuen Arbeitsordner statt eines alten Compose-Verzeichnisses

Pruefe die Basis kurz:

docker --version
docker compose version

1. Arbeitsordner anlegen und offizielle Dateien holen

Lege zuerst einen sauberen Projektordner an:

mkdir linkwarden-lab && cd linkwarden-lab

Danach holst du genau die Dateien, auf die sich die offizielle Installationsseite bezieht:

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

Damit arbeitest du mit dem aktuellen Projektstand statt mit einem zufaelligen Blog-Snippet.

2. Die wirklich wichtigen Werte in der Env-Datei setzen

Bearbeite jetzt linkwarden-lab/.env und fuelle mindestens diese Variablen:

NEXTAUTH_URL=http://localhost:3000/api/v1/auth
NEXTAUTH_SECRET=ERSETZE_DAS_DURCH_EIN_LANGES_ZUFAELLIGES_SECRET
POSTGRES_PASSWORD=ERSETZE_DAS_DURCH_EIN_STARKES_PASSWORT
MEILI_MASTER_KEY=ERSETZE_DAS_DURCH_EIN_LANGES_ZUFAELLIGES_SECRET

Zwei praktische Punkte sind wichtig:

  • NEXTAUTH_URL muss laut Doku das Suffix /api/v1/auth enthalten.
  • Wenn du die offizielle Compose-Datei unveraendert nutzt, musst du DATABASE_URL nicht selbst setzen. Sie wird dort intern aus POSTGRES_PASSWORD zusammengesetzt.

Ein brauchbares Secret erzeugst du lokal zum Beispiel so:

openssl rand -hex 32

Fuer den ersten Start solltest du die Registrierung noch nicht deaktivieren. Erst wenn dein erstes Konto existiert, lohnt sich spaeter ein Wert wie NEXT_PUBLIC_DISABLE_REGISTRATION=true.

3. Kurz verstehen, was Compose fuer dich startet

Die offizielle linkwarden-lab/docker-compose.yml ist erfreulich knapp. Im Kern startet sie genau drei Dienste:

services:
  postgres:
    image: postgres:16-alpine

  linkwarden:
    image: ghcr.io/linkwarden/linkwarden:latest
    ports:
      - 3000:3000

  meilisearch:
    image: getmeili/meilisearch:v1.12.8

Dazu kommen lokale Verzeichnisse fuer Persistenz:

  • ./pgdata fuer PostgreSQL
  • ./data fuer gespeicherte Inhalte und Archive
  • ./meili_data fuer den Suchindex

Genau diese Ordner solltest du spaeter in Backups aufnehmen.

4. Stack starten

Jetzt ziehst du die Images und startest alles im Hintergrund:

docker compose up -d

Beim ersten Start koennen Datenbank, Suchindex und App ein wenig brauchen. Das ist normal.

5. Lokal pruefen, ob die Instanz wirklich lebt

Bevor du im Browser weitermachst, pruefe den Stack einmal direkt im Terminal:

docker compose ps
docker compose logs --tail=100 linkwarden
curl -I http://127.0.0.1:3000

Wenn curl eine HTTP-Antwort zurueckgibt und der linkwarden-Container keine endlosen Fehler ausspuckt, ist die Grundlage sauber.

Falls der Port nicht antwortet, schaue dir auch die beiden Nebendienste an:

docker compose logs --tail=100 postgres
docker compose logs --tail=100 meilisearch

6. Erstes Konto anlegen und die erste Seite speichern

Oeffne jetzt:

http://127.0.0.1:3000

Lege dein erstes Konto an und melde dich an. Danach solltest du direkt im Dashboard landen.

Fuer einen schnellen sichtbaren Test:

  1. Klicke auf New Link
  2. Fuege https://example.com ein
  3. Speichere den Eintrag
  4. Warte kurz, bis Vorschau und Archivdaten verarbeitet wurden

Damit siehst du sofort den eigentlichen Mehrwert von Linkwarden: nicht nur ein Bookmark, sondern ein gespeicherter Eintrag mit Metadaten, spaeterem Wiederfinden und eigener Suchbasis.

7. Registrierung nach dem ersten Login schliessen

Wenn die Instanz nur fuer dich oder dein Team gedacht ist, solltest du die offene Registrierung danach schliessen.

Ergaenze in linkwarden-lab/.env:

NEXT_PUBLIC_DISABLE_REGISTRATION=true

Wichtig: Die Linkwarden-Doku weist ausdruecklich darauf hin, dass geaenderte Umgebungsvariablen nicht nur mit docker compose restart uebernommen werden. Du musst die Container neu erstellen:

docker compose down
docker compose up -d

8. Update und Betrieb

Ein normales Update faehrt sich so:

docker compose pull
docker compose up -d

Zum Stoppen:

docker compose down

Deine Daten bleiben erhalten, weil sie in linkwarden-lab/pgdata, linkwarden-lab/data und linkwarden-lab/meili_data liegen.

9. Wofuer sich das Setup wirklich lohnt

Linkwarden ist stark, wenn du mehr willst als eine dumme Bookmark-Liste, aber nicht gleich ein schweres Wissensmanagement-System aufziehen moechtest. Du bekommst in kurzer Zeit:

  • eine saubere Leseliste
  • eine eigene Link-Sammlung ohne Fremdplattform
  • archivierte Inhalte gegen Link-Rot
  • Volltextsuche ueber Meilisearch

Gerade fuer Recherche, private Wissenssammlungen, Team-Links oder ein persoenliches Read-It-Later-System ist das deutlich nuetzlicher als der naechste Browser-Ordner, den du nach zwei Wochen wieder ignorierst.

Fazit

Linkwarden trifft einen seltenen Sweet Spot: klein genug fuer ein schnelles Compose-Setup, aber nützlich genug fuer den Dauerbetrieb. Wenn du im Juni 2026 ein Self-Hosting-Projekt mit sofort sichtbarem Ergebnis suchst, ist das hier deutlich sinnvoller als ein abstrakter Infrastruktur-Stack ohne echten Alltagsnutzen.

Quellen