
KaraKeep 是一个“万物皆可存”的自托管应用。你可以把它当作加强版的 Pocket 或 Raindrop,它不仅能存链接,还能存笔记、图片,并利用 AI 自动整理。
✅ 核心功能
-
智能抓取:自动提取网页标题、描述和预览图。
-
AI 标签:(可选) 支持 OpenAI/Ollama,自动为收藏内容打标签。
-
全文搜索:基于 Meilisearch,毫秒级搜索体验。
-
多端支持:有 Chrome/Firefox 插件以及 iOS/Android 客户端。
1. 准备工作
确保你的服务器已经安装了 Docker 和 Docker Compose。
# 检查 Docker 是否安装
docker -v
docker compose version
创建一个安装目录,保持文件整洁:
Bash
mkdir -p /root/data/docker_data/karakeep
cd /root/data/docker_data/karakeep
2. 创建配置文件
我们需要两个核心文件:docker-compose.yml (定义服务) 和 .env (存放敏感配置)。
步骤 2.1:创建 docker-compose.yml
使用 vim docker-compose.yml 创建文件,并粘贴以下内容:
YAML
version: "3.8"
services:
web:
image: ghcr.io/karakeep-app/karakeep:latest
restart: unless-stopped
volumes:
- ./data:/data
ports:
- 3000:3000 # 如果3000端口冲突,可修改为 3030:3000
env_file:
- .env
environment:
MEILI_ADDR: http://meilisearch:7700
BROWSER_WEB_URL: http://chrome:9222
# 如果不需要 AI 功能,下面这行可以忽略;如果需要,请在 .env 中配置
# OPENAI_API_KEY: ...
DATA_DIR: /data
depends_on:
- meilisearch
- chrome
meilisearch:
image: getmeili/meilisearch:v1.11.1 # 建议锁定版本以保证稳定
restart: unless-stopped
env_file:
- .env
environment:
- MEILI_NO_ANALYTICS=true
volumes:
- ./meili_data:/meili_data
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
步骤 2.2:创建 .env 文件
这是最关键的一步。你需要生成几个密钥并填入其中。
首先,在终端运行以下命令生成两个随机密钥(运行两次,分别复制):
Bash
openssl rand -base64 32
然后,使用 vim .env 创建文件,粘贴并修改以下内容:
Ini, TOML
# --- 必须修改的部分 ---
# 1. 将生成的第一个随机字符串填在这里
NEXTAUTH_SECRET=你的随机字符串1
# 2. 将生成的第二个随机字符串填在这里
MEILI_MASTER_KEY=你的随机字符串2
# 3. 你的访问地址
# 如果你是本地测试,填 http://localhost:3000
# 如果你有域名,填 https://yourdomain.com (注意必须带 http/https)
NEXTAUTH_URL=http://localhost:3000
# --- 可选配置 (AI功能) ---
# 如果你想用 OpenAI 自动打标签,取消注释并填入 Key
# OPENAI_API_KEY=sk-xxxxxxxxxxxx
# OPENAI_BASE_URL=https://api.openai.com/v1 # 如果用第三方转发需修改
# --- 固定配置 (一般不用动) ---
KARAKEEP_VERSION=release
3. 启动服务
在 docker-compose.yml 所在的目录下执行:
Bash
docker compose up -d
等待镜像拉取完成。你可以使用以下命令查看日志,确保没有报错:
Bash
docker compose logs -f
如果看到类似 Ready 或 Listening on port 3000 的字样,说明启动成功。
4. 访问与初始化
-
打开浏览器,访问
http://服务器IP:3000(或者你在.env里配置的域名)。 -
你会看到登录页面。
-
注册管理员账号:系统默认第一个注册的账号为管理员账号。
5. 常见问题与维护
如何升级?
随着 KaraKeep 的更新,你可能需要升级版本。执行以下命令即可:
Bash
cd /root/data/docker_data/karakeep
docker compose pull
docker compose up -d
docker image prune -f # 清理旧的镜像
AI 打标签无法使用?
-
检查
.env文件中OPENAI_API_KEY是否正确。 -
如果你使用的是第三方 API(OneAPI 等),记得配置
OPENAI_BASE_URL。 -
修改
.env后,必须执行docker compose up -d才能生效。
网页截图不显示?
KaraKeep 依赖 chrome 容器进行截图。如果截图失败:
-
检查服务器内存是否充足(Chrome 比较吃内存)。
-
检查
docker logs看 chrome 容器是否正常运行。 -
如果是 ARM 架构服务器(如甲骨文 ARM、树莓派),
alpine-chrome镜像可能需要更换为支持 ARM 的版本(如zenika/alpine-chrome:with-puppeteer尝试一下,或搜索特定 ARM 镜像)。
💡 进阶建议:配置反向代理
为了安全起见,建议不要直接通过 IP:3000 访问,而是使用 Nginx Proxy Manager 或 Caddy 配置 HTTPS 域名访问。配置反代时,只需将流量转发到 http://127.0.0.1:3000 即可。
下一步:如果你在安装过程中遇到 openssl 命令报错或者端口被占用的问题,请告诉我,我可以帮你排查。







394914567