小南的小星球:给女朋友做的一个小站
- 1Estate-Link:我给写字楼写的这套物业管理系统
- 2小南的小星球:给女朋友做的一个小站本文
如果说 Estate-Link 是「给别人做的正经系统」,那 小南的小星球 就是「给她做的小玩具」——只不过做着做着,也做成了一个完整的产品。
它是给谁做的
给女朋友,小南。
她平时会记步数、记吃了什么、记心情。这些东西原本散在好几个 App 里,我就想:干脆自己做一个小站,把这些合在一起,还能每天给她生成一份「今天的小报」。
它记录什么
打开小星球,能看到的东西挺杂,但都是她真的在用的:
- 步数与热量 —— 手机 App 自动上报步数,按口径折算成消耗(只精确到日)。
- 饮食记录 —— 吃了什么、想吃什么、不爱吃什么。
- 心情 / 身体信号 —— 心情、体重这些小状态。
- 训练与经期记录。
- 旅行轨迹与照片墙 —— 出去玩的时候打卡、定位、传照片,轨迹会在地图上长出来。
- 歌单 —— 她喜欢听的歌。
- 今日小报 —— 每天 22<00>00> 自动生成,把这个人的一天写成一小段话。
每天的那份小报
这是我最喜欢的一部分。
系统会先把当天的事实整理出来(步数、消耗、吃了什么、心情、训练、经期、目标),再交给大模型,让它只负责「写字」——所有数字都来自代码算出来的事实,不靠模型编。
小报还有一个「指纹」:只要当天任何一项数据变了,指纹就变,页面会标出「已经是旧的啦」,提示你重新生成。
技术栈
- 后端:一个 Python 服务(
server.py+ai.py+suggest.py),随系统托管、开机自启。 - 前端:Vue 3,打包成静态产物。
- 安卓 App:用 Capacitor 把站点套进原生壳,开机自启、定时上报步数、发通知——「自动记步」就是它在干。
- 数据:MongoDB 4.4 是唯一真源,文件镜像做兜底。
- 多媒体:照片、视频、歌都同步到对象存储,不占机器自己的盘。
为什么是 MongoDB 4.4
不是我不想用新版——是这台机器的 CPU 是 Intel Celeron 1037U(Sandy Bridge,没有 AVX 指令集),而 MongoDB 5.0+ 启动时会直接 Illegal instruction 退出。4.4 是最后一个支持无 AVX CPU 的版本,配着 PyMongo 3.11 正好够用。
还有一个我挺满意的设计:库挂了,站照常能用——读走文件镜像、写落文件并打个待同步标记,库回来自动重连、每 5 分钟把文件那份补推回去。所以升级数据库这件事,从小概率的「事故」变成了「后台自动补上」。
隐私:一道口令门
小星球里是两个人的私事,所以我加了一道门:局域网和自己人的设备直接进;外面来的陌生 IP 只看到一张粉色口令页。
口令和「钥匙」都写在配置里,手机 App 走机器钥匙。所有判定只看钥匙和口令,不看 IP。
部署
- 后端是一个常驻服务、前端是静态产物,都放在自己的机器上,随系统托管、开机自启,还挂了内存上限防止把家占满。
- 外面套了一道口令门,只让「自己人」进。
小结
它没什么「大」的野心,就是一个人用。但正因为只给一个人用,我可以把每个细节都抠到自己满意为止。
这大概就是自己做东西最好的地方。
文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!














