Skip to content

Self-host Karakeep

updated Sep 2026prices checked · Jul 2026Install verified on Ubuntu 26.04 · Sep 2026 · how we test
We earn commissions when you shop through the links below. Full disclosure →

A self-hosted "bookmark-everything" app (formerly Hoarder) — links, notes, images and PDFs, crawled and full-text searchable, with optional AI tagging via OpenAI or Ollama.

Key facts

CategoryBookmarks
LicenseAGPL-3.0
StackTypeScript, Next.js
Min RAM2048 MB
Official imageyes
Measured idle RAM679 MB
Difficulty
Our recommendation

Pick Karakeep (previously Hoarder) when you want to keep what you save, not just where it lives: links, notes, images and PDFs, crawled by a headless Chrome and full-text indexed in Meilisearch, with official iOS/Android apps, browser extensions, RSS auto-saving and highlights. AI tagging and summarization are optional and work with OpenAI, any OpenAI-compatible API, or a local Ollama. It is AGPL-3.0 and runs as three containers from upstream's Compose file. If you only need a tagged list of links, linkding does that in one small container; for offline article reading, Wallabag is the dedicated read-it-later tool.

Follow the Karakeep deploy guide →

What you need

  • Any VPS with at least 2048 MB of RAM
  • A domain you control — most self-hosted setups need HTTPS in front of them
  • Under an hour if you've used Docker before
Where to host itaffiliate disclosure
Hetzner Cloudrun it on
From $23.59/mo · 2 vCPU / 4 GB / 80 GB · EU + US
Get Hetzner Cloud (opens in new tab)
Kamaterafree trial
From $4/mo · 1 vCPU / 1 GB / 20 GB · US + EU + Asia
Start free on Kamatera → (opens in new tab)
DigitalOceanalso works on
From $6/mo · 1 vCPU / 1 GB / 25 GB · US + EU + Asia
Deploy on DigitalOcean → (opens in new tab)

Paid link — we earn a commission if you shop through it.

Install

Run these commands on your server:

# Karakeep — official Docker Compose (web + Chrome crawler + Meilisearch), per docs.karakeep.app/installation/docker
mkdir karakeep-app && cd karakeep-app
wget https://raw.githubusercontent.com/karakeep-app/karakeep/main/docker/docker-compose.yml
cat > .env <<EOF
KARAKEEP_VERSION=release
NEXTAUTH_SECRET=$(openssl rand -base64 36)
MEILI_MASTER_KEY=$(openssl rand -base64 36)
NEXTAUTH_URL=http://SERVER_IP:3000
EOF
# optional AI tagging: add OPENAI_API_KEY=... (or OLLAMA_BASE_URL=... for local models)
docker compose up -d
# open http://SERVER_IP:3000 — the first account to sign up becomes admin

What you take on

Karakeep's defaults are built for a trusted homelab, so four things in its own docs matter before you put it on a public VPS:

non-negotiableSignups are open by default (DISABLE_SIGNUPS defaults to false) and the first account to register becomes the administrator. Create yours straight after docker compose up -d, then add DISABLE_SIGNUPS=true to .env and re-run docker compose up -d — upstream notes every .env change needs that.
non-negotiableThe crawler fetches whatever URL a user submits, from your server. The security page warns this can reach internal endpoints and expose your origin IP; Karakeep's SSRF checks "mitigate only some of the risks", so keep the instance to trusted users or set CRAWLER_HTTP_PROXY/CRAWLER_HTTPS_PROXY to a proxy outside your network.
non-negotiableKARAKEEP_VERSION=release tracks the newest stable image, and updating then needs docker compose up --pull always -d. The docs suggest pinning a version to control upgrades; Meilisearch version upgrades have their own procedure on the troubleshooting page.
non-negotiableWithout OPENAI_API_KEY or OLLAMA_BASE_URL, automatic tagging is skipped; with OpenAI, every tagged bookmark is a billed inference (upstream's tagging-costs page covers the model choices). Semantic search also needs an embedding model, and changing that model later means regenerating embeddings for every bookmark.
non-negotiableThe 2 GB floor is our estimate for the default three-container stack (app, karakeep-chrome, Meilisearch); Karakeep publishes no RAM requirement. A local Ollama needs far more on top. The minimal single-container install is smaller but disables search entirely and weakens crawling.

An alternative to

Head-to-head

More self-hosted tools

We use analytics cookies (Google Analytics, PostHog) to see which guides are useful. No ad networks, no cross-site tracking. See our privacy policy.