返还我的碎碎念: https://c.brmys.cn/c

关联主题::
同级:: 2025-12-04_星期四
下一级::

开发周期:2025.12.02-2025.12.04

image.png

image.png

一、想法背景

如何接触的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前端开源项目,诸如:

在这些开源项目的基础上,我最终做出来了我的「苏苏碎碎念」 https://c.brmys.cn

三、实现思路

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 模式进行开发

大致的需求描述:
image.png
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/main

2025-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)构建镜像,然后加载。