返还我的碎碎念: https://c.brmys.cn/c
关联主题::
同级:: 2025-12-04_星期四
下一级::
开发周期:2025.12.02-2025.12.04


一、想法背景
如何接触的cflow?
过去的一两年里,我一直有使用一款叫做「Memos」的笔记工具(和flomo有些相似),我将它部属在我的「绿联Nas」中使用。
作者的开源地址:usememos/memos
网上介绍Memos的视频文章很多,我随便放两个:24年的时候,我又在B站刷到了一个视频(cflow) 一年时间,我把memos魔改成了我理想中的flomo ,作者在Memos的基础上进行了二次开发,搞出了一个私人定制化的工具cflow。并在Github放了一个基础版的源码:Vespa314/cflow: cflow
部属以后,发现很多功能都被阉割了… … 于是索性自己学习cursor进行了再次开发,搞出了我的个人定制版cflow。
2025年5月份,我花了2周的时间,搞出了这个产品,然后又花了几周的时间进行了迭代和升级。
cflow和一些工具的联动
由于是高定制化的工具,再次基础上,我又实现了和一些工具的联动。
1、做了一款Obsidian插件「CFlow同步」,将cflow卡片的内容,实时同步到Obsidian日记里。
2、Telegram做了一个机器人,然后单向同步内容到cflow;
3、做了一个Docker容器「dida2cflow」,滴答清单所有带有标签「cflow」的内容都可以直接同步到cflow(图片采用图床处理)
二、需求
cflow使用起来体验很棒,但是我希望将我一些有趣的碎碎念可以分享出去。(我的分享欲hhh)
首先想到的是,内网穿透方案。
我有公网IPV6,但是无公网IPV4,我尝试过很多方案,都不满意:
- 通过Lucky等工具绑定域名反向代理。(ipv6环境下访问很快,但是ipv4访问不了)
- frp+云服务器;
- tailscale、节点小宝等工具… …
- Cloudflare内网穿透…
这些内网穿透服务更适合自己使用,但是并不适合对外分享展示。
然后我在网上,发现了一些基于Memos前端开源项目,诸如:
- eallion/memos.top: ✍ A static page rendered with the Memos API.
- rcy1314/echo-noise
- 使用Memos来搭建私人朋友圈说说 - 少数派
在这些开源项目的基础上,我最终做出来了我的「苏苏碎碎念」 https://c.brmys.cn
❎思路一:云服务器Docker部属cflow
云服务的Docker部属cflow很简单;网上也有很多可以免费部属Docker的平台;
但是:
- 前面说过了,借助云服务器内网穿透,体验一般;
- 我确实不清楚搞个云服务器能干嘛,我都有nas了,多数服务不要公网使用的,偶尔几个才需要,没必要单独开个云服务器(事实上吃灰好几个了)
- 前端网页部属Cloudflare、vercel,通过api调用本地cflow,但是依然需要内网穿透,体验过了,加载很慢。
还有一个思路,本地Docker和云端Docker挂载同一个数据库,如何实现这个数据库数据同步?
这个可能是可以实现的,但是我还没有探索。
❎思路二:苏苏碎碎念部属在个人博客
我产生了一个新思路,
升级一下我的Obsidian插件「CFlow同步」点击「同步到博客」按钮,可以生成一份JSON数据,这份数据包含了cflow的公开卡片。由于我的博客是基于Obsidian插件的(详见:本博客搭建指南Obsidian+Quartz+Cloudflare)
所以我想着是,将「苏苏碎碎念」这个前端页面内嵌到我的博客里。大致流程是:
001 每次手动,点击「同步到博客」生成一份JSON数据;
002 博客内容改动,推送到Git仓库,然后自动部属到Cloudflare;
003 访问博客地址路径,可以看到「苏苏碎碎念」的内容更新;这个思路最终实现了,但是我觉得太麻烦了。
因为我设想了一下场景,我每次在滴答清单编辑了内容同步到cflow后,我总不能每次都手动打开电脑,执行博客的内容提交到git吧?太麻烦了。所以我就产生了一个新的思路。
三、实现思路
1、重新建立一个「苏苏碎碎念」的项目,参考上面「思路二」已经实现的前端页面,通过claude code开发,推送到github仓库,然后部属到Cloudflare。
2、Nas拉取仓库的代码,实现本地开发<—>Git仓库<—>Nas的代码同步。
3、Claude Code写一个Docker镜像的代码(cflow-ssn-sync),功能:
- 每20s从cflow获取并生成一份JSON数据(指的是cflow的公开卡片);
- 检测到数据变化后,将JSON推送到Git仓库,并触发Cloudflare部属;
4、由于「苏苏碎碎念」是部署在Cloudflare的,直接通过github读取JSON数据,所以访问速度很快,秒加载;
5、Cloudflare pages 优选域名。(教程:Cloudflare给pages和Worker优选域名)
详细复盘
详细复盘:
1、复制「苏苏项目开发」文件夹下的【碎碎念】每日碎碎念-2025.09.19-v2.0 到我的Obsidian知识库;2、从“苏苏知识库”Obsidian启用Cursor,在其终端打开Claude Code
3、初始思路即方案二,先采用Claude Code的
plan mode on模式进行开发大致的需求描述:
4、迭代升级了「CFlow同步」的插件,增加了一个按钮功能“同步到博客”,
可以将cflow的公开卡片以JSON的格式导出到指定文件夹。5、碎碎念在博客中进行开发
本地构建代码(方便以后有需要测试):
正确的启动流程 cd "/Users/bairimengyushi/苏苏OB知识库/Obsidian blog" # 1. 构建(必须先执行) npm run build # 2. 启动本地服务器 npm run serve - npm run build = 构建博客 + 同步碎碎念到 public/c/ - npm run serve = 启动静态服务器,访问 http://localhost:8080 访问地址 - 博客首页:http://localhost:8080 - 碎碎念首页:http://localhost:8080/c/ - 单卡片详情:http://localhost:8080/c/3251【碎碎念】每日碎碎念-2025.09.19-v2.0 碎碎念相关的原代码,也迁移到了博客路径下了。
6、基于方案二已经构建好的前端页面,在Obsidian文件夹“30 Project”下面创建文件夹cflow-碎碎念 。
7、先创建一个Git仓库brmysss/cflow-ssn,将本地的cflow-碎碎念 同步过去,然后部属到Cloudflare(手动部属pages),这样就可以在云端访问碎碎念了,此时还没有cflow的数据内容。
8、继续使用Claude Code构建一个Docker镜像「cflow-ssn-sync」,docker-compose.yml。
9、nas进行相关部署。
1、cd /volume2/docker/cflow-ssn/cflow-ssn-main/cflow-ssn # cflow-ssn 指定文件夹 2、拉取远程仓库代码:git clone https://xxx@github.com/brmysss/cflow-ssn.git #这里的xxx为Github令牌token 3、修改相关的.env文件,这个可以按照Claude code 的提示完成 4、docker compose build --no-cache #重新构建镜像 5、docker compose up -d #启动新容器 6、docker logs -f cflow-ssn-sync #查看日志确认正常运行 7、拉取最新代码 git fetch origin git reset --hard origin/main2025-12-04_星期四 进行升级: 对cflow-ssn-sync 进行升级
10、开发碎碎念中的音乐播放器,路径:30 Project_music-admin
部属在Cloudflare,后台地址: https://music.brmys.cn/001 下载音乐的音频
002 音频上传图床 https://i.brmys.cn
003 手动在音乐播放器后台添加更新音乐 https://music.brmys.cn/
四、优化和升级的项目及经验
1、【项目】滴答清单同步cflow容器dida2cflow开发(2025.11.30) :容器dida2cflow升级,实现功能:滴答清单同步到cflow的卡片,如果卡片带有标签「公开」则自动将该条cflow卡片设置为公开状态。
2、关于Docker的开发,
我之前的思路都是先在Mac电脑本地开发,然后安装Docker软件,构建镜像,再上传到nas里,通过FinalShell SSH链接Nas,再去加载镜像,然后部属,这样搞其实特别麻烦的。
我现在学会了新思路(原谅我也是非技术出身,一步步实战成长的)
001 先将本地项目推送到Git仓库;
002 本地借助Claude Code、Cursor等工具开发;
003 Nas文件夹拉取Git仓库代码;
004 修改完成后,直接在Nas(借助FinalShell)构建镜像,然后加载。
