Karakeep: ein persönliches Lesezeichenarchiv auf einem VPS installieren
Einen Link zu speichern ist einfach. Ihn ein halbes Jahr später wiederzufinden, ist deutlich schwieriger – besonders wenn sich die Seite verändert hat, verschwunden ist oder zwischen Hunderten Lesezeichen untergegangen ist.
Karakeep speichert nicht nur die URL, sondern auch den Seiteninhalt, eine Vorschau, Notizen, Bilder und PDF-Dateien. Das Archiv lässt sich nach Text durchsuchen, in Listen organisieren und mithilfe von KI automatisch verschlagworten. Es läuft auf Ihrem eigenen VPS, und die Anbindung eines Sprachmodells ist optional.
Im Folgenden betrachten wir die Funktionen von Karakeep, die Serveranforderungen und die Installation unter Ubuntu 24.04 mit Docker Compose, HTTPS und Datensicherung.
Karakeep in sieben Schritten
- Einen Linux-VPS erstellen und eine Subdomain wie
keep.example.comdarauf verweisen. - Docker Engine und Docker Compose installieren.
- Die offizielle Datei
docker-compose.ymlherunterladen. - Geheimnisse erzeugen und Karakeep, Chrome sowie Meilisearch starten.
- Den internen Port 3000 schließen und HTTPS über Caddy einrichten.
- Das erste Konto erstellen und anschließend die offene Registrierung deaktivieren.
- Die Browsererweiterung oder mobile App installieren und Lesezeichen importieren.
Für den Start ist kein KI-Schlüssel erforderlich. Ohne ihn funktionieren das Speichern von Seiten, Listen, Notizen, OCR und die Volltextsuche weiterhin. Automatische Tags und Zusammenfassungen werden dann nicht erstellt.
Was ist Karakeep?
Karakeep ist eine quelloffene, selbst gehostete Anwendung, mit der Links, Textnotizen, Bilder und PDF-Dateien in einer gemeinsamen Bibliothek gespeichert werden können. Früher hieß das Projekt Hoarder.
Der Name stammt vom arabischen Wort karakeeb. Damit werden verstreute Dinge bezeichnet, die wie Unordnung wirken, aber einen verborgenen Wert haben können. Das beschreibt eine typische Lesezeichensammlung sehr treffend: Es gibt viele nützliche Inhalte, doch das Gesuchte ist schwer zu finden.
Nachdem ein Link hinzugefügt wurde, ruft Karakeep Titel und Beschreibung ab, extrahiert den lesbaren Text, erstellt eine Vorschau und speichert bei Bedarf eine lokale Kopie der Seite.
| Funktion | Browser-Lesezeichen | Karakeep |
|---|---|---|
| Gespeicherte Inhalte | URL und Titel | Text, Vorschau, Notizen und Anhänge |
| Suche | Nach Titel und Adresse | Nach Inhalt, Tags und Notizen |
| Wenn die Seite verschwindet | Eine nicht mehr funktionierende URL bleibt | Text, Screenshot oder vollständiges Archiv bleiben erhalten |
| Organisation | Ordner | Tags, manuelle und intelligente Listen |
| Zugriff | Im Browser | Web, Erweiterungen, iOS und Android |
| Server | Browserprofil oder dessen Cloud | Ihr VPS oder Heimserver |
Die wichtigsten Funktionen von Karakeep
Links, Notizen, Bilder und PDF-Dateien
Jeder Eintrag kann ein Link, eine Textnotiz oder eine hochgeladene Datei sein. OCR extrahiert Text aus Bildern und PDF-Dateien, sodass auch diese durchsuchbar werden. Zu einem Material können eine Notiz, ein Zitat oder eine zusätzliche Datei hinzugefügt werden.
Suche nach Inhalten
Meilisearch indexiert gespeicherte Texte, Notizen und Metadaten. Der exakte Titel muss nicht bekannt sein; eine Formulierung oder ein Thema reicht aus. Wenn Embeddings eingerichtet sind, steht außerdem eine semantische Suche nach Bedeutung zur Verfügung.
Intelligente und gemeinsame Listen
Ein Eintrag kann gleichzeitig in mehreren Listen enthalten sein, ohne dupliziert zu werden. Eine Liste kann privat bleiben, per Link freigegeben oder gemeinsam mit anderen Benutzern bearbeitet werden.
Eine intelligente Liste ist eine gespeicherte Suchanfrage, die sich automatisch aktualisiert. Sie kann beispielsweise alle Materialien mit dem Tag ai anzeigen, die in der vergangenen Woche hinzugefügt wurden.
Archivierung von Webseiten
Standardmäßig speichert Karakeep den extrahierten Text und einen Screenshot des sichtbaren Seitenbereichs. Zusätzlich können eine vollständige Seitenaufnahme, eine PDF-Datei oder ein eigenständiges HTML-Archiv aktiviert werden. Das schützt die Bibliothek vor toten Links, erhöht jedoch den Speicherverbrauch.
Seiten hinter einer Anmeldung, mit komplexem Bot-Schutz oder interaktive Anwendungen werden möglicherweise nicht vollständig gespeichert. Wichtige Inhalte sollten zusätzlich als PDF oder Datei hochgeladen werden.
Optionale KI-Kennzeichnung
Karakeep kann über eine externe OpenAI-kompatible API oder ein lokales Ollama-Modell Tags und kurze Zusammenfassungen erzeugen. Auch ohne KI bleibt die Anwendung ein vollwertiger Lesezeichenmanager.
Ein lokales Modell überträgt die Materialien nicht an einen externen Anbieter, benötigt jedoch deutlich mehr Arbeitsspeicher. Daher wird Ollama häufig getrennt von der eigentlichen Karakeep-Instanz betrieben.
Serveranforderungen von Karakeep
Die offizielle Dokumentation nennt keine festen Mindestwerte für CPU und RAM. Eine vollständige Installation besteht aus drei Containern:
- Karakeep speichert die Datenbank und stellt die Benutzeroberfläche bereit;
- Headless Chrome öffnet Webseiten, führt JavaScript aus und erstellt Screenshots;
- Meilisearch indexiert die Bibliothek.
Eine praxisgerechte Konfiguration für einen Benutzer ohne lokales LLM:
- 2 vCPU;
- 2 GB RAM;
- 20–30 GB SSD oder NVMe;
- Ubuntu 24.04 LTS;
- eine öffentliche IP-Adresse und eine Domain.
Für mehrere Benutzer, einen großen Import, viele RSS-Feeds und PDF-Dateien sind 4 GB RAM komfortabler. Der benötigte Speicherplatz hängt vom Archivierungsmodus ab: Text beansprucht wenig Platz, vollständige Screenshots, PDF-Dateien und Videos können die Bibliothek dagegen schnell vergrößern.
Karakeep auf einem VPS installieren
In diesem Beispiel werden Ubuntu 24.04 und die Subdomain keep.example.com verwendet.
1. DNS und Firewall einrichten
Erstellen Sie einen DNS-Eintrag vom Typ A, der auf die IP-Adresse des Servers verweist, und stellen Sie anschließend eine SSH-Verbindung her:
ssh root@SERVER_IP
apt update && apt upgrade -y
ufw allow OpenSSH
ufw allow 80/tcp
ufw allow 443/tcp
ufw --force enableSchließen Sie die aktuelle SSH-Sitzung erst, nachdem Sie geprüft haben, dass eine neue Verbindung funktioniert.
2. Docker installieren
apt install -y ca-certificates curl
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
-o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
tee /etc/apt/sources.list.d/docker.sources > /dev/null <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
apt update
apt install -y docker-ce docker-ce-cli containerd.io \
docker-buildx-plugin docker-compose-plugin
docker compose version3. Die Karakeep-Konfiguration herunterladen
mkdir -p /opt/karakeep
cd /opt/karakeep
curl -fsSLo docker-compose.yml \
https://raw.githubusercontent.com/karakeep-app/karakeep/main/docker/docker-compose.ymlErzeugen Sie zwei unterschiedliche Geheimnisse:
openssl rand -base64 36
openssl rand -base64 36 | tr -dc 'A-Za-z0-9'Erstellen Sie /opt/karakeep/.env:
KARAKEEP_VERSION=release
NEXTAUTH_SECRET=ERSTES_SECRET_EINFUEGEN
MEILI_MASTER_KEY=ZWEITES_SECRET_EINFUEGEN
NEXTAUTH_URL=https://keep.example.com
DISABLE_SIGNUPS=false
DB_WAL_MODE=true
RATE_LIMITING_ENABLED=trueVeröffentlichen Sie .env nicht: Das erste Geheimnis signiert Authentifizierungstoken, das zweite schützt Meilisearch.
4. Den internen Port schließen
Ersetzen Sie in docker-compose.yml:
ports:
- 3000:3000durch:
ports:
- 127.0.0.1:3000:3000Dadurch ist Port 3000 nicht mehr direkt aus dem Internet erreichbar.
5. Die Container starten
cd /opt/karakeep
docker compose up -d
docker compose psDie Dienste web, chrome und meilisearch sollten laufen. Die Protokolle lassen sich mit folgendem Befehl anzeigen:
docker compose logs --tail=2006. HTTPS einrichten
apt install -y caddy
cat > /etc/caddy/Caddyfile <<'EOF'
keep.example.com {
reverse_proxy 127.0.0.1:3000
}
EOF
caddy validate --config /etc/caddy/Caddyfile
systemctl reload caddyWenn DNS korrekt eingerichtet ist und die Ports 80 und 443 geöffnet sind, ruft Caddy automatisch ein TLS-Zertifikat ab. Öffnen Sie anschließend https://keep.example.com.
7. Einen Administrator erstellen und die Registrierung schließen
Der zuerst registrierte Benutzer wird automatisch zum Administrator. Setzen Sie nach der Kontoerstellung in .env:
DISABLE_SIGNUPS=trueÜbernehmen Sie die Änderung:
cd /opt/karakeep
docker compose up -dDer Administrator kann weitere Konten weiterhin manuell erstellen.
Import, Erweiterungen und mobile Apps
Karakeep bietet Erweiterungen für Chrome, Firefox und Safari sowie Apps für iOS und Android. Auf einem Smartphone wird ein Link über das systemweite Teilen-Menü an das Archiv gesendet.
Vorhandene Lesezeichen können aus einer üblichen HTML-Datei des Browsers, aus Pocket, Omnivore und weiteren unterstützten Diensten importiert werden. Ein großes Archiv sollte besser in mehreren Teilen hinzugefügt werden: Der Server muss die Seiten öffnen, Text extrahieren, Screenshots erstellen und den Suchindex aufbauen.
KI und vollständige Archivierung aktivieren
Fügen Sie für OpenAI Folgendes zu .env hinzu:
OPENAI_API_KEY=IHR_API_SCHLUESSELBei einem anderen OpenAI-kompatiblen Dienst kann zusätzlich OPENAI_BASE_URL erforderlich sein. Für ein lokales Modell wird OLLAMA_BASE_URL mit einer Adresse verwendet, die aus dem Container erreichbar ist.
Eine vollständige lokale Kopie der Seite wird separat aktiviert:
CRAWLER_FULL_PAGE_ARCHIVE=trueAußerdem stehen CRAWLER_FULL_PAGE_SCREENSHOT=true und CRAWLER_STORE_PDF=true zur Verfügung. Aktivieren Sie nicht ohne Not alle Modi, da sie den Speicherverbrauch deutlich erhöhen. Führen Sie nach einer Änderung an .env den Befehl docker compose up -d aus.
Sicherheit, Aktualisierungen und Sicherungen
Der Karakeep-Crawler öffnet die von Benutzern gespeicherten Adressen aus dem Netzwerk Ihres Servers. Lassen Sie deshalb keine offene Registrierung zu und gewähren Sie nur vertrauenswürdigen Personen Zugriff. Ein grundlegender SSRF-Schutz ist vorhanden, für einen öffentlichen Dienst empfiehlt das offizielle Projekt jedoch, den Browser zu isolieren oder über einen eingeschränkten Proxy zu leiten.
Verwenden Sie außerdem HTTPS und starke Passwörter, veröffentlichen Sie Port 3000 nicht und aktualisieren Sie die Container regelmäßig:
cd /opt/karakeep
docker compose up --pull always -dDie Hauptdatenbank und die gespeicherten Materialien befinden sich im Docker-Volume data. Stoppen Sie die Container vor dem Kopieren:
mkdir -p /var/backups/karakeep
cd /opt/karakeep
docker compose stop
docker run --rm \
-v karakeep_data:/source:ro \
-v /var/backups/karakeep:/backup \
alpine sh -c 'tar czf /backup/data-$(date +%F).tar.gz -C /source .'
cp .env docker-compose.yml /var/backups/karakeep/
docker compose startDer Name karakeep_data setzt voraus, dass das Projektverzeichnis /opt/karakeep lautet; prüfen können Sie dies mit docker volume ls. Der Suchindex von Meilisearch kann neu aufgebaut werden, bei einer großen Bibliothek ist es jedoch sinnvoll, auch das Volume karakeep_meilisearch zu sichern.
Übertragen Sie das Archiv aus /var/backups/karakeep auf einen anderen Server, ein NAS oder einen Objektspeicher. Eine Kopie auf demselben VPS schützt nicht vor einem Festplattenausfall oder dem Löschen der virtuellen Maschine.
Welchen VPS sollte man für Karakeep wählen?
Für eine persönliche Bibliothek ohne Ollama genügt ein Linux-VPS mit 2 vCPU, 2 GB RAM und 20–30 GB NVMe. Für einen großen Import, mehrere Benutzer und eine vollständige Archivierung sind 4 GB RAM und ein größerer Datenträger empfehlenswert.
Karakeep lässt sich auf einem VPS von tropic.host betreiben: Eine feste IP-Adresse vereinfacht die Domainanbindung, während NVMe für SQLite, den Suchindex und viele kleine Dateien vorteilhaft ist. Die Ressourcen können mit dem Wachstum des Archivs erhöht werden.
Planen Sie die Ressourcen für ein lokales Ollama separat. Selbst ein kleines Sprachmodell kann mehr Arbeitsspeicher benötigen als der gesamte eigentliche Karakeep-Stack.
Fazit
Karakeep verwandelt verstreute Links in eine persönliche, durchsuchbare Bibliothek. Es speichert Seiten, Notizen, Bilder und PDF-Dateien und unterstützt OCR, Listen, Erweiterungen, mobile Apps sowie eine optionale KI-Kennzeichnung.
Für den Start genügen ein kleiner VPS, Docker Compose, eine Domain und HTTPS. Schließen Sie nach der Installation die Registrierung, überwachen Sie den Speicherverbrauch und bewahren Sie eine externe Sicherung auf.
FAQ
Ist Karakeep kostenlos?
Die selbst gehostete Version ist quelloffen und erfordert kein verpflichtendes Abonnement. Kosten entstehen für VPS, Domain, Sicherungsspeicher und bei Bedarf für eine externe KI-API.
Benötigt Karakeep einen API-Schlüssel?
Nein. Das Speichern und Indexieren von Materialien, Listen, Notizen, OCR und Volltextsuche funktionieren ohne KI. Ein Modell wird für automatische Tags, Zusammenfassungen und verwandte Funktionen benötigt.
Wie viel RAM benötigt Karakeep?
Ein praxisgerechter Einstieg für einen Benutzer ohne Ollama sind 2 GB RAM. Für große Importe, mehrere Benutzer und intensive Verarbeitung sind 4 GB komfortabler.
Kann ich Lesezeichen aus einem Browser oder Pocket importieren?
Ja. Unterstützt werden die übliche HTML-Lesezeichendatei eines Browsers, Pocket, Omnivore und mehrere weitere Formate. Nach dem Import verarbeitet Karakeep die Seiten und fügt sie der Suche hinzu.
Bleibt ein Artikel erhalten, wenn die ursprüngliche Website verschwindet?
Karakeep speichert den extrahierten Text und einen Screenshot, bei aktivierter vollständiger Archivierung außerdem eine lokale Kopie oder PDF-Datei. Seiten hinter einer Anmeldung und komplexe Webanwendungen werden möglicherweise nur teilweise gespeichert.
