隐私优先的笔记应用Crumbs

简介

什么是 Crumbs ?

Crumbs 是一个自托管的、离线优先的笔记应用,专注于用户隐私保护。它可以帮助用户搭建私有的笔记服务,替代 Google Keep 等商业笔记应用,同时支持多用户协作和 AI 助手集成。

主要特点

  • 隐私优先:数据完全存储在自有服务器,不依赖第三方云服务
  • 离线支持PWA 应用,支持离线使用,通过 IndexedDB + LWW CRDT 同步
  • 丰富的笔记功能:支持 Markdown、清单、图片附件和 12 种颜色主题
  • 智能组织:使用 #标签、置顶、归档和回收站管理笔记
  • 全文搜索:支持标题、内容和标签的全文搜索
  • 版本历史:可浏览和恢复笔记的历史版本
  • 协作分享:支持在同一实例内的用户间分享笔记
  • 邮件通知:可配置 SMTP 发送分享提醒、安全警报和账户事件通知
  • AI 集成:内置 MCP 服务器,支持 Claude CodeAI 助手管理笔记
  • 多用户认证:基于 Argon2 的密码认证,支持 GoogleGitHubOIDCOAuth/SSO
  • 开源免费:基于 MIT 协议开源,可免费使用和修改

应用场景

  • 个人知识管理:搭建私有的笔记系统,管理个人知识和想法
  • 团队协作:多用户支持,团队成员可分享和协作编辑笔记
  • 隐私敏感用户:对数据隐私有高要求的用户,避免使用商业云服务
  • 离线工作:网络不稳定环境下仍可使用,数据自动同步
  • AI 辅助创作:通过 MCP 服务器与 AI 助手集成,提升笔记效率

总的来说,Crumbs 是一个功能完整、隐私优先的自托管笔记解决方案,适合对数据安全和隐私保护有要求的个人和团队使用。

安装

在群晖上以 Docker 方式安装。

提示:由于镜像托管在 ghcr.io,群晖 Docker 套件无法直接搜索,需要通过命令行拉取镜像。本文写作时, latest 版本对应为 0.24.0

docker cli 安装

如果你熟悉命令行,可能用 docker cli 更快捷

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 新建文件夹 crumbs 和 子目录
mkdir -p /volume1/docker/crumbs/data

# 进入 crumbs 目录
cd /volume1/docker/crumbs

# 修改目录权限
chmod a+rw data

# 一键启动
docker run -d \
--name=crumbs \
--restart=unless-stopped \
-p 3436:3000 \
-v $(pwd)/data:/data \
ghcr.io/bretzel-app/crumbs:latest

docker-compose 安装

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

1
2
3
4
5
6
7
8
9
10
11
version: '3.8'

services:
crumbs:
image: ghcr.io/bretzel-app/crumbs:latest
container_name: crumbs
restart: unless-stopped
ports:
- "3436:3000"
volumes:
- ./data:/data

然后通过 SSH 登录到您的群晖,执行下面的命令:

1
2
3
4
5
6
7
8
9
10
11
12
13
# 新建文件夹 crumbs 和 子目录
mkdir -p /volume1/docker/crumbs/data

# 进入 crumbs 目录
cd /volume1/docker/crumbs

# 修改目录权限
chmod a+rw data

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

可选配置

SSO 单点登录

如需启用 SSO,添加以下环境变量:

1
2
3
4
5
6
environment:
- ORIGIN=https://notes.example.com
- AUTH_OIDC_ISSUER=https://authentik.example.com/application/o/crumbs/
- AUTH_OIDC_CLIENT_ID=your-client-id
- AUTH_OIDC_CLIENT_SECRET=your-client-secret
- AUTH_OIDC_DISPLAY_NAME=Authentik

邮件通知

如需启用邮件通知,添加 SMTP 配置:

1
2
3
4
5
6
environment:
- SMTP_HOST=smtp.example.com
- SMTP_PORT=587
- SMTP_USER=your-username
- SMTP_PASS=your-password
- SMTP_FROM=Crumbs <noreply@example.com>

运行

在浏览器中访问 http://<群辉IP>:3436 即可进入 Web 界面。

首次使用需要:

  1. 创建管理员账号(邮箱和密码,密码最少 8 位)
  2. 设置完成后即可开始使用

需要登录

登录成功后的主界面

Add a crumb 增加笔记

添加成功后

支持通过 AI 助手管理笔记

注意事项

  1. 数据持久化:确保 /data 卷正确挂载,否则数据会在容器重启后丢失
  2. OAuth 限制OAuth 登录采用邀请制,用户需先由管理员创建账号才能使用 OAuth 登录
  3. HTTPS 建议:生产环境建议使用 HTTPS,可通过反向代理(如 Nginx)配置
  4. ORIGIN 环境变量:生产环境部署时必须设置 ORIGIN 环境变量为实际访问地址,否则 CSRF 保护和 OAuth 回调会失败
  5. 备份建议:定期备份 /data 卷中的数据库文件

参考文档

bretzel-app/crumbs: Crumbs by Bretzel - a self-hosted, privacy-first Google Keep alternative. Capture your thoughts, ideas and notes. Built with SvelteKit.
地址:https://github.com/bretzel-app/crumbs

Crumbs - Your notes. Your server. Your rules.
地址:https://crumbs.bretzel.app/

bretzel-app/crumbs - ghcr.io 镜像
地址:https://github.com/bretzel-app/crumbs/pkgs/container/crumbs