banner
约 1,500 字
5 分钟

用 Cloudflare 部署一款漂亮且功能强大的免费云笔记工具

摘要

inkstone 是一个跑在 Cloudflare Workers 上的开源网页笔记工具,支持 Markdown、双向链接、离线编辑、多设备同步和可选的语义搜索。这篇记录从 Fork 仓库到 Cloudflare 一键部署(R2 / KV 两种模式怎么选)、再到绑定自定义域名的完整流程——全程免费,不需要买服务器。

前言

inkstone 是一个跑在 Cloudflare Workers 上的自托管网页笔记工具。笔记全部以纯 Markdown 文本保存,不会被锁进私有格式里;在这个基础之上,它提供了专注写作、实时预览、关键词搜索与可选的语义搜索、双向链接、离线编辑、多设备同步、私有 AI 接入、公开分享,以及异地备份。项目采用 LGPL-3.0 开源许可,作者是 shuaiplus,目前仍在活跃更新。

如果你不需要 Obsidian 那么复杂的功能,用它写日常文档足够了。

功能特色

写作体验:编辑器基于 CodeMirror 6,可以把一篇内容拆成两个编辑组并排写作,支持滚动同步、大纲导航、专注模式、打字机模式和自动保存;每次改动都留有版本历史,随时可以回看。

Markdown 增强:除了标准的表格、任务列表和脚注,还支持 Obsidian 风格的注释、WikiLinks、笔记嵌入、块 ID、Callouts 提示块、折叠块、标签页、数学公式、Mermaid 图表、代码高亮以及 Front Matter 头信息——Obsidian 里常用的语法,这里基本都能认。

组织与检索:支持多层文件夹拖拽排序、内联标签、收藏与置顶、归档和回收站;双向链接、块引用和关系图谱能把零散的笔记连成一张网。搜索采用 D1 的 FTS5 全文索引,对中文做了分词优化,还可以额外开启基于 Workers AI 的私有语义搜索。

同步与离线:能装成 PWA 应用,断网也能打开;离线期间的修改会进入待写队列,联网后自动补交,并配有乐观并发控制和冲突副本机制,避免多设备同时编辑时互相覆盖。

分享与备份:单篇笔记可以生成公开链接,并设置访问密码和有效期;数据支持导出为 JSON 或 ZIP,附件也能单独导出,还能配置 WebDAV 或 S3 定时异地备份。

MCP 接入:内置远程 MCP 服务,使用 OAuth 2.1(PKCE)授权,可为账号签发可随时撤销的 ink_... API Key,方便让 AI 助手直接检索和读写笔记。

部署

第一步:Fork 项目

打开项目地址:https://github.com/shuaiplus/inkstone,点击右上角 Star 支持作者,再点击 Fork 复刻到自己的仓库。

blog image

第二步:Cloudflare 部署项目

  1. 登录 Cloudflare,左侧点击 计算 → Workers 和 Pages

    blog image
  2. 点击创建应用程序,选择继续使用 GitHub

    blog image
  3. 授权绑定 GitHub 账号后,搜索并选中 inkstone 仓库。

    blog image
  4. 项目支持 R2 和 KV 两种存储方式,R2 需要绑定信用卡,未绑定时使用 KV 模式即可。

    blog image

使用 R2 时,构建命令填 npm run build,部署命令填 npm run deploy;如果你打算用 KV 模式,把部署命令改成 npm run deploy:kv

两者的区别只在于附件和头像这类二进制文件放在哪:R2 是对象存储,容量大、支持 CDN 分发,适合图片多的用法,但开通要绑卡;KV 免费额度就够日常使用,配置也少一步,代价是单个文件有体积限制。笔记正文本身始终存放在 D1 数据库里,跟这个选择无关。所以上手阶段选 KV,等附件攒多了再迁到 R2,完全来得及。

  1. 等待自动执行,页面出现 Success 即部署成功。

第三步:绑定自定义域名

  1. 部署成功后点击,Cloudflare 自动分配的域名在国内可能无法访问。

  2. 点击添加域名,选择自己已有的域名,自定义前缀(如 ink)。

  3. 添加完成后即可使用自己的域名访问。

    blog image

数据存在哪

自托管最关心的就是数据归属,inkstone 的存储分工大致是这样:

组件

存放内容

Cloudflare D1

账号、笔记、文件夹、标签、设置、版本、分享记录与全文索引

Cloudflare R2 或 Workers KV

附件与上传的头像等二进制文件

Workers KV(OAUTH_KV)

OAuth 授权码与 Token,不存放笔记正文

Workers AI

可选的语义搜索向量

浏览器 IndexedDB

本地缓存与离线待写队列

WebDAV 或 S3

你自己配置的异地备份

也就是说,数据全在你自己的 Cloudflare 账号里,数据库、附件和运行环境都由部署者掌控,作者看不到你的内容。

版本升级是自动完成的——项目通过带版本的迁移脚本把老数据库升级到新结构,不需要手动改表。不过升级前建议先导出一份完整备份,这是自托管应用都该养成的习惯。有新版本时,只有管理员账号会收到提示,不会打扰普通成员。

使用

  1. 第一次打开网页,创建管理员账号。

    blog image
  2. 进入软件后,先阅读一下自带的笔记,学习如何使用。新账号会自动附带两篇初始笔记,一中一英。

    blog image
  3. 手机端支持得很好。

    blog image

结尾

这是我目前发现的、功能最丰富的云笔记工具,不仅 Markdown 编辑功能完整,还有现代化的 MCP 功能,优化得也还不错。如果你本来就在用 Obsidian,但被多设备同步和插件折腾得有点累,可以把它当作一个更轻的替代方案试试——数据是自己的,格式是公开的,随时能打包带走。我准备先测试一段时间,没问题就长期用下去。

END