Zum Inhalt

Karakeep mit Docker installieren

Veröffentlicht am 27. August 2026 · Geschätzte Lesezeit: 5 Minuten

Karakeep speichert Links, Notizen und Bilder auf dem eigenen Server und macht den Inhalt durch Volltextsuche wieder auffindbar. Die offizielle Compose-Datei startet Karakeep zusammen mit Meilisearch und einem Browserdienst für das Einlesen von Webseiten. Für die Grundeinrichtung solltest du etwa 25 Minuten einplanen.

Voraussetzungen

  • Ein 64-Bit-Linux-Server mit Docker und Docker Compose
  • Terminalzugriff auf den Server
  • Etwa 2 GB freier Arbeitsspeicher, für größere Sammlungen besser mehr
  • Port 3000/TCP im Heimnetz frei

1. Projektordner anlegen

Führe die folgenden Befehle auf dem Docker-Server aus. Sie erstellen den Ordner /opt/karakeep und wechseln hinein.

sudo mkdir -p /opt/karakeep
cd /opt/karakeep

Falls dein Benutzer dort nicht schreiben darf, übertrage den Ordner an ihn. <linux-benutzer> ersetzt du durch den Namen, mit dem du am Server angemeldet bist.

sudo chown -R <linux-benutzer>:<linux-benutzer> /opt/karakeep

2. Offizielle Compose-Datei herunterladen

Lade die aktuelle Compose-Datei direkt aus dem offiziellen Karakeep-Repository.

wget https://raw.githubusercontent.com/karakeep-app/karakeep/main/docker/docker-compose.yml

Prüfe, ob Docker die Datei erkennt.

docker compose config --services

Die Ausgabe sollte unter anderem web, chrome und meilisearch enthalten.

Datei später nicht ungeprüft überschreiben

Der Download folgt dem aktuellen Hauptzweig. Sichere deine vorhandene Compose-Datei vor einem späteren erneuten Download und vergleiche Änderungen, statt sie einfach zu ersetzen.

3. Sichere Grundeinstellungen erzeugen

Setze zuerst eingeschränkte Dateirechte für neu angelegte Dateien in dieser Shell.

umask 077

Erzeuge danach die .env-Datei. Ersetze <server-ip> im Befehl durch die feste IP deines Servers. Die beiden Geheimnisse werden automatisch erzeugt und nicht im Terminal angezeigt.

printf 'KARAKEEP_VERSION=release\nNEXTAUTH_URL=http://<server-ip>:3000\nNEXTAUTH_SECRET=%s\nMEILI_MASTER_KEY=%s\n' "$(openssl rand -base64 36)" "$(openssl rand -base64 36 | tr -dc 'A-Za-z0-9')" > .env

Setze die Rechte der Datei ausdrücklich auf nur lesbar und schreibbar für den Besitzer.

chmod 600 .env

Geheimnisse schützen

Zeige .env nicht in Screenshots oder Support-Anfragen und lege sie nicht in einem öffentlichen Git-Repository ab. Wer NEXTAUTH_SECRET oder MEILI_MASTER_KEY kennt, kann die Sicherheit der Anmeldung oder Suche gefährden.

4. Container starten

Starte den vollständigen Stack im Hintergrund. Der Tag release folgt laut Karakeep-Dokumentation der aktuellen stabilen Ausgabe.

docker compose up -d

Prüfe den Zustand der Dienste.

docker compose ps

Beim ersten Start brauchen Suche und Browserdienst etwas Zeit. Zeige bei Problemen die letzten Protokollzeilen an.

docker compose logs --tail=100

5. Erstes Konto einrichten

Öffne im Browser http://<server-ip>:3000. Ersetze <server-ip> durch dieselbe Serveradresse wie in .env. Registriere das erste Konto; dieses wird bei einer neuen Installation automatisch zum Administrator.

Speichere anschließend einen Testlink. Nach kurzer Zeit sollten Titel, Beschreibung und Vorschaubild erscheinen und der Inhalt über die Suche auffindbar sein.

Nicht direkt ins Internet stellen

Port 3000 ist in der offiziellen Grundeinstellung unverschlüsselt erreichbar. Nutze ihn nur im vertrauenswürdigen Heimnetz. Für externen Zugriff brauchst du einen sauber eingerichteten HTTPS-Reverse-Proxy oder ein VPN.

6. Weitere Registrierungen sperren

Öffne die Konfigurationsdatei nach dem ersten Konto.

nano .env

Ergänze am Ende diese Einstellung. Sie verhindert offene Neuregistrierungen; Administratoren können weitere Benutzer später gezielt anlegen.

DISABLE_SIGNUPS=true

Speichere mit Strg+O, bestätige mit Enter und beende Nano mit Strg+X. Wende die geänderte .env-Datei an, indem du die Container neu erstellst.

docker compose up -d

Öffne die Anmeldeseite in einem privaten Browserfenster. Dort sollte keine offene Registrierung mehr angeboten werden.

7. Backup anlegen

Karakeep speichert Datenbank und gesammelte Inhalte im Docker-Volume data. Für eine konsistente Sicherung hältst du den Stack kurz an.

docker compose stop

Erstelle einen lokalen Backup-Ordner.

mkdir -p backups

Kopiere den persistenten Datenordner aus dem angehaltenen Web-Container. Der Befehl legt einen Unterordner data unter backups an.

docker compose cp web:/data ./backups/

Sichere außerdem Compose-Datei und .env in ein Archiv. Das Archiv enthält Geheimnisse und gehört anschließend verschlüsselt auf einen zweiten Datenträger.

tar -czf backups/karakeep-konfiguration.tar.gz docker-compose.yml .env

Starte den Stack wieder.

docker compose start

Backup wirklich prüfen

Kontrolliere, ob backups/data/db.db vorhanden ist, und teste regelmäßig eine Wiederherstellung auf einem getrennten System. Eine Sicherung auf derselben Festplatte schützt nicht vor einem Laufwerksausfall.

8. Aktualisieren und zurückkehren

Erstelle vor jedem Update ein Backup. Mit release lädt der folgende Befehl die aktuell stabile Karakeep-Ausgabe und erstellt geänderte Container neu.

docker compose up --pull always -d

Prüfe danach Zustand, Anmeldung und einen gespeicherten Link.

docker compose ps

Für einen Rückweg stellst du die gesicherte Compose-Datei, .env und den Ordner data bei gestopptem Stack wieder her. Entferne Volumes niemals mit docker compose down -v, solange kein geprüftes Backup vorhanden ist.

9. Typische Fehler

  • Anmeldung leitet falsch weiter: NEXTAUTH_URL enthält nicht die tatsächlich verwendete Adresse.
  • Suche funktioniert nicht: Prüfe MEILI_MASTER_KEY und die Protokolle von meilisearch.
  • Vorschau bleibt leer: Der Dienst chrome läuft nicht oder hat zu wenig Arbeitsspeicher.
  • Änderung an .env ohne Wirkung: Führe erneut docker compose up -d aus.
  • Port 3000 ist belegt: Ändere nur die linke Portnummer in der Compose-Datei, zum Beispiel 3100:3000, und passe NEXTAUTH_URL an.
  • Datenträger füllt sich: Bilder und archivierte Seiten liegen dauerhaft im Daten-Volume; überwache dessen Größe.

10. Quellen und Videos

Technischer Stand: 26. August 2026. Die offizielle Dokumentation zeigte bei der Prüfung Karakeep v0.33.0; die Anleitung verwendet bewusst den dokumentierten stabilen Tag release statt einer erfundenen festen Version.

Fertig

Karakeep läuft jetzt unter http://<server-ip>:3000, das erste Konto besitzt Administratorrechte und offene Registrierungen sind gesperrt. Speichere einen neuen Link und suche nach einem Wort aus dessen Titel, um Webdienst, Crawler und Suche gemeinsam zu prüfen.