Skip to main content

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

Type URL Auth External 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

Variable Value / Notes 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

Host Path Container Path Purpose /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

    The 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