ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Karakeep(前身 Hoarder)Bookmark Everything 应用全解析:AI 自动标签、全文检索与自托管架构

Karakeep(前身 Hoarder)Bookmark Everything 应用全解析:AI 自动标签、全文检索与自托管架构 Karakeep前身 HoarderBookmark Everything 应用全解析AI 自动标签、全文检索与自托管架构【免费下载链接】hoarderA self-hostable bookmark-everything app (links, notes and images) with AI-based automatic tagging and full text search项目地址: https://gitcode.com/GitHub_Trending/ho/hoarderKarakeep原名 Hoarder是一个以“自托管为第一公民”设计的开源Bookmark Everything应用支持收藏链接、笔记、图片与 PDF并借助 AI 自动为内容打标签与生成摘要。本文基于仓库内 v0.31.0 版入门文档 展开结合源码、容器编排与配置实现带你全面了解它的功能边界、技术架构与快速上手指南。Karakeep 是什么Karakeeppreviously Hoarder是一款开源、可自托管的收藏一切Bookmark Everything应用它用 AI 自动为丢给它的内容打标签并把自托管self-hosting作为一等公民来构建。项目采用 AGPL-3.0 许可仓库根目录的 README.md 对其定位的描述是a self-hostable bookmark-everything app with a touch of AI for the data hoarders out there与 v0.31.0 文档中的定义完全一致。从仓库结构可以直观看出它并非单一 Web 应用而是一个多端、多包组成的 monorepo由 pnpm-workspace.yaml 与 turbo.json 管理apps/web基于 Next.js 的 Web 主应用apps/mobileExpo/React Native 实现的 iOS 与 Android 客户端apps/browser-extensionChrome/Firefox 快速收藏插件apps/cli与apps/mcp命令行工具与 MCP 服务apps/workers后台任务工作器爬取、AI 推理、索引等packages/db、packages/api、packages/trpc、packages/shared数据库、API 路由、tRPC 服务与共享逻辑。功能全景v0.31.0 入门文档完整列举了 Karakeep 的能力清单下面逐条展开并标注仓库内的实现证据。内容收藏链接、笔记、图片与 PDF 收藏链接、记录简单笔记并存储图片和 PDF⬇️ 自动抓取链接的标题、描述与配图banner image 将书签整理进列表lists 与其他人协作用于同一列表。书签bookmark是系统的核心数据模型其字段定义可在 packages/db/schema.ts 中查看支持的类型包括链接link、文本text与资产asset即图片/PDF 等上传文件。自动抓取标题、描述与图片的工作由爬虫完成相关开关集中在 crawler 配置中例如CRAWLER_DOWNLOAD_BANNER_IMAGE控制是否缓存卡片配图。全文检索与语义检索 对所有存储内容做全文检索full text search。检索后端使用 Meilisearch搜索索引任务由 search worker 消费。官方编排文件 docker/docker-compose.yml 中内置了meilisearch服务getmeili/meilisearchWeb 容器通过MEILI_ADDR: http://meilisearch:7700指向它若未配置该地址检索功能会被禁用见环境变量表。v0.31.0 时代还预告了语义检索semantic search为规划能力而当前版本已将其落地为实验特性SEMANTIC_SEARCH_ENABLED默认 true需要在配置好 embedding 模型后配合EMBEDDING_ENABLE_AUTO_INDEXING使用。AI 自动标签与摘要✨ 基于 AI如 ChatGPT/OpenAI的自动标签与摘要支持通过 ollama 使用本地模型。这是 Karakeep 最具辨识度的能力保存链接后后台 inference worker 调用 LLM 分析正文自动产出标签并可选生成摘要。相关配置在 packages/shared/config.ts 的inference区块中集中解析关键变量包括变量默认值说明OPENAI_API_KEY未设置OpenAI 密钥配置后启用 OpenAI 推理OLLAMA_BASE_URL未设置Ollama 地址启用本地推理INFERENCE_ENABLE_AUTO_TAGGINGtrue是否启用自动打标签INFERENCE_ENABLE_AUTO_SUMMARIZATIONfalse是否启用自动摘要INFERENCE_TEXT_MODELgpt-5.6-luna文本推理模型INFERENCE_IMAGE_MODELgpt-4o-mini图片推理模型INFERENCE_CONTEXT_LENGTH2048送入推理模型的 token 上限越大标签质量越好但成本越高INFERENCE_MAX_OUTPUT_TOKENS2048模型输出的最大 token 数INFERENCE_LANGenglish生成标签的语言INFERENCE_NUM_WORKERS1推理任务并发数从 packages/shared/config.ts 的解析逻辑可以看到isConfigured判定为OPENAI_API_KEY或OLLAMA_BASE_URL任一存在即视为已配置推理能力用户还可在AI 设置中附加自定义提示词并支持$tags、$aiTags、$userTags占位符。规则引擎 基于规则的引擎实现自定义的自动化管理。ruleEngine worker 负责消费规则任务见 packages/shared/config.ts 中的ruleEngine配置与apps/workers下的 ruleEngineWorker可实现如命中某标签自动移动书签到列表之类的自动化操作。OCR 文本提取 从图片中提取文字的 OCR 能力。默认基于 tesseract.js可选 LLM 驱动的 OCROCR_USE_LLMtrue时改用已配置的推理模型识图。相关参数OCR_LANGS默认eng、OCR_CONFIDENCE_THRESHOLD默认 50都在 packages/shared/config.ts 的ocr区块中定义。多端客户端 Chrome 插件与 Firefox 插件用于快速收藏 iOS 应用与 Android 应用 REST API 与多客户端支持 多语言支持。仓库中对应的实现目录为 apps/browser-extensionChrome/Firefox 插件含manifest.json、apps/mobileExpo 移动端、apps/cli 与 apps/mcpREST API 路由集中在 packages/api/routesbookmarks、tags、lists、highlights、feeds、webhooks 等并在 docs/docs/api 下有完整 API 文档。多语言通过 Weblate 协作翻译Web 端语言资源位于 apps/web/lib/i18n。存档与归档能力️ 使用 monolith 做整页归档full page archival抵御链接腐烂link rot▶️ 使用 yt-dlp 自动归档视频 从 RSS 订阅源自动囤积auto hoarding。这些能力均由爬虫在抓取时按配置执行CRAWLER_FULL_PAGE_ARCHIVE默认 false启用整页归档CRAWLER_VIDEO_DOWNLOAD默认 false启用视频下载CRAWLER_VIDEO_DOWNLOAD_MAX_SIZE默认 50MBMAX_RSS_FEEDS_PER_USER默认 1000。monolith 与 yt-dlp 的超时和附加参数分别由CRAWLER_MONOLITH_TIMEOUT_SEC/CRAWLER_MONOLITH_ARGS与CRAWLER_YTDLP_ARGS控制见 packages/shared/config.ts。协作、导入与更多️ 在囤积的内容上标记并保存高亮highlights☑️ 批量操作bulk actions SSO 支持仅支持 OIDC 兼容的 OAuth 提供方 深色模式 自托管优先⬇️ 支持从 Chrome、Pocket、Linkwarden、Omnivore、Tab Session Manager 导入书签 通过 floccus 与浏览器书签自动同步[规划中] 移动端离线阅读、跨书签语义检索等。高亮功能有独立的数据库模型与 API 路由packages/api/routes/highlights.ts导入器实现可参考 packages/shared/import-export。⚠️ 官方文档明确提示This app is under heavy development.该应用处于高频迭代中使用时建议关注版本更新。技术架构仓库内 docs/docs/08-development/04-architecture.md 给出了官方架构说明可概括为Web 应用Next.js 实现使用 SQLite 存储数据认证基于 NextAuthWorker 集群消费基于 SQLite 的任务队列任务分三类爬取Crawling使用运行在 worker 容器中的无头 Chrome 抓取链接内容推理Inference/OpenAI调用 OpenAI 等接口推断内容标签索引Indexing把内容写入 Meilisearch 以支撑快速检索。结合 README.md 的 Stack 说明技术选型还包括 Drizzle ORM 管理数据库与迁移、tRPC 负责客户端到服务端的通信、Puppeteer 负责书签爬取。工作器的完整清单crawler、inference、search、adminMaintenance、video、feed、assetPreprocessing、webhook、ruleEngine、backup定义在 apps/workers/index.ts 中并可通过WORKERS_ENABLED_WORKERS/WORKERS_DISABLED_WORKERS环境变量按需启停。快速开始Docker Compose官方提供了一键式的容器化部署方式核心编排文件即仓库根目录的 docker/docker-compose.yml它同时拉起三个服务webghcr.io/karakeep-app/karakeep:release暴露 3000 端口数据持久化到data卷chromeghcr.io/karakeep-app/karakeep-chrome:release无头浏览器供爬虫使用meilisearchgetmeili/meilisearch:v1.41.0全文检索引擎。最小.env配置只需四个变量详见 docs/docs/02-installation/01-docker.mdKARAKEEP_VERSIONrelease NEXTAUTH_SECRETsuper_random_string MEILI_MASTER_KEYanother_random_string NEXTAUTH_URLhttp://localhost:3000其中两个随机字符串建议用openssl rand -base64 36生成NEXTAUTH_URL需指向你的服务器地址。若想启用 AI 自动标签只需在.env中追加OPENAI_API_KEYkey希望使用 Ollama 本地推理或其他 AI 提供方时可参考 docs/docs/03-configuration/02-different-ai-providers.md。启动命令为docker compose up -d然后访问http://localhost:3000即可看到登录页。全部可用配置项以 packages/shared/config.ts 中的 zod schema 为唯一事实来源涵盖认证/OAuth、资产存储本地文件系统或 S3、爬虫、OCR、Webhook、SMTP、代理、可观测性OpenTelemetry 追踪与 Prometheus 指标等模块其中DATA_DIR为必填项持久化目录ASSETS_DIR未设置时默认落在${DATA_DIR}/assets。在线 Demo若想先体验再部署官方提供了在线演示站点v0.31.0 文档内嵌入了演示说明使用以下凭据登录email: demokarakeep.app password: demodemoDemo 站点已预置了种子数据但处于只读模式以防滥用。仓库中 screenshots/homepage.png 即应用主界面的真实截图可先行了解界面形态。关于名字的由来Karakeep 的名字灵感来自阿拉伯语单词كراكيبkarakeeb——这是一个口语化词汇常用来指代杂七杂八的零碎物件、五花八门的杂物或者那些看似杂乱无章、却往往承载着个人价值或潜在用途的东西。它让人联想到一个塞满杂物的抽屉或遗忘在角落的盒子里面装满了你舍不得扔掉的东西——因为不知为何它们对你很重要或者更可能的是因为你就是一个囤积狂 hoarder。这个名字与其前身 Hoarder 一脉相承精准传达了产品什么都存、且存得有章法的产品哲学AI 自动标签与全文检索正是为了让囤积变得可管理、可检索、可复用。小结Karakeep 用一个自托管的单体架构把收藏链接/笔记/图片、AI 自动打标签、全文检索、整页与视频归档、多端入口等能力整合在一起并通过 packages/shared/config.ts 集中管理全部环境变量让部署者可以在几乎零外部依赖仅需 Web、无头 Chrome、Meilisearch 三件套的前提下获得接近商业级阅读收藏应用的使用体验。后续可继续阅读 docs/docs/02-installation 下的各平台安装指南、docs/docs/03-configuration 的完整配置文档以及 docs/docs/04-using-karakeep 的书签、标签、列表与快速分享使用手册。【免费下载链接】hoarderA self-hostable bookmark-everything app (links, notes and images) with AI-based automatic tagging and full text search项目地址: https://gitcode.com/GitHub_Trending/ho/hoarder创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表