FlareMo 上手体验:不买服务器,一个免费 Cloudflare 账号就把笔记系统跑起来了

写上一篇《自部署一个 Memos:FlareMo 上 Cloudflare Workers 全记录》时,重点全在踩坑和补丁上。这篇换个角度:FlareMo 到底是个什么东西、免费额度够不够用、日常用起来是什么体验、适合谁不适合谁。 FlareMo 是什么 一句话:一个免费 Cloudflare 账号就能 24 小时跑在云端的个人笔记系统,Memos 兼容,应用层 Better Auth 登录,数据存 D1(5GB 数据库)+ R2(10GB 对象存储),代码和前端跑在一个 Worker 上。 传统自部署长这样:一台 VPS、一个 Postgres、一堆 Docker 容器、每周要维护的备份脚本,还有硬盘坏了数据全没的风险。FlareMo 想回答的问题是:能不能只用一个免费 Cloudflare 账号,不买服务器、不装数据库、不写备份脚本,就拥有一个 24 小时在线、数据不会丢、能绑自定义域名、还能被各种工具调用的笔记系统? 答案是能。整套东西跑在一个 Worker 上,你没有一个"服务器"要照看,只有一份代码和一个免费账号。 免费额度到底够不够用 很多人一听"免费"就觉得是玩具。实际上对个人笔记这种纯文本为主的场景,免费额度是溢出的: D1 5GB:一条笔记含标签时间戳索引开销算 2KB,能存约 250 万条,每天写 100 条能写 68 年 R2 10GB:约 5000-10000 张压缩图片,或者 80 小时语音备忘录;R2 出口流量不收费,分享图给别人不产生流量账单 我的实际体感:写了大半年,数据库用量连零头都没到。免费额度不是"很快就会撞到的天花板",而是"你大概率永远用不完"。 为什么放 Cloudflare 比放 NAS 稳 自部署还有一个常被低估的成本:数据的物理安全。NAS 数据在自家硬盘上,硬盘会坏、电源会跳、家里可能漏水被盗。FlareMo 的数据在 Cloudflare 企业级基础设施上持久化,自带冗余,你不用买第二块硬盘、不用写定时备份、不用关心 SMART 报警。 另外它天然附带了一堆自部署很难凑齐的东西:全球边缘节点、免费 HTTPS + 自定义域名(我绑了 memo.uuunit.com,证书自动续)、不用 frp / Tailscale / 公网 IP 打洞、零运维——没有系统补丁、没有数据库升级、没有进程看门狗。 ...

2026-09-03 · 1 min · 192 words · camac

自部署一个 Memos:FlareMo 上 Cloudflare Workers 全记录

一直在用 Memos 记碎片想法,但官方 Server 要自建 VPS,维护成本不低。直到发现 FlareMo——一个把 Memos 完整跑在 Cloudflare Workers 上的开源项目,D1 存数据、R2 存附件、Vectorize 做语义搜索、Workers AI 做嵌入,全部免费额度内。部署地址 memo.uuunit.com,iOS 用 MoeMemos 客户端无缝接入。这趟从部署到客户端跑通踩了六个坑,值得记录。 坑一:孤立仓库不能 pull,只能 reset 仓库是从 GitHub 上拿到的快照,本地只有一个根提交,和上游没有共同祖先。这意味着 git pull / git merge 必然冲突,升级的正确姿势是: git branch backup-v0.6-snapshot # 旧版快照分支 git fetch origin --tags git reset --hard v0.14.0 # 目标 release tag 但 reset 会把 wrangler.jsonc 一并覆盖——本地真实 D1 ID(da6ec409-...)和 FLAREMO_PUBLIC_URL 全丢。所以升级前先备份本地敏感文件,reset 后重新应用数据库 ID 和公网地址,再 commit 一次防止下次更新再丢。 坑二:Vectorize 索引不会自动创建 新版引入了语义搜索,上游 wrangler.jsonc 里声明了 Vectorize binding,但不会自动建索引——不手动创建,部署直接失败: unset CLOUDFLARE_API_TOKEN CF_API_TOKEN # 必须 unset,否则走 API token 模式不是 OAuth npx wrangler vectorize create flaremo-memos --dimensions=1024 --metric=cosine npx wrangler vectorize create flaremo-memories --dimensions=1024 --metric=cosine 维度必须和嵌入模型匹配(默认 qwen3-embedding-0.6b = 1024 维 cosine)。还有一个隐藏雷:Vectorize V2 的 returnMetadata 参数要求字符串枚举 "all" | "indexed" | "none",上游代码传的是 V1 的布尔 false,语义搜索直接 500 Internal server error,要手动改成 "none"。 ...

2026-09-03 · 2 min · 277 words · camac
万宝龙钢笔拆解特写

拆解一支万宝龙:从笔帽浮雕到活塞上墨

最近做了个万宝龙笔的专题页,从官网和公众号收集资料,整理品牌历史、制笔工艺和各系列背景。这篇记录一下制作过程和要点。 项目地址: http://camac-macmini.local/montblanc/ 项目概况 项目 数据 内容 万宝龙品牌历史 + 制笔工艺 + 8 个系列专题 配图 15 张官网高清产品图 + 公众号细节图 来源 万宝龙官网 + 公众号文章 部署 本地 HTTP 服务 内容结构 品牌历史时间线 从 1906 年柏林创立,到 1910 年「万宝龙」之名诞生、1913 年六角白星标志定型,再到 1924 年大班系列、1992 年大文豪系列,梳理了 120 年的品牌脉络。 制笔工艺 10 步详解 金料熔炼 → 笔尖冲压 → 手工打磨 → 铱粒焊接 → 开缝研磨 → 镌刻雕花 → 笔杆车削 → 活塞组装 → 总装调校 → 书写测试 各系列背景 大班:1924 年诞生,149 被称为「笔中王者」 星际行者:太空舱笔帽 + 悬浮标志设计 传承系列:1909 年首款 Rouge et Noir 复刻 大文豪系列:1992 年海明威首发,至今 34 款 斯托克:吸血鬼之父、《德古拉》背景 法拉利联名:驱动理念 + 木纹设计 罗密欧与朱丽叶:七夕企划双笔配色 配图来源 本次配图分两类: ...

2026-08-08 · 1 min · 114 words · camac
内观电子书网页版首页截图

《内观》电子书网页版是怎么做的

读《内观——葛印卡的解脱之道》时记了几百段读书笔记,一直想让这些内容能公开分享、随时随地读。于是把它做成了一个多页 HTML 电子书网页版。 项目已收录 → 项目页:《内观》电子书网页版 这个项目挺有代表性——一本书变成一个可交互的阅读站,中间踩了不少坑。这篇复盘完整记录做法。 项目概况 项目 数据 书籍 《内观——葛印卡的解脱之道》(威廉·哈特) 输出 28 页 HTML 静态站 配图 657 张(AI 生成 + 压缩) 金句音频 506 条(本地 TTS) 书评 33 条(微信读书) 域名 vip.uuunit.com 托管 Cloudflare Pages 总大小 175MB(含音频) 全流程 1. 内容提取 & 结构化 先解决源头问题:内容从哪来? EPUB:本质是 zip 包,里面是 HTML 文件。用 Python 解压 → 正则去标签 → 纯文本 Obsidian 笔记:读书时已经按段拆分了 546 段,格式是 ### {章节}-{段号} {标题} 用正则 r'### ([\\d]+)-([\\d]+) (.*?) — (.+)' 把笔记解析成结构化 JSON,每章一个文件。 ...

2026-08-07 · 2 min · 407 words · camac
Hugo 部署 Cloudflare

Hugo 部署 Cloudflare 的踩坑记录

最近把 Hugo 博客部署到 Cloudflare Pages,看着简单,结果踩了一堆坑。记录一下,给后面的人省点时间。 坑一:主题文件别手写 一开始图省事,手动推了个简化版 PaperMod 主题到仓库。结果功能不全、CSS 缺失、搜索用不了。 正确做法: 构建时直接拉官方主题,别自己维护一份。 git clone --depth 1 https://github.com/adityatelange/hugo-PaperMod.git themes/PaperMod 坑二:HUGO_VERSION 必须和主题匹配 PaperMod 要求 Hugo >= 0.146.0,但 Cloudflare 默认可能是老版本。 解决: 在 Cloudflare Pages 环境变量里指定版本。 HUGO_VERSION = 0.146.0 坑三:TOML 语法别用 YAML 的写法 minify: 这种冒号写法是 YAML 的,TOML 要用 [minify] 表头。Cloudflare 用的是标准 TOML 解析器,一个字符错就整个构建失败。 [minify] disableXML = true 坑四:代码块要标注语言 Markdown 代码块如果不标注语言,Hugo 可能渲染异常。目录结构这种用 text: project/ |-- file1.py +-- file2.py 坑五:域名要加到 Pages 白名单 光在 DNS 配 CNAME 不够,Pages 项目本身也要把域名加进去,否则不响应请求。 坑六:构建日志看不到 Cloudflare Pages 的构建日志 API 不开放,只能网页上看。构建失败时,把日志贴出来就能定位。 ...

2026-08-07 · 1 min · 86 words · camac
内容与样式分离

一份 Markdown 三套皮肤

痛点 每次写网页报告,样式和内容糊在一起。改个颜色要重新生成全文,换风格等于重写。更烦的是,内容写在一个专有编辑器里,换个工具就迁移不了。 解决方案:拆两层 内容层只管写什么——Markdown 文件,带 YAML 头信息。 样式层只管长什么样——独立的 HTML 模板,用 {{变量}} 占位符接收内容。 中间一个渲染脚本串起来,输入 MD 选模板,输出成品 HTML。 具体实现 目录结构 ~/.hermes/ |-- scripts/ | +-- render_page.py |-- templates/ |-- default.html |-- dark.html +-- magazine.html 模板文件是独立 HTML,用 {{title}}、{{content}}、{{toc}} 等占位符接收内容。想加新模板?写一个 HTML 丢进 templates/ 就行,脚本自动识别。 使用方法 python3 ~/.hermes/scripts/render_page.py 文章.md python3 ~/.hermes/scripts/render_page.py 文章.md -t dark python3 ~/.hermes/scripts/render_page.py 文章.md -t magazine 文章格式 每篇文章开头加 YAML 头信息: --- title: 标题 date: 2026-08-06 description: 一句话描述 --- 正文内容... 配合 Obsidian 使用 设置软链接 ln -s ~/Documents/Obsidian/Blog /path/to/hugo/content/posts 写作流程 在 Obsidian 里写文章,存到 Blog/ 文件夹 用标准 Markdown,不要用 [[双向链接]] 图片用 ![alt](path) 语法 保存后 Hugo 自动就能读到 发布流程 hugo git add . && git commit -m "新文章" && git push Cloudflare Pages 自动构建上线。 ...

2026-08-06 · 1 min · 171 words · camac

Mac mini 远程控制 Sidecar 的三种方案

把 iPad 当 Mac 的第二块屏幕,Sidecar 是苹果官方方案。但如果你用的是 Mac mini(没有自己的屏幕),远程 SSH 进去想控制 Sidecar 就没那么简单了。 折腾了一圈,最后能用的一共三套方案。 三种方案对比 方案 原理 响应速度 可靠性 SidecarLauncher (主力) 调用 Apple 私有 SidecarCore.framework 框架 ~1s ✅ 极高 Hammerspoon AX (备选) 遍历系统设置界面 AX 元素,模拟点击 ~3s ✅ 高 computer_use (备选) 通过 cua-driver 在后台操作 UI ~5s ✅ 中 方案一:SidecarLauncher(推荐) 用 Swift 直接调用 Apple 的私有框架,不需要任何 GUI 交互,秒级响应,有线优先自动走无线。 sidecar status # 查看连接状态 sidecar on # 连接(有线优先) sidecar off # 断开 sidecar devices # 列出可用设备 已封装成 shell 函数加到 ~/.zshrc: ...

2026-08-02 · 2 min · 307 words · camac
第一篇笔记

第一篇笔记

为什么搭这个站 之前一直用 Bear 和 Obsidian 记笔记,但笔记都是私有的。有些内容想公开分享,需要一个博客。 技术选型 工具 作用 理由 Hugo 静态站点生成器 快,一个二进制搞定,零依赖 PaperMod Hugo 主题 干净、功能全、适合笔记站 Obsidian 写作工具 日常记笔记的地方,直接写 MD Cloudflare Pages 部署 免费,全球 CDN,自动 HTTPS 工作流 在 Obsidian 里写文章,保存到 02-Projects/uuunit.com/posts/ 目录,推送到 GitHub,Cloudflare 自动部署。 避坑 主题文件不要手写简化版,直接拉官方主题 HUGO_VERSION 环境变量必须和主题要求一致 模板里 range 嵌套容易导致菜单重复渲染,注意检查 print("Hello, uuunit.com!")

2026-08-01 · 1 min · 44 words · camac
NTFS BitLocker

NTFS 格式移动磁盘在 Mac 下不能挂载?BitLocker 是罪魁祸首

问题现象 一个 NTFS 格式的 U 盘在 Mac 上一直正常识别,某天突然桌面不显示。打开 磁盘工具 能看到设备,但就是挂载不上。 排查过程 尝试 结果 重启 Mac ❌ 无效 换 USB 口 ❌ 无效 虚拟机 Windows 读取 ✅ 可以读 在 Windows 的 磁盘管理 中发现,U 盘启用了 BitLocker 加密(待激活)。 解决方法 在 Windows 上对 U 盘执行 BitLocker 加密(会提示需要激活) 再执行 BitLocker 解密 期间不要拔出 U 盘 完成后插回 Mac,恢复正常 避坑提示 BitLocker 加密状态在 Mac 上不可见,只有 Windows 磁盘管理器能看出来 如果 U 盘在 Mac 上突然不显示但磁盘工具有,优先怀疑加密问题 加密/解密过程不要中断,否则可能损坏数据

2025-06-13 · 1 min · 64 words · camac
Kodi Skin

Bello Fredo — Kodi 16.x Jarvis Skin

Bello Fredo 是一个基于 Bello 的 Kodi 16.x Jarvis 皮肤 Kodi 17.6 的 Bello 皮肤已经更新,可以在皮肤中直接安装,安装后替换字体即可。 新版本目录变为 “~/Library/Application Support/kodi/addons/skin.bello.6/fonts” 字体链接:https://github.com/henrychan2/handy/blob/master/Microsoft%20YaHei%20Mono.ttf?raw=true 因为 Kodi 17 以上不能直接使用 Kodi 16 的皮肤,所以需要修改,这里修改基于 Bello 2.2.0 版本。 修改方法: 下载 Bello 皮肤 修改 addon.xml,将版本号从 2.2.0 改为 3.0.0,将依赖的 xbmc.gui 版本从 5.12 改为 5.14 打包成 zip,在 Kodi 中安装 安装后到皮肤设置中选择字体为 Arial 本文原发布于 Medium,迁移至 U.U.UNIT。

2019-08-03 · 1 min · 51 words · camac