GitHub 当笔记盘:开源 Web 笔记 BatNoter 选型与自托管边界

GitHub 当笔记盘:开源 Web 笔记 BatNoter 选型与自托管边界

GitHub 当笔记盘:开源 Web 笔记 BatNoter 选型与自托管边界

源微信标题写成「最好的 Web 笔记管理工具」,核对 sn=bda54a8c15ab5879 后,真实产品是 batnoter/batnoter(MIT)。前端约 2.4k Star,配套后端 batnoter/batnoter-api 用 Go 暴露 REST;官方演示站是 batnoter.com。源文吹的是「1.6K Star、React + MUI」——方向没错,但少写了两件对选型更关键的事:笔记文件落在用户自己的 GitHub 仓库里,以及上游最后一次有效推送停在 2022 年 10 月。

GitHub 当笔记盘:开源 Web 笔记 BatNoter 选型与自托管边界

本地已经写过 NoteGen(内置 RAG 的本地 AI 笔记本)和 Obsidian 技能包路线。它们回答的是「笔记应用本身」或「CLI 如何改写旧页」。本文换一层:如果你的痛点是「想用浏览器写 Markdown,又不想再买一套云笔记盘」,BatNoter 的交易条件是什么、什么时候别上。

封面:GitHub 仓库当笔记盘


一、它到底在卖什么:浏览器 + GitHub OAuth + 你的仓库

BatNoter 不是又一个「本地文件夹双链 PKM」,也不是 Notion 式数据库工作区。官方一句话很短:Create and store notes to your git repository。

拆开看,链路是固定的:

1. 浏览器打开 Web App(官方托管或你自建前端)。

2. 用 GitHub 登录(OAuth)。

3. 选中(或创建)一个用于存笔记的 GitHub 仓库。

4. 之后每一次创建 / 编辑 / 删除,都通过 BatNoter API 写回该仓库里的 Markdown 文件;前端用缓存减少重复 GitHub API 调用。

技术栈也干净:前端 React + TypeScript + Redux Toolkit + MUI;后端 Go,当前官方说明里只支持 GitHub 仓库作为存储后端,本地开发要起 Postgres(Docker)再 migrateup / serve。

这意味着你拿到的不是「私有二进制格式」,而是可被任意编辑器打开的 .md 树——迁走成本接近 git clone。


二、功能清单:够用,但边界清晰

对照官方 README 与源文功能表,可核对的能力如下:

能力 说明
GitHub 登录 OAuth,笔记身份与 GitHub 账号绑定
Markdown 编辑 / 预览 链接、表格、标题、代码块、引用等常规语法
代码块一键复制 面向开发者笔记的小交互
文件夹嵌套 根目录直接存,或目录树组织
目录一键浏览 点进某个目录看下面全部笔记
URL 可收藏 深链到具体笔记页
暗色 / 亮色 主题切换
前端缓存 降低对 GitHub API 的重复请求

它没有(至少官方文档没承诺):实时多人编辑、块级双链图谱、内置 RAG、移动端原生 App、GitLab / Gitee / 裸 Git 远端。若你要这些,应去看 Outline、AFFiNE、思源、Memos 等另一类产品,而不是硬拧 BatNoter。

架构:浏览器经 API 写回 GitHub


三、本地跑通:前端与 API 是两套工程

前端(batnoter)

官方要求 Node.js 18+:

git clone https://github.com/batnoter/batnoter.git
cd batnoter
npm install
npm start

开发模式默认打开 http://localhost:3000。测试:

npm test

后端(batnoter-api)

官方要求 Go 1.18+ 与 Docker Desktop,先起 Postgres:

make network
make postgres
make createdb
cp config.yaml .config.yaml
# 把 .config.yaml 里的占位符改成真实 GitHub OAuth Client ID/Secret、JWT 密钥等
go run main.go migrateup
go run main.go serve

生产侧还有 Helm 仓库 batnoter/batnoter-charts,适合已经在跑 Kubernetes 的团队;个人试用通常官方演示站或 Docker Compose(社区自拼)更轻。

排坑:只起前端不起 API,或 OAuth Redirect URL 与 GitHub App 配置不一致,会卡在「能打开页面、登不进仓库」。先确认 .config.yaml 的 Redirect 与 GitHub OAuth App 回调完全一致,再查浏览器 Network 里 /api/v1/oauth2 相关请求。


四、和 NoteGen / Obsidian / Notion 替代品怎么站队

维度 BatNoter NoteGen Obsidian 系 AFFiNE / AppFlowy / Outline
主形态 Web 桌面 / 移动 本地库 + 插件 工作区 / Wiki
数据落点 用户 GitHub 仓库 Markdown 本地 Markdown + 可选同步 本地 Vault 自托管库或云
AI / RAG 无 内置整理 / RAG 靠插件 / Agent 技能 各产品差异大
协作 弱(本质是个人 Git) 弱 弱(除非同步服务) 团队向更强
维护信号 2022 后上游几乎停更 活跃 生态活跃 多数仍在迭代

选型口诀:

  • 要「浏览器写、版本历史交给 Git、文件永远可搬」→ BatNoter 逻辑自洽。
  • 要「随手乱记再 AI 重整」→ NoteGen,别硬套 BatNoter。
  • 要「第二大脑 + Agent 改写旧页」→ Obsidian 技能路线,不是这个仓库。
  • 要「团队 Wiki / 白板 / 多维表」→ Outline / AFFiNE / AppFlowy。

选型:Git 盘 vs 本地库 vs 团队 Wiki


五、必须写进决策单的三条边界

1. 上游活跃度。 GitHub 显示主仓 pushed_at 约在 2022-10-01。功能能跑,但你要默认:安全补丁、GitHub API 变更、Node/Go 大版本,多半要自己接。生产使用前评估是否 fork 自维。

2. 存储绑定 GitHub。 API README 写明 currently only supports github repository。公司禁用 GitHub、或笔记不能出内网,这条链路直接否决。

3. OAuth 与仓库权限。 登录后应用需要读写你指定的笔记仓库。最小权限原则:单独建一个 notes 私有仓,不要授权到含密钥的业务仓;定期审计 GitHub OAuth App 授权列表。

源文是项目安利体,几乎不谈停更与权限面。作为工程选型,这三条比「界面干不干净」更决定能不能上。


六、什么人值得今晚就 clone

适合:个人知识库想 100% Markdown、已经生活在 GitHub、接受「Web 壳 + Git 盘」、能自己维护 OAuth 与偶发 API 变更。

不适合:要团队实时共编、要本地离线优先、要 AI 检索、要非 GitHub 远端、要「五年不用碰代码」的托管笔记。

仓库:前端 https://github.com/batnoter/batnoter,后端 https://github.com/batnoter/batnoter-api,图表 https://github.com/batnoter/batnoter-charts。演示:https://batnoter.com。协议均为 MIT(以仓库 LICENSE 为准)。

源微信页曾被验证码拦截;正文以搜狗签名链抓取到的原文要点、官方 README 与 GitHub API 元数据为准,不臆造未公开能力。

💻 配套实训环境与动手练习

本文涉及的相关技术指令、开发环境与工具链已内置在边学边练在线实验室中,无需繁琐安装配置,随时在浏览器中实践体验:

文章版权声明:除非注明,否则均为边学边练网络文章,版权归原作者所有

最新文章

热门文章

本栏目文章