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.
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.
2. Offizielle Compose-Datei herunterladen¶
Lade die aktuelle Compose-Datei direkt aus dem offiziellen Karakeep-Repository.
Prüfe, ob Docker die Datei erkennt.
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.
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.
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.
Prüfe den Zustand der Dienste.
Beim ersten Start brauchen Suche und Browserdienst etwas Zeit. Zeige bei Problemen die letzten Protokollzeilen an.
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.
Ergänze am Ende diese Einstellung. Sie verhindert offene Neuregistrierungen; Administratoren können weitere Benutzer später gezielt anlegen.
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.
Ö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.
Erstelle einen lokalen Backup-Ordner.
Kopiere den persistenten Datenordner aus dem angehaltenen Web-Container. Der Befehl
legt einen Unterordner data unter backups an.
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.
Starte den Stack wieder.
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.
Prüfe danach Zustand, Anmeldung und einen gespeicherten Link.
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_URLenthält nicht die tatsächlich verwendete Adresse. - Suche funktioniert nicht: Prüfe
MEILI_MASTER_KEYund die Protokolle vonmeilisearch. - Vorschau bleibt leer: Der Dienst
chromeläuft nicht oder hat zu wenig Arbeitsspeicher. - Änderung an
.envohne Wirkung: Führe erneutdocker compose up -daus. - Port 3000 ist belegt: Ändere nur die linke Portnummer in der Compose-Datei, zum Beispiel
3100:3000, und passeNEXTAUTH_URLan. - 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.
- Karakeep-Dokumentation: Installation mit Docker
- Karakeep-Dokumentation: Umgebungsvariablen
- Karakeep-Dokumentation: häufige Fragen und Benutzerverwaltung
- Video: Karakeep als selbst gehosteter Bookmark-Manager
- Deutsches Video: Karakeep mit Docker und Caddy
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.