The problem with cloud bookmark managers
Pocket, Raindrop.io, Instapaper — they're convenient, but every link you save teaches an ad network about your interests. More practically: if the service shuts down (Pocket was acquired, Instapaper was briefly EU-blocked), your archive goes with it. And none of them give you full-text search across the actual page content — only the title and tags you manually added.
Karakeep (formerly Hoarder) is the self-hosted answer: open-source under AGPL-3.0, 26 k+ GitHub stars, and deployable as three Docker containers on a 2 GB VPS in under ten minutes.
What Karakeep does that cloud managers don't
- Crawls and archives the full page content at save time — find articles by their body text, not just their title, even after the original page disappears.
- Headless Chrome screenshots every URL — visual archive of what the page looked like when you saved it.
- AI auto-tagging via local Ollama or OpenAI — drop a URL and get relevant tags generated automatically; no manual tagging required.
- Full-text search via Meilisearch — millisecond queries across all saved content, including PDF text and image OCR.
- PWA for mobile — add bookmarks from your phone's native share sheet directly to your self-hosted instance.
- REST API — push and pull bookmarks programmatically; connect n8n, browser extensions or custom pipelines.
Architecture: three containers on one VPS
Karakeep runs three Docker containers:
1. The Karakeep application (Node.js) — handles the web interface, REST API, and orchestrates crawling and AI calls. Port 3000, ~300 MB RAM at idle.
2. Meilisearch — full-text search engine, indexes all saved content. Internal only (port 7700). ~200 MB RAM at idle.
3. Alpine Chrome (headless) — crawls URLs and takes screenshots on behalf of the app. Internal only (port 9222). ~300 MB RAM at idle.
Total at idle: 800 MB–1.2 GB. A 2 GB ServOrbit VPS is comfortable; a 4 GB VPS is recommended if you're also running Ollama on the same machine.
Self-hosting Karakeep on a VPS: step by step
Order a VPS
Choose a ServOrbit Cloud VPS with at least 2 GB RAM (Ubuntu 22.04). If you plan to run Ollama for local AI tagging on the same server, a 4 GB VPS is the better choice — Ollama itself needs at least 4 GB for a small model like
phi3:mini.Deploy from the ServOrbit marketplace
Select Karakeep in the Collaboration & Productivity section of the marketplace. The provisioner starts all three containers, generates the
NEXTAUTH_SECRETandMEILI_MASTER_KEYautomatically, and makes the web interface available on port 3000. Openhttp://your-vps-ip:3000in your browser — you'll see the sign-up page where the first registered user becomes the admin.Set up your domain + SSL
Point a subdomain (e.g.
bookmarks.yourdomain.com) to your VPS IP in Cloudflare or your DNS provider. The standard Nginx + Let's Encrypt reverse proxy: aserveronlisten 443 ssl, aserver_name bookmarks.yourdomain.com, and insidelocation /aproxy_pass http://127.0.0.1:3000;withproxy_set_header Host $host;andproxy_set_header X-Real-IP $remote_addr;.Once SSL is in place, update
NEXTAUTH_URL=https://bookmarks.yourdomain.comin yourdocker-compose.ymland restart the app container withdocker compose up -d. NextAuth requires the URL to match exactly for the auth cookie to work.Connect Ollama for local AI tagging (optional)
If Ollama runs on the same VPS (it is in the ServOrbit marketplace), edit the Karakeep environment in
docker-compose.ymland addOLLAMA_BASE_URL: http://localhost:11434andOLLAMA_KEEP_ALIVE: "10m".In the Karakeep interface, go to Settings → AI and pick your Ollama model (e.g.
phi3:minifor speed,llama3.2for quality). Save a link — within seconds the tags and summary appear. Without Ollama or an OpenAI key, Karakeep still works fully; auto-tagging is optional.Install the browser extension and mobile PWA
Install the Karakeep browser extension (Chrome/Firefox) and point it at your instance URL. On mobile, open your instance in a browser and 'Add to Home Screen' — the PWA installs like a native app and integrates with the native share sheet.
Import your existing bookmarks
Go to Settings → Import. Supported: Pocket JSON, Netscape bookmark files (all major browsers, Raindrop.io, Pinboard), and Karakeep's own backup format. Large imports process in the background.
Logging in for the first time
Open the URL then click "Sign up": the very first account registered becomes the administrator of the instance. Create it immediately.
Pair Karakeep with n8n for automated saving
Karakeep's REST API accepts POST /api/v1/bookmarks with {"url": "...", "title": "..."}. In n8n, an HTTP Request node can push URLs from RSS feeds, newsletters, Slack links or any webhook directly into Karakeep — no browser required.
Karakeep as an AI knowledge base
The combination of Karakeep + Ollama on a single VPS gives you a fully private, self-hosted knowledge base where an LLM reads and tags everything you save, and full-text search finds it again instantly — with no data leaving your server.
Karakeep also exposes a search API — GET /api/v1/bookmarks?q=query — that n8n workflows or LLM agents can query. Your saved knowledge becomes a private, queryable dataset rather than a graveyard of forgotten tabs.