Karakeep 完整教學 2026:2.9 萬星 AI 書籤管理,自動標籤+語意搜尋+CLI/Agent 整合,Docker 三步自架(含 Ollama 本地模型與成本實算)

Karakeep(前身 Hoarder)是 2.9 萬星的自架書籤管理系統:丟進連結、圖片、PDF 就自動抓標題、截圖、全文並用 LLM 標籤,支援全文+語意搜尋、OCR、RSS 自動收、CLI 與 Agent Skills。本文整理 Docker Compose 三步安裝、OpenAI/Ollama/Gemini/OpenRouter 七種模型接法、每 6,000 個書籤不到 1 美元的成本實算、搜尋語法速查表、與 Linkwarden/Wallabag/memos 的差異,以及自架前必須知道的爬蟲 SSRF 風險。

  • Dennis
  • 9 分鐘閱讀
Karakeep 完整教學 2026:2.9 萬星 AI 書籤管理,自動標籤+語意搜尋+CLI/Agent 整合,Docker 三步自架(含 Ollama 本地模型與成本實算)

Karakeep 是一套可以自己架的「什麼都存」書籤系統:連結、圖片、PDF、純文字筆記丟進去,它會自動抓標題、截圖、存整頁快照,再用 LLM 產生標籤與摘要,最後用全文加語意搜尋找回來。Docker Compose 三個服務、四個環境變數就能跑起來,用 Ollama 本地模型的話 AI 成本為零。

為什麼要換掉瀏覽器書籤

痛點瀏覽器書籤PocketRaindropKarakeep
換裝置就亂要登入同步,常衝突已停止服務雲端,不能自架自架,資料在自己手上
只記得「大概在講什麼」只能搜標題弱關鍵字全文+語意搜尋
原文三個月後消失只剩連結有存檔但會關有限整頁快照(monolith)+影片(yt-dlp)
分類要自己動手手動資料夾手動手動LLM 自動標籤+規則引擎
幻燈片、截圖裡的文字搜不到搜不到部分OCR 進全文索引

Pocket 在 Mozilla 宣布關閉後,這類需求大量轉向自架方案;Karakeep 正是吃下這批使用者的專案之一(前身叫 Hoarder,2024 年 2 月開源)。

一表看懂

項目內容
專案karakeep-app/karakeep(前身 Hoarder)
最新版本v0.34.0(2026-10-17 發布)
GitHub 星數29,754(2026-10-18 以 GitHub API 查詢)
Fork/開啟中 issue1,577/702
授權AGPL-3.0(由 Localhost Labs Ltd 持有)
語言TypeScript(Next.js + tRPC + Drizzle)
搜尋引擎Meilisearch(全文)+ embedding(語意)
爬取Puppeteer/真實 Chrome(v0.34 起改用 patchright 降低反爬誤擋)
部署Docker Compose(web + chrome + meilisearch 三個容器)
雲端版免費 50 個書籤;Pro 每月 4 美元或每年 40 美元
自架版免費、功能全開、無書籤數上限

⚠️ 官網首頁寫「28k+ stars」,API 實測是 29,754。兩者都是官方來源,官網數字較可能是快取;本文以 API 為準並註明查證時間。

它實際怎麼運作

步驟行為用到的元件
1. 收進來瀏覽器套件、手機 App、分享選單、RSS、API、CLI 都可以丟web
2. 爬取用真實 Chrome 開頁面,抓標題、描述、OG 圖、截圖chrome 容器
3. 存證整頁 HTML 快照(monolith)、影片用 yt-dlp 下載web + 儲存卷
4. 理解抽全文、OCR 圖片、LLM 產生標籤與摘要、算 embedding你的 LLM 供應商
5. 索引全文丟 Meilisearch,向量丟向量索引meilisearch
6. 找回關鍵字、語意、篩選語法、清單、標籤web/App/CLI/API

三步安裝(Docker Compose)

步驟 1:建目錄、抓 compose 檔

mkdir karakeep-app && cd karakeep-app
wget https://raw.githubusercontent.com/karakeep-app/karakeep/main/docker/docker-compose.yml

步驟 2:建立 .env(最小可用版本)

KARAKEEP_VERSION=release
NEXTAUTH_SECRET=用openssl產生的隨機字串
MEILI_MASTER_KEY=另一個隨機字串
NEXTAUTH_URL=http://localhost:3000
OPENAI_API_KEY=sk-xxx

隨機字串用 openssl rand -base64 36 產生。NEXTAUTH_URL 要改成你的網域,正式站一定要走 HTTPS,否則登入 cookie 會有問題。KARAKEEP_VERSION=release 會跟著最新穩定版,想控制升級節奏就釘版本號(例如 0.34.0)。

步驟 3:啟動

docker compose up -d

打開 http://localhost:3000 會看到登入頁;第一個註冊的帳號會自動成為管理員。之後再進 Admin Settings 把註冊關掉。

官方 compose 檔的三個服務長這樣(原文摘要):

services:
  web:
    image: ghcr.io/karakeep-app/karakeep:${KARAKEEP_VERSION:-release}
    ports:
      - 3000:3000
    volumes:
      - data:/data
    environment:
      MEILI_ADDR: http://meilisearch:7700
      BROWSER_WEB_URL: http://chrome:9222
      DATA_DIR: /data # DON'T CHANGE THIS
  chrome:
    image: ghcr.io/karakeep-app/karakeep-chrome:release
    init: true
    command: ["--disable-gpu", "--disable-dev-shm-usage", "--hide-scrollbars",
              "--disable-blink-features=AutomationControlled", "--window-size=1440,900"]
  meilisearch:
    image: getmeili/meilisearch:v1.41.0
    volumes:
      - meilisearch:/meili_data

更新時:釘版本就改版本號再 docker compose up -d;用 release 標籤則要 docker compose up --pull always -d 強制拉新版。

接 AI:七種供應商,Local 也能跑

自動標籤與摘要靠 LLM,語意搜尋靠 embedding。所有設定都是環境變數,改完重啟 docker compose up -d 生效。

供應商關鍵設定適合誰
OpenAIOPENAI_API_KEY想最快跑起來、不在乎幾美元成本
Ollama(OpenAI 相容,推薦)OPENAI_API_KEY=ollama+OPENAI_BASE_URL=http://你的IP:11434/v1有 GPU、要完全離線
Ollama(原生 API)OLLAMA_BASE_URL,且不能設 OPENAI_API_KEY舊教學沿用
GeminiOPENAI_BASE_URL=https://generativelanguage.googleapis.com/v1beta已有 Google 帳單
OpenRouterOPENAI_BASE_URL=https://openrouter.ai/api/v1想混用多家模型
PerplexityOPENAI_BASE_URL=https://api.perplexity.ai已在用 sonar
Azure OpenAIOPENAI_BASE_URL=https://<資源>.openai.azure.com/openai/v1/企業合規需求
Cloudflare Workers AIOPENAI_BASE_URL=https://api.cloudflare.com/client/v4/accounts/<id>/ai/v1想用邊緣免費額度

本機 Ollama 的完整範例(模型要先 ollama pull):

OPENAI_API_KEY=ollama
OPENAI_BASE_URL=http://192.168.1.50:11434/v1
INFERENCE_TEXT_MODEL=gemma3
INFERENCE_IMAGE_MODEL=llava
EMBEDDING_TEXT_MODEL=embeddinggemma
EMBEDDING_DIMENSIONS=768
EMBEDDING_CONTEXT_LENGTH=2048

兩個常見坑:第一,容器裡的 localhost 是你自己,不是主機,要用內網 IP 或 compose 服務名。第二,模型不支援結構化輸出時要加 INFERENCE_OUTPUT_SCHEMA=plain,否則標籤產生會一直失敗。

成本實算:6,000 個書籤不到 1 美元

官方「Tagging Costs」頁的說法:

類型使用模型官方估算
文字標籤gpt-6-luna約 6,000+ 個書籤 < 1 美元
圖片標籤gpt-4o-mini(低解析度模式)約 1,000+ 張圖 < 1 美元
自架 Ollama你自己選的模型0 元,只吃電與顯存

換句話說,一天存 20 個連結,一整年的 AI 成本大概是一杯手搖飲的價格。真正貴的從來不是 API,是你在那邊手動分類的時間。

搜尋語法:比資料夾好用太多

Karakeep 內建一套查詢語法,空白等於 AND,and/or 可明確組合,前面加 - 或 ! 代表排除,括號可群組。

語法意思範例
is:fav我的最愛is:fav
-is:archived排除已封存-is:archived
is:tagged有標籤的is:tagged
has:notes有寫筆記has:notes
has:highlights有畫重點has:highlights
is:link / is:text / is:media依型別is:media
is:broken連結失效或爬取失敗is:broken
url: / title:子字串比對title:"Docker 教學"
#tag 或 tag:標籤#docker
list:清單list:reading
after: / before:建立日期after:2026-01-01
feed:來自某個 RSSfeed:hn

實用組合:#ai -is:archived has:highlights after:2026-07-01 = 今年下半年、有畫重點、還沒封存的 AI 主題書籤。

CLI 與 AI Agent 整合

這版最容易被忽略的功能:Karakeep 有官方 CLI 與 Agent Skills,等於把書籤庫變成 agent 可以讀寫的資料層。

npm install -g @karakeep/cli
# 或用 Docker,不裝 Node
docker run --rm ghcr.io/karakeep-app/karakeep-cli:release --help

karakeep --api-key <你的key> --server-addr https://你的網域 whoami
karakeep bookmarks list --json
karakeep bookmarks add --url https://example.com

API key 在 Settings 裡產生;也可以寫進 ~/.config/karakeep/config.json:

{ "serverAddr": "https://your-karakeep.example.com", "apiKey": "你的key" }

Agent 端安裝 skill:

npx skills add karakeep-app/karakeep

裝好之後,Claude Code、Codex、Hermes 這類代理就能用自然語言「幫我找出上個月存的所有 RAG 文章,整理成清單」直接操作。對每天在餵 agent 資料的人來說,這比 UI 好用。

把舊資料搬進來

來源方式
Chrome 書籤內建匯入器(HTML)
Pocket內建匯入器(趁服務關閉前先匯出)
Linkwarden內建匯入器
Omnivore內建匯入器
Tab Session Manager內建匯入器
瀏覽器書籤雙向同步floccus
任何工具REST API 或 CLI 批次匯入

與同類方案比較

專案星數(2026-10-18 API)授權定位自架AI 自動標籤
Karakeep29,754AGPL-3.0書籤+筆記+圖片+PDF,AI 標籤與語意搜尋✅✅(可本地)
Linkwarden20,142AGPL-3.0連結/文章存檔、團隊協作收藏✅部分
Wallabag13,017MIT老牌 read-it-later,PHP✅❌
memos63,894MIT輕量碎片筆記(Go),時間軸式✅❌
Raindrop.io未開源專有打磨很好的雲端書籤❌部分
Pocket已停止服務—前一代霸主❌❌

選型邏輯很簡單:想要「存了會自己長出秩序」選 Karakeep;只是要「把文章存起來慢慢讀」選 Wallabag 或 Linkwarden;只想快速記一句話,memos 更輕。

風險與限制(自架前務必看)

1. 爬蟲就是一台瀏覽器在你的網段上跑。 官方安全文件明講:任何能提交書籤的使用者,都可以讓你的伺服器去爬他指定的網址,這可能洩漏你的來源 IP、被拿來探測內網端點。Karakeep 有基本的 SSRF 防護,但官方明說只擋掉部分風險。不要開放給不信任的使用者註冊,要就讓爬蟲走外部代理或 Browserless。

2. 備份要自己做。 資料在 data volume 的 SQLite,搜尋索引在 Meilisearch volume。備份要一起備,索引重建很慢。官方有 backup worker 與 API,但沒幫你排程到雲端。

3. API 成本會失控的兩種情況。 一次匯入幾萬個書籤會瞬間觸發大量 inference;把 INFERENCE_TEXT_MODEL 指到貴的旗艦模型也是。建議匯入前先設好便宜模型,跑完再視需要重算。

4. AGPL-3.0。 自己用、公司內部用都沒問題;若要拿去做成對外服務並修改原始碼,就必須開源你的修改。商業產品要特別注意。

5. 版本節奏。 v0.34.0 才剛在 2026-10-17 發布,行動 App 的更新還要等 App Store/Google Play 審核(官方 release note 自己寫的)。專案有 702 個開啟中 issue,屬於「功能長很快、雜訊也不少」的階段,正式環境建議釘版本號。

6. 中文支援。 介面有多語系,但自動標籤的中文品質取決於你選的模型;用 gpt 系列或 Qwen 類模型標中文內容會比小模型穩。這點官方沒有實測數據,屬於社群經驗。

誰適合,誰不需要

適合不需要
每天存 10 篇以上文章、需要日後找回一個月存不到 10 個連結
已經有 NAS/VPS/homelab完全不想維護伺服器
在意資料留在自己手上只想要「按一下就好」的體驗
想讓 AI agent 讀自己的資料庫只需要瀏覽器書籤列
常存 PDF、圖片、截圖需要 OCR只存純文字連結

怎麼開始

  1. 先試再架:官方 demo(try.karakeep.app)是唯讀的,可以先看介面。
  2. 不想維運:雲端 Pro 每月 4 美元或每年 40 美元(省 17%),50,000 個書籤、50GB、含 AI 標籤;免費版 50 個書籤、100MB。
  3. 要自己架:照上面三步裝完,先接 OpenAI 跑一週,確認工作流真的用得到,再把模型換成 Ollama 省錢。
  4. 接 agent:裝 CLI 與 agent skill,讓它變成你 AI 工作流的知識底座。

站內延伸閱讀

資料來源與查證方法

本文未實測項目:未實際以 Ollama 跑完整標籤流程、未測試大規模匯入(萬級以上)的耗時、未驗證行動 App 離線下載品質。文中成本為官方文件估算值,實際依內容長度與模型而定。

📬 訂閱 most.tw 電子報

每週精選 AI 工具教學與技術乾貨,直接送到你的信箱。免費、隨時可退訂。

訂閱即表示同意收到 most.tw 電子報,隨時可一鍵退訂。

💬 有問題想討論?加 LINE 聯絡我

歡迎透過 LINE 官方帳號直接留言,我會盡快回覆你的問題。

加入 LINE 好友