03-karakeep.md
kstack: book: Centerpoint Home Lab chapter: Documents & Organization page: Karakeep tags: [karakeep, bookmarks, read-later, productivity]
Overview
emptyKarakeep is a self-hosted bookmark manager and read-it-later service. It crawls
saved URLs for their full text and screenshots, indexes them via Meilisearch,
and supports OCR on images (ocr_langs=eng). Video download is enabled
(yt-dlp backend, no size limit). SMTP is configured for email-to-save via Gmail.
New signups are disabled — account management is manual.
Access
https://bookmark.jeevesconsults.ca
GeoBlock + CrowdSec (own auth)
External-only — no internal home.local route configured.
Configuration
Image: ghcr.io/karakeep-app/karakeep:latest
Key Environment Variables
NEXTAUTH_URL
https://bookmark.jeevesconsults.ca
NEXTAUTH_URL_INTERNAL
http://karakeep-web:3000
NEXTAUTH_TRUST_HOST
true
NEXTAUTH_SECRET
REDACTED
DATA_DIR
/data
ASSETS_DIR
/assets
MEILI_ADDR
http://meilisearch:7700
MEILI_MASTER_KEY
REDACTED
BROWSER_WEB_URL
http://chrome:9222 (headless Chromium)
OCR_LANGS
eng
OCR_CONFIDENCE_THRESHOLD
75
CRAWLER_VIDEO_DOWNLOAD
true
CRAWLER_VIDEO_DOWNLOAD_MAX_SIZE
-1 (unlimited)
CRAWLER_VIDEO_DOWNLOAD_TIMEOUT_SEC
7200
INFERENCE_ENABLE_AUTO_SUMMARIZATION
true
MAX_ASSET_SIZE_MB
50
DISABLE_SIGNUPS
true
EMAIL_VERIFICATION_REQUIRED
false
SMTP_HOST
smtp.gmail.com
SMTP_PORT
587
SMTP_SECURE
true
SMTP_USER
jeeves5454@gmail.com
SMTP_FROM
jeeves5454@gmail.com
SMTP_PASSWORD
REDACTED
Traefik Labels
traefik.http.routers.karakeep.rule: Host(`bookmark.jeevesconsults.ca`)
traefik.http.routers.karakeep.entrypoints: websecure
traefik.http.routers.karakeep.tls.certresolver: letsencrypt
traefik.http.routers.karakeep.middlewares: plex-geoblock@file,crowdsec-bouncer@file,karakeep-headers
traefik.http.middlewares.karakeep-headers.headers.customrequestheaders.X-Forwarded-Proto: https
traefik.http.services.karakeep.loadbalancer.server.port: 3000
Volumes / Bind Mounts
/home/jeeves/docker/karakeep/data
/data
Database and app data
/mnt/data/karakeep
/assets
Saved assets (screenshots, videos)
Stack Companions
Karakeep requires additional sidecar containers (Meilisearch, Headless Chrome) in the same compose network to function. These are not independently accessible.
Notes / Gotchas
X-Forwarded-Proto: https middleware is required for Karakeep (Next.js)
to trust the proxy and generate correct redirect URIs — without it, HTTPS
callbacks will fail.
Video downloads can consume significant storage on /mnt/data/karakeep. The
timeout is 2 hours, which accommodates long-form content.
Meilisearch index data is stored in /data — this must be backed up alongside
the app database for search to remain functional after a restore.
DISABLE_SIGNUPS: true — new accounts must be created manually in the admin UI.
Last Updated: 2026-06-17