别存第三方笔记!零成本用Cloudflare搭建Memos-Worker私人知识库,永久免费
别存第三方笔记!零成本用Cloudflare搭建Memos-Worker私人知识库,永久免费
项目介绍
不知道大家有没有这种困扰:平日里脑海源源不断迸发各类灵感,看到优质文章想要收藏留存、工作要点需要及时记下、学习途中整理知识框架,可记录的数据总是四散各处。[reference:0]
浏览器收藏夹越堆越杂乱,想要查找干货费时费力;重要备忘存于社交软件聊天记录,检索十分麻烦;手机自带备忘录功能简陋,无法实现富文本排版;市面上主流商用笔记工具更是处处受限:[reference:1]
- ❌ 不清楚笔记文件存放位置,隐私没有保障
- ❌ 高阶功能需要付费开通会员
- ❌ 软件内置广告、推送资讯打扰专注记录
- ❌ 笔记导出繁琐,迁移数据难度很高
- ❌ 平台随时调整规则,多年积攒的资料容易受制于人[reference:2]
工作纪要、学习素材、项目构思、生活感悟都是属于自己珍贵的数字资产。越来越多注重数据主权的爱好者,开始搭建专属私有笔记系统,所有资料自己管控、随时随地浏览编辑。[reference:3]
今天就详细讲解一款依托 Cloudflare 无服务器生态打造的开源笔记工具 Memos‑Worker,可以用极低门槛搭建永久可用的私有化知识库。[reference:4]
项目地址:https://github.com/souvenp/memos-worker[reference:5]
到底什么是 Memos‑Worker
通俗来讲它属于轻量化开源知识管理工具,兼具私人记事本和专属动态空间,好比只供自己使用的私密朋友圈。[reference:8]
日常突发的思绪、干货文字、截图素材、专业知识点、转瞬即逝的灵感,全部能够录入系统。仅依靠浏览器,手机、电脑随时登入即可查看与编辑笔记。[reference:9]
市面上原版 Memos 常规搭建方式门槛偏高。传统部署模式需要购置云服务器、手动安装数据库、调试运行环境、处理证书配置,没有运维基础的新手很容易卡在环境搭建阶段。[reference:10]
而改版后的 Memos‑Worker 专为无服务器环境优化,搭载 Cloudflare‑Workers 进行部署,借助其遍布全球的边缘节点网络,拥有多项硬核长处:[reference:11]
- ✅ 完全不需要购置服务器,省去硬件开销、服务器日常维护
- ✅ 依托平台免费资源,日常使用近乎零花费
- ✅ 程序体量轻巧,加载迅速、运行负担极低
- ✅ 全网任意地区均可打开网页,随时随地存取笔记
- ✅ 部署流程简单易懂,零基础新手也能够顺利上线[reference:12]
整套程序依托 Cloudflare 全套组件运行,包含 Workers、Pages、D1 数据库、R2 对象存储、KV 缓存空间。依靠平台免费配额即可正常运转,全权掌控属于你自己的私人笔记平台。[reference:13]
完整功能清单
✍️ Markdown 编辑器
支持分栏编辑、实时预览;网页复制过来的富文本内容,可以智能转换成 Markdown 格式,编写技术文档、随笔草稿十分顺手。[reference:14]
多样化笔记管理视图
单条记事支持置顶、收藏以及归档处理;配备宽屏布局、瀑布流卡片、按日期分组等浏览模式,可以依照当下使用习惯自由切换。[reference:15]
高效的知识整理机制
系统自动生成标签,内置全文检索、时间轴视图、日历看板、活跃度热力图,能够快速检索很早之前保存下的碎片化想法。[reference:16]
多格式附件上传
支持剪贴板粘贴、拖拽上传图片;图片储存介质二选一,可存放至 Cloudflare‑R2 储存桶或者 Imgur,PDF、文档、压缩包等各类附件均可上传保存。[reference:17]
可控式公开分享
每一条笔记和上传的附件都能够生成独立外链,分享链接能够设置有效期,适合临时将资料发送他人查看,无需对外开放整套知识库。[reference:18]
Telegram 机器人联动
对接 TG 机器人之后,外出的时候直接发送文字、照片、短视频、各类文件,素材便能够一键同步至笔记库,外出偶遇灵感立刻留存。[reference:19]
自定义页面外观
拥有浅色、深色两套主题;可自定义主题色、首页背景、毛玻璃磨砂特效;还能够自定义页面布局,关闭用不着的功能入口,定制专属操作界面。[reference:20]
树状结构化知识库
独立的 Docs 文档板块采用树形目录结构,适合搭建教程库、学习档案、团队资料库,用来收纳系统化、层级分明的正式知识。[reference:21]
高速访问、低成本运维
依托 Cloudflare 遍布全球的边缘节点加速访问,网页加载速度快;个人或者小团体日常记录,免费套餐资源额度便足够使用,不需要运维服务器。[reference:22]
保姆级部署教程
第一步:创建专属 GitHub 仓库
这里存在两种创建方案,大家根据后续更新需求挑选:[reference:23]
方案 A:Fork 上游源码(优先推荐)
- 优势:你的仓库绑定原版项目,后续作者更新功能、修复漏洞,能够一键同步新版本。[reference:24]
- 短板:仓库属性为公开;账号密码、密钥全部存放于环境变量当中,源码会暴露私密参数,安全风险低(但通常也不会有什么事)。[reference:25]
- 操作:点击项目主页右上角 Fork 按钮即可。[reference:26]
方案 B:模板生成私有仓库
- 优势:新建独立私有仓库,外人无法浏览你的源代码。[reference:27]
- 短板:和上游源码断开关联,后续升级新版本只能手动执行 Git 命令合并代码,操作繁琐。[reference:28]
- 操作:点击 Use this template → Create a new repository。[reference:29]
第二步:前往 Cloudflare 后台创建所需资源
登录控制面板,依次创建 D1 数据库、KV 命名空间、R2 文件桶,资源参数参考下表:[reference:30]
| 资源类型 | 推荐命名 | 绑定变量名称 |
|---|---|---|
| D1 数据库 | notes-db | DB |
| KV 命名空间 | notes-kv | NOTES_KV |
| R2 存储桶 | notes-r2-bucket | NOTES_R2_BUCKET[reference:31] |
搭建 D1 数据库 (notes-db)
- 进入 Workers & Pages → D1 → Create database[reference:32]
- 打开数据库控制台,复制项目内
schema.sql的全部代码并且运行,初始化数据表[reference:33] - 记录数据库 ID、数据库名称,填写入
wrangler.toml文件的[[d1_databases]]部分[reference:34]
💡
schema.sql核心表结构包含:tags标签表、notes笔记表、note_tags关联表、nodes树形节点表,以及全文搜索虚拟表notes_fts和相应的触发器。[reference:35][reference:36]
创建 KV 命名空间 (notes-kv)
进入 Workers & Pages → KV → Create a namespace。[reference:37]
⚠️ 重要:记下 id。将其填入
wrangler.toml文件的[[kv_namespaces]]部分。[reference:38]
创建 R2 存储桶 (notes-r2-bucket)
进入 R2 → Create bucket。[reference:39]
⚠️ 重要:记下 bucket_name。将其填入
wrangler.toml文件的[[r2_buckets]]部分。[reference:40]
第三步:部署 Worker 服务
- 打开 Workers & Pages,新建应用并选定 Continue with GitHub 类型[reference:41]
- 关联刚刚准备完毕的 GitHub 仓库[reference:42]
- 保存配置并启动部署[reference:43]
第四步:配置环境变量
部署结束之后进入项目设置 → 环境变量,依次添加下面参数:[reference:44]
| 环境变量 | 参数说明 |
|---|---|
| USERNAME | 后台登录账号 |
| PASSWORD | 后台登录密码 |
| TELEGRAM_BOT_TOKEN | (可选)TG 机器人密钥(选填) |
| TELEGRAM_WEBHOOK_SECRET | (可选)随机复杂字符,用于接口校验(选填) |
| AUTHORIZED_TELEGRAM_IDS | (可选)允许推送笔记的 TG 用户 ID(选填)[reference:45] |
参数保存之后重新部署一次项目,环境配置正式生效。[reference:46]
第五步:开启 TG 机器人回调接口(可选)
配置机器人参数之后需要激活 Webhook 实现消息推送:[reference:47]
- 获取你的笔记站点域名
- 浏览器访问下方链接,替换密钥以及域名信息[reference:48]
替换链接中的 <YOUR_BOT_TOKEN> 和 <YOUR_SECRET_TOKEN> 为你自己的真实密钥值。[reference:49]
按下回车。如果你看到 {"ok":true,"result":true,"description":"Webhook was set"} 的返回信息,即代表设置成功!你现在可以给你的机器人发送消息了。[reference:50]
重建搜索索引(推荐)
如果你是从旧版本(20260206之前版本)更新的,并且想要实现搜索文件名的功能,你需要重建全文搜索 (FTS) 索引。[reference:51]
- 进入 Cloudflare Dashboard → Workers & Pages → D1[reference:52]
- 选择你的数据库 (例如 notes-db)[reference:53]
- 点击 Console 选项卡[reference:54]
- 复制本项目中
src/migrate_fts.sql文件的完整内容并粘贴到控制台[reference:55] - 点击 Execute[reference:56]
💡 这将更新你的搜索索引以包含文件名,并刷新所有现有数据。[reference:57]
迁移脚本核心步骤
-- 1. 删除旧的同步触发器
DROP TRIGGER IF EXISTS notes_after_insert;
DROP TRIGGER IF EXISTS notes_after_delete;
DROP TRIGGER IF EXISTS notes_after_update;
-- 2. 删除旧的全文搜索表
DROP TABLE IF EXISTS notes_fts;
-- 3. 创建包含 'files' 列的新全文搜索虚拟表
CREATE VIRTUAL TABLE notes_fts USING fts5(content, files, content='notes', content_rowid='id');
-- 4. 从 notes 表中同步现有数据到新的 notes_fts 表
INSERT INTO notes_fts(rowid, content, files) SELECT id, content, files FROM notes;
-- 5. 重新创建同步触发器
CREATE TRIGGER notes_after_insert AFTER INSERT ON notes BEGIN
INSERT INTO notes_fts(rowid, content, files) VALUES (new.id, new.content, new.files);
END;
CREATE TRIGGER notes_after_delete AFTER DELETE ON notes BEGIN
INSERT INTO notes_fts(notes_fts, rowid, content, files) VALUES ('delete', old.id, old.content, old.files);
END;
CREATE TRIGGER notes_after_update AFTER UPDATE ON notes BEGIN
INSERT INTO notes_fts(notes_fts, rowid, content, files) VALUES ('delete', old.id, old.content, old.files);
INSERT INTO notes_fts(rowid, content, files) VALUES (new.id, new.content, new.files);
END;
```[reference:58][reference:59]
---
## 使用提示
### 成本说明
Memos-Worker 充分利用了 Cloudflare 的免费额度:
- **Workers**:每日 10 万次请求(免费)
- **D1 数据库**:5 GB 存储(免费)
- **R2 存储**:10 GB 存储 + 每月 100 万次 A 类操作(免费)
- **KV 存储**:1 GB 存储(免费)
对于个人使用来说,这些免费额度通常完全够用。[reference:60]
### 安全建议
> ⚠️ **账号密码请务必使用强密码**,不要使用简单密码。账号密码存放于环境变量中,请妥善保管。[reference:61]
### 更新项目
- 如果使用 **方案 A(Fork)** 部署,后续作者更新功能、修复漏洞,能够一键同步新版本[reference:62]
- 如果使用 **方案 B(模板生成私有仓库)**,后续升级新版本只能手动执行 Git 命令合并代码[reference:63]
### 获取帮助
- 项目地址:[https://github.com/souvenp/memos-worker](https://github.com/souvenp/memos-worker)[reference:64]
---
## 总结
Memos-Worker 是一个轻量、功能完整的私有笔记系统。它巧妙地利用 Cloudflare 生态的免费资源(Workers、Pages、D1、R2、KV),让你能够零成本拥有一个完全自主可控的知识库平台。无论是作为个人灵感收集器、学习笔记系统,还是作为团队知识库,Memos-Worker 都能胜任。
与其他笔记方案相比,Memos-Worker 的优势在于:
- **零服务器成本**:无需购买 VPS
- **零运维负担**:无需管理服务器软件和数据库
- **全球化部署**:Cloudflare 边缘节点保证全球访问速度
- **数据私有**:所有笔记掌握在自己手中
- **功能完备**:从 Markdown 编辑到全文检索,从 TG 机器人到树形知识库,一应俱全
- **部署简单**:无需运维基础,新手也能顺利上线
如果你正在寻找一个**免费、私密、功能强大**的私有笔记方案,Memos-Worker 绝对值得一试。
---