惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

美团技术团队
W
WeLiveSecurity
Stack Overflow Blog
Stack Overflow Blog
L
LangChain Blog
S
SegmentFault 最新的问题
Apple Machine Learning Research
Apple Machine Learning Research
Google DeepMind News
Google DeepMind News
F
Full Disclosure
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
The Register - Security
The Register - Security
G
Google Developers Blog
C
Check Point Blog
GbyAI
GbyAI
A
About on SuperTechFans
V
Vulnerabilities – Threatpost
T
The Blog of Author Tim Ferriss
T
Tor Project blog
AWS News Blog
AWS News Blog
Cyberwarzone
Cyberwarzone
C
CERT Recently Published Vulnerability Notes
MongoDB | Blog
MongoDB | Blog
Latest news
Latest news
aimingoo的专栏
aimingoo的专栏
U
Unit 42
Y
Y Combinator Blog
P
Privacy International News Feed
Cisco Talos Blog
Cisco Talos Blog
S
Securelist
S
Schneier on Security
雷峰网
雷峰网
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Attack and Defense Labs
Attack and Defense Labs
P
Proofpoint News Feed
C
Cisco Blogs
Webroot Blog
Webroot Blog
T
Troy Hunt's Blog
Google Online Security Blog
Google Online Security Blog
月光博客
月光博客
P
Privacy & Cybersecurity Law Blog
Security Archives - TechRepublic
Security Archives - TechRepublic
罗磊的独立博客
Cloudbric
Cloudbric
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Hacker News: Ask HN
Hacker News: Ask HN
H
Hackread – Cybersecurity News, Data Breaches, AI and More
博客园 - 司徒正美
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Microsoft Security Blog
Microsoft Security Blog

我不是咕咕鸽

【好玩儿的 Docker 项目】十分钟搭建一个 Obsidian 私有同步服务——Fast Note Sync,多端实时同步笔记和附件 关键时刻不能掉链子!一年235元开机即用!大陆漫游上网备用方案:3HK 大湾区 eSIM 储值卡购买激活全流程分享(2026) 【好玩儿的Docker项目】十分钟搭建一个「极简私人网盘」——hacdias/webdav,让你可以像逛本地文件夹一样逛 VPS 从「不会 Swift」到 App Store 过审:我用 Claude Code 又写了个 iOS App 3 天, 61 个版本|非程序员的我用 Claude Code 接棒维护了自己的博客主题 回顾一下我买过的服务器们|VPS 收藏夹大盘点 聊聊目前手头的服务器近况 + VMRACK 三网优化线路 VPS 测试 德国买iPhone退税全流程实测:19%消费税能退多少?踩坑+避坑全记录 10 分钟搭建一个支持超过 1000 种不同格式的在线文件转换器——ConvertX|好玩儿的 Docker 项目 十分钟搭建一个 AI 驱动的图表生成器——Next-AI-Draw.io|好玩儿的 Docker 项目 十分钟搭建一次性私密信息共享平台——OTS|好玩儿的Docker项目 3分钟利用 Paypal 领取免费一年 Perplexity 会员! 解锁AI搜索神器!网页点点就行! 给你的Docker应用加一层保险!10分钟搭建一个简单好用的认证中间件—— Tinyauth Dify本地部署上手攻略:轻松打造你的专属AI神器|好玩儿的Docker项目 支持MCP,轻量又全面的记账软件——ezBookkeeping|好玩儿的Docker项目 拒绝恶意收购,十分钟搭建AList的替代品——OpenList|好玩儿的Docker项目 保护图片隐私!十分钟搭建一个小而美的离线图片处理工具——mazanoke|好玩儿的Docker项目 10分钟搭建一个高颜值的在线开发工具箱—— jisuxiang|好玩儿的Docker项目 Docker 一键部署网盘资源搜索与转存工具——CloudSaver|好玩儿的Docker项目 想用大厂的云服务器,如何省心又省钱?试试新加坡的云服务器代理商——Huichang Cloud 让写简历变得简单且智能!十分钟搭建一个在线简历编辑器——Magic Resume|好玩儿的Docker项目 性价比神机!BandwagonHost 上新 MEGABOX PRO 套餐,AMD处理器 2T流量,三网线路优化! 十分钟搭建一个带Web界面的yt-dlp视频下载器|好玩儿的Docker项目 用M1 Max MacBook Pro私有化部署DeepSeek-R1 十分钟搭建一个跨平台剪贴板同步方案—— SyncClipboard!支持Windows/Linux/macOS/Android/IOS|好玩儿的Docker项目 更适合新手的 AI 口语对话练习应用—— BabelDuck |好玩儿的Docker项目
十分钟搭建一个「万物皆可存」的智能书签应用——karakeep|好玩儿的 Docker 项目
咕咕 · 2025-11-13 · via 我不是咕咕鸽

1. 唠嗑

好久没更新了,这周来和大家分享一个好用的书签工具——Karakeep

2. karakeep 简介

Karakeep(前身为 Hoarder)是一款可自托管的「万物皆可存」书签应用,专为数据囤积爱好者打造,融入一丝 AI 魔法。

b877b9e2ebadea6bd7eb91991a4744e4.png

功能

  • 🔗 书签链接、记录简单笔记,并存储图片和 PDF 文件。
  • ⬇️ 自动抓取链接标题、描述和预览图。
  • 📋 将书签整理到不同列表中。
  • 🔎 全文本搜索所有存储内容。
  • ✨ 基于 AI(类似 ChatGPT)自动打标签和生成摘要。支持使用 Ollama 运行本地模型!
  • 🤖 规则引擎,实现自定义管理。
  • 🎆 图像 OCR,提取图片中的文字。
  • 🔖 Chrome 插件和 Firefox 扩展,快速添加书签。
  • 📱 iOS 应用和 Android 应用。
  • 📰 从 RSS 订阅源自动归档内容。
  • 🔌 REST API 和多种客户端。
  • 🌐 多语言支持。
  • 🖍️ 标记并保存归档内容中的高亮片段。
  • 🗄️ 完整页面归档(使用 monolith),防止链接失效。
  • ▶️ 使用 yt-dlp 自动归档视频。
  • ☑️ 支持批量操作。
  • 🔐 支持 SSO 单点登录。
  • 🌙 深色模式。
  • 💾 优先支持自托管。
  • ⬇️ 从 Chrome、Pocket、Linkwarden、Omnivore、Tab Session Manager 导入书签。
  • 🔄 通过 floccus 与浏览器书签自动同步。
  • [计划中] 移动端离线阅读、书签语义搜索,……

6fb0d16e6fa436a7fceaa95125fee34d.png

3. 相关地址

官方 GitHub 地址:https://github.com/karakeep-app/karakeep (目前 21.1k 个 star,欢迎大家去给项目点星星!)

Demo 地址:https://try.karakeep.app

默认账号密码:

Email: demo@karakeep.app

Password: demodemo

当然如果你体验完还想自己用 docker 搭建一个,那我们就继续往下!

4. 搭建环境

5. 搭建视频(过俩周补充 = =)

5.1 YouTube

视频地址:

5.2 哔哩哔哩

哔哩哔哩:

6. 搭建方式

6.1 安装 Docker 与 Nginx Proxy Manager

可以直接参考这篇内容:

https://blog.laoda.de/archives/nginxproxymanager/

6.2 创建安装目录

创建一下安装的目录:

sudo -i

mkdir -p /root/data/docker_data/karakeep

cd /root/data/docker_data/karakeep

接着我们来编辑下docker-compose.yml

vim docker-compose.yml
services:
  web:
    image: ghcr.io/karakeep-app/karakeep:latest
    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:
      - 3030: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: gcr.io/zenika-hub/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

其中的左边的3030可以改成服务器上没有用过的端口,如果要用到AI功能的话,可以取消OPENAI_API_KEY的注释,填入自己的密钥。

修改完成之后,可以在英文输入法下,按 i 修改,完成之后,按一下 esc,然后 :wq 保存退出。

接着我们来编辑下.env

cd /root/data/docker_data/karakeep
vim .env

粘贴如下内容:

KARAKEEP_VERSION=release
NEXTAUTH_SECRET=super_random_string
MEILI_MASTER_KEY=another_random_string
NEXTAUTH_URL=http://localhost:3000
  • 其中的http://localhost:3000这个改成你自己之后用域名访问的地址,比如我的https://karakeep.gugu.ovh
  • 其中的super_random_stringanother_random_string需要我们自己生成。

我们可以先在命令行里面输入

openssl rand -base64 36

生成随机的字符,然后替代它们。

aebf462264a0d4c95fa1416bee41830a.png

我需要放在.env里的内容就是:

KARAKEEP_VERSION=release
NEXTAUTH_SECRET=Lu4YuG5pXji2/QB6blXaoWnfK2WdtKifPhEBt0UQCHqkxCAe
MEILI_MASTER_KEY=wJ222cTFWJ0/9Jnu38gU9Wb+AdCk2SBmQ687MdTbxT8c/V0b
NEXTAUTH_URL=https://karakeep.gugu.ovh

修改完成之后,同样的,可以在英文输入法下,按 i 修改,完成之后,按一下 esc,然后 :wq 保存退出。

6.3 查看端口是否被占用

查看端口是否被占用(以 3030 为例),输入:

lsof -i:3030  #查看 3030 端口是否被占用,如果被占用,重新自定义一个端口

如果啥也没出现,表示端口未被占用,我们可以继续下面的操作了~

如果出现:

-bash: lsof: command not found

运行:

apt install lsof  #安装 lsof

如果端口没有被占用(被占用了就修改一下端口,比如改成 8381,注意 docker 命令行里和防火墙都要改)

6.4 启动 karakeep

cd /root/data/docker_data/karakeep

docker compose up -d   # 注意,老版本用户用 docker-compose up -d

耐心等待拉取好镜像,出现 done的字样之后,

理论上我们就可以输入 http://ip:3030 访问了。

但是这边这个服务必须先搞一下反向代理!既然是加密的项目,不能用 http 使用明文传输,我们部署在公网一定要考虑使用反向代理工具配置 SSL!

做反向代理前,你需要一个域名!

namesilo 上面 xyz 后缀的域名一年就 7 块钱,可以年抛。(冷知识,namesilo 上 6 位数字的 xyz 续费永远都是 0.99 美元 = =)

如果想要长期使用,还是建议买 com 后缀的域名,更加正规一些,可以输入 laodade 来获得 1 美元的优惠(不知道现在还有没有)

namesilo 自带隐私保护,咕咕一直在用这家,价格也是这些注册商里面比较低的,关键是他家不像其他家域名注册商,没有七七八八的套路!(就是后台界面有些 古老 = =)

【域名购买】Namesilo 优惠码和域名解析教程(附带服务器购买推荐和注意事项)

我们接着往下看!

7. 反向代理

7.1 利用 Nginx Proxy Manager

在添加反向代理之前,确保你已经完成了域名解析,不会的可以看这个:域名一枚,并做好解析到服务器上域名购买、域名解析 视频教程) (名称改成你自己想要的域名前缀即可)

8a522c57d08898256ce3814d5183f811.png

之后,登陆 Nginx Proxy Manager(不会的看这个:安装 Nginx Proxy Manager相关教程))

注意:

Nginx Proxy Manager(以下简称 NPM)会用到 80443 端口,所以本机不能占用(比如原来就有 Nginx)

直接丢几张图:

deeedad5afbbcc25441ac1a41e89ba31.png cf5928e754752471d09460cd31fb2eae.png 832a857e518a6999f692c56a1b0d6d18.png bd08eed12b655993b53b6df83bcb6606.png ec68bb8adeb0d9661917ba2e77032906.png

注意填写对应的 域名IP端口,按文章来的话,应该是 3030

IP 填写:

如果 Nginx Proxy Manager 和 karakeep 在同一台服务器上,可以在终端输入:

ip addr show docker0

查看对应的 Docker 容器内部 IP。

否则直接填 karakeep 所在的服务器 IP 就行。

然后访问域名就可以访问了!

7.2 利用宝塔面板

发现还是有不少小伙伴习惯用宝塔面板,这边也贴一个宝塔面板的反代配置:

直接新建一个站点,不要数据库,不要 php,纯静态即可。

然后打开下面的配置,修改 Nginx 的配置。

image-20220819150345725 image-20220819150542867

代码如下:

location / {
      proxy_pass http://127.0.0.1:3030/;       # 注意改成你实际使用的端口
      rewrite ^/(.*)$ /$1 break;
      proxy_redirect off;
      proxy_set_header Host $host;
      proxy_set_header X-Forwarded-Proto $scheme;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Upgrade-Insecure-Requests 1;
      proxy_set_header X-Forwarded-Proto https;
    }

此方法对 90% 的反向代理都能生效,然后就可以用域名来安装访问了。

有同学可能会问,为什么不直接用宝塔自带的反向代理功能。

image-20220819150730128

也可以,不过咕咕自己之前遇到过当有多个网站需要反代的时候,在这边设置会报错的情况 = =

所以后来就不用了,直接用上面的方法来操作了。

8. 使用教程

非常简单,所见即所得。

登录,

32cb2fe6c8694197a931f84b06e6931d.png

首先注册一个账号,

e04dc92bb6e9435aaebfc5d43eb4f56f.png

后台页面,

2069ec87e83c0c1ad747046940e44717.png

用户设置,

213472f4fcb8caa51ae8344d98424a60.png

如果觉得英文不习惯,也可以改成中文,

0cfd2e99f9d8a159389de1d0f8b3f163.png

输入一个网址,测试一下,

2d1764ecbf9c5ff13e0692864d15659b.png

支持给你存下来的网页打标签,

58b7e0e99d814b62bfa15217b140b3a4.png

服务器统计情况,

abe96ef7a5a74c3d3cd8330ec85073c2.png

Karakeep是支持浏览器插件的,这边可以直接下载浏览器插件,方便浏览网页的时候使用,

c5519d815ece46e7a66ebf39b763ec26.png

输入你搭建好的域名,然后登录即可,

ccd39153c2f87d5ae8be6ee098cfbf7c.png

使用

ea1377f2cd994631248c61114a911c92.png

c89e80bfa4ab4a3de5f1e1b7e6c11124.png

也支持下载完整页面,

502f8bd34f6f45f8af5ad101bd17bd69.png

还有一些AI功能,大家可以自行探索。或者查看Karakeep的官方文档

8.1 更新 karakeep

这个项目后续会持续有更新,所以提供一个更新的方式。

cd /root/data/docker_data/karakeep

docker compose pull

docker compose up -d    # 请不要使用 docker compose stop 来停止容器,因为这么做需要额外的时间等待容器停止;docker compose up -d 直接升级容器时会自动停止并立刻重建新的容器,完全没有必要浪费那些时间。

docker image prune  # prune 命令用来删除不再使用的 docker 对象。删除所有未被 tag 标记和未被容器使用的镜像

提示:

WARNING! This will remove all dangling images.
Are you sure you want to continue? [y/N]

输入 y

利用 Docker 搭建的应用,更新非常容易~

8.2 卸载 karakeep

同样进入安装页面,先停止所有容器。

cd /root/data/docker_data/karakeep

docker compose down

cd ..

rm -rf /root/data/docker_data/karakeep  # 完全删除

可以卸载得很干净。

9. 使用简介

大家有问题欢迎评论区交流。

10. 结尾

祝大家用得开心,有问题可以去 GitHub 提 Issues,也可以在评论区互相交流探讨。

同时,有能力给项目做贡献的同学,也欢迎积极加入到 项目 中来,贡献自己的一份力量!

最后,感谢作者 @civilblur 的辛苦付出,让我们能用到这么优秀的项目!欢迎大家都去给这个项目点个 star。

参考资料

官方 GitHub:https://github.com/karakeep-app/karakeep