【Docker项目实战】使用Docker部署karakeep自托管书签工具

举报
江湖有缘 发表于 2025/10/31 00:03:59 2025/10/31
【摘要】 【Docker项目实战】使用Docker部署karakeep自托管书签工具

一、karakeep介绍

1.1 Karakeep项目简介

Karakeep 是一个可完全自我托管的个人知识管理平台,旨在帮助用户集中保存和智能管理网络上的任何有价值内容。它不仅支持链接书签、笔记、图片和 PDF 的统一存储,还通过 AI 技术实现自动标签、内容总结与全文搜索,结合 OCR、全页存档、视频下载等强大功能,打造一个安全、智能、跨平台的“第二大脑”。无论是网页片段、RSS 订阅,还是本地文件,Karakeep 都能帮你高效归档、智能分类,并通过多端应用与浏览器插件实现随时随地访问。

1.2 Karakeep主要特点

  • 🔗 轻松书签网页链接,记录简短笔记,并上传图片与 PDF 文件。
  • ⬇️ 自动提取链接的标题、描述和封面图,提升收藏效率。
  • 📋 将书签灵活组织到自定义列表或文件夹中,便于分类管理。
  • 🔍 支持对所有存储内容(包括图片中的文字)进行全文搜索。
  • ✨ 利用 AI(如 ChatGPT 或本地 Ollama 模型)自动生成标签和内容摘要。
  • 🤖 内置基于规则的自动化引擎,可自定义书签处理流程。
  • 🎆 使用 OCR 技术从图像中提取可搜索的文本内容。
  • 🔖 提供 Chrome 插件与 Firefox 扩展,一键快速收藏网页。
  • 📱 支持 iOS 和 Android 原生应用,随时随地访问你的知识库。
  • ". 自动抓取并归档订阅的 RSS 源内容,不错过任何更新。
  • 🔌 提供 RESTful API 与多个第三方客户端,便于集成与扩展。
  • 🌐 支持多语言界面与内容处理,满足国际化使用需求。
  • 🗑️ 标记并保存内容中的高亮片段,便于后续回顾与引用。
  • 🗄️ 使用 Monolith 实现网页全页离线存档,防止链接失效(404)。
  • ▶️ 通过 yt-dlp 自动下载并归档视频内容,支持离线观看。
  • ☑️ 支持批量导入、编辑、删除操作,提升大规模管理效率。
  • 🔐 集成 SSO(如 OAuth2 / SAML)支持,便于团队或企业部署。
  • 🌙 提供暗黑模式界面,保护夜间阅读视力。
  • 💾 设计以自我托管为核心,保障数据隐私与长期可控性。
  • ⬇️ 支持从 Chrome、Pocket、Linkwarden、Omnivore 等工具导入数据。
  • 🔁 通过 Floccus 与浏览器书签同步,实现无缝过渡与双端备份。
  • 📥 计划支持移动设备离线阅读,无网络也能查看书签内容。
  • 🧠 未来将实现基于语义理解的智能书签搜索与推荐。

二、本次实践规划

2.1 本地环境规划

本次实践为个人测试环境,操作系统版本为 Ubuntu 24.04.2 LTS。

hostname IP地址 操作系统版本 Docker版本 部署项目 备注
jeven 192.168.3.88 Ubuntu 24.04.2 LTS 28.5.0 karakeep ——

2.2 本次实践介绍

1.本次实践部署环境为个人测试环境,生产环境请谨慎;
2.在Docker环境下部署karakeep自托管书签工具。

三、本地环境检查

3.1 检查Docker服务状态

检查Docker服务是否正常运行,确保Docker正常运行。

root@jeven:~# systemctl status docker
● docker.service - Docker Application Container Engine
     Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; preset: enabled)
     Active: active (running) since Sat 2025-10-04 13:29:05 UTC; 2 days ago
TriggeredBy: ● docker.socket
       Docs: https://docs.docker.com
   Main PID: 888 (dockerd)
      Tasks: 65
     Memory: 1.2G (peak: 1.4G)
        CPU: 3min 23.296s
     CGroup: /system.slice/docker.service

3.2 检查Docker版本

检查Docker版本

root@jeven:~# docker -v
Docker version 28.5.0, build 887030f

3.3 检查docker compose 版本

检查Docker compose版本,确保2.0以上版本。

root@jeven:~# docker compose version
Docker Compose version v2.39.4

四、拉取karakeep镜像

4.1 创建部署目录

部署项目之前,我们需要创建一个部署目录。

mkdir -p /data/karakepp/ && cd /data/karakepp/

4.2 下载部署文件

我们将官方文提供的提供的docker compose部署文件直接放入到刚才创建的目录,如下所示:

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

修改docker-compose.yml文件,将chrome服务的容器替换为registry.cn-hangzhou.aliyuncs.com/jeson/alpine-chrome:124

vim docker-compose.yml
services:
  web:
    image: ghcr.io/karakeep-app/karakeep:${KARAKEEP_VERSION:-release}
    restart: unless-stopped
    volumes:
      # By default, the data is stored in a docker volume called "data".
      # If you want to mount a custom directory, change the volume mapping to:
      # - /path/to/your/directory:/data
      - data:/data
    ports:
      - 3000:3000
    env_file:
      - .env
    environment:
      MEILI_ADDR: http://meilisearch:7700
      BROWSER_WEB_URL: http://chrome:9222
      # OPENAI_API_KEY: ...

      # You almost never want to change the value of the DATA_DIR variable.
      # If you want to mount a custom directory, change the volume mapping above instead.
      DATA_DIR: /data # DON'T CHANGE THIS
  chrome:
    image:  registry.cn-hangzhou.aliyuncs.com/jeson/alpine-chrome:124
    restart: unless-stopped
    command:
      - --no-sandbox
      - --disable-gpu
      - --disable-dev-shm-usage
      - --remote-debugging-address=0.0.0.0
      - --remote-debugging-port=9222
      - --hide-scrollbars
  meilisearch:
    image: getmeili/meilisearch:v1.13.3
    restart: unless-stopped
    env_file:
      - .env
    environment:
      MEILI_NO_ANALYTICS: "true"
    volumes:
      - meilisearch:/meili_data

volumes:
  meilisearch:
  data:

在这里插入图片描述

4.3 编辑变量文件

新建及编辑.env变量文件,其中NEXTAUTH_URL部分需要替换为自己服务器的IP地址。

vim .env
root@jeven:/data/karakepp# cat .env
KARAKEEP_VERSION=0.27.0
NEXTAUTH_SECRET=gK947TfXkPi4toqX1bs1otVS4uGMdwUy7W7xt+gGjRV373XL
MEILI_MASTER_KEY=DVLxsDnxhHDnvdw4zdJEe/SAZe0/q6f06k+OLajcfCcGpaFH
NEXTAUTH_URL=http://192.168.3.88:3000

4.4 拉取镜像

执行以下命令,拉取karakeep相关镜像。

docker  compose pull 

在这里插入图片描述

五、部署karakeep服务

5.1 创建karakeep容器

执行以下命令,创建karakeep容器。

docker compose up -d

在这里插入图片描述

5.2 查看karakeep容器状态

检查karakeep容器运行状态,确保karakeep容器正常启动。

root@jeven:/data/karakepp# docker compose ps
NAME                     IMAGE                                                       COMMAND                  SERVICE       CREATED          STATUS                    PORTS
karakepp-chrome-1        registry.cn-hangzhou.aliyuncs.com/jeson/alpine-chrome:124   "chromium-browser --…"   chrome        16 minutes ago   Up 16 minutes
karakepp-meilisearch-1   getmeili/meilisearch:v1.13.3                                "tini -- /bin/sh -c …"   meilisearch   16 minutes ago   Up 16 minutes             7700/tcp
karakepp-web-1           ghcr.io/karakeep-app/karakeep:0.27.0                        "/init"                  web           16 minutes ago   Up 16 minutes (healthy)   0.0.0.0:3000->3000/tcp, [::]:3000->3000/tcp

5.3 检查karakeep容器日志

检查容器运行日志,确保karakeep服务正常运行。

docker compose logs

在这里插入图片描述

六、访问karakeep服务

6.1访问karakeep初始页

浏览器地址: http://<个人的服务器IP>:3000,访问karakeep初始页。如果无法访问,请确保宿主机的防火墙已关闭或已放行相关端口,对于云服务器还需配置相应的安全组规则。

在这里插入图片描述

6.2 注册karakeep账号

点击karakeep初始页的注册选项,自行填写登录账号信息,确认创建即可。

在这里插入图片描述
在这里插入图片描述

七、karakeep基本使用

7.1 设置中文语言

在用户设置——界面语言中,选择简体中文选项,时区则选择Asia/Shanghai,如下所示:

在这里插入图片描述

7.2 保存网站

将网站地址复制到以下位置,保存即可。

在这里插入图片描述

可以看成网站成功保存,也可以对该书签进行重新编辑书签名称等信息。

在这里插入图片描述
在这里插入图片描述

7.3 统计信息功能

用户设置——使用统计信息,可以查看karakeep的各项统计信息。

在这里插入图片描述

八、总结

通过本次实践,我们成功使用Docker部署了Karakeep自托管书签工具,搭建了一个集链接管理、笔记记录、文件存储于一体的个人知识库平台。Karakeep凭借其丰富的功能,如自动元信息提取、AI标签生成、全文搜索和浏览器插件支持,极大提升了信息收藏与检索的效率。整个部署过程简洁高效,得益于Docker容器化技术,服务运行稳定且易于维护。未来可以进一步探索其RSS抓取、Ollama本地AI模型集成等高级功能,打造更智能的个性化知识管理体系。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。