最近我用 AI 辅助开发了一款小工具,名字很直接,就叫「家庭记账本」。它不是复杂财务系统,而是一个能跑在本地和 NAS 上的轻量 Web 应用:多成员记账、分类统计、明细筛选、Excel 导入导出,数据也能留在自己设备里。
我的需求其实很朴素:家里的日常收入、支出、分类、成员、支付方式,能有一个自己可控的地方统一记录;需要备份的时候,可以直接导出 Excel。
所以这个项目最后做成了一个轻量 Web 应用:后端用 Flask,数据库用 SQLite,前端是原生 HTML、CSS、JavaScript,再加 ECharts 做统计图。部署上支持 Docker 和 Docker Compose,我也把它放到了飞牛 NAS 上跑。

登录页很简单,输入成员名就能进入,不需要复杂账号体系。
我为什么要自己做一个
家庭记账这件事,如果只看单个人,其实用手机备忘录、Excel、现成 App 都能解决。
但我遇到的问题是:家庭账目通常不是一个人的账目。水电、日用品、外出吃饭、孩子教育、车辆、医疗,很多支出并不只属于某一个人;同时,家里也可能有多个人记录。
现成 App 功能很强,但我不一定想把所有家庭流水都放到第三方服务里。Excel 又自由,但手机上录入、筛选、统计都不够顺手。这个家庭记账本 V0.1.0 就是为了折中:界面足够简单,数据足够可控,部署方式也足够轻。
首页先看结果
进入应用后,首页就是统计看板。这里可以按月、按年或者按自定义时间段查看账目,并且可以选择全部成员或者某个成员。

首页看板可以快速看到当月收入、支出、结余,以及成员统计和支出分类。
对我来说,记账工具最重要的不是录入本身,而是录完之后能不能看懂钱花到哪里去了。看板里,支出分类会按金额排序,餐饮、教育、日用品、娱乐、油费这些项目一眼就能看出来。

趋势图用 ECharts 展示收入、支出和结余变化,适合看某个月的波动。
趋势图不会只给一个总数,而是把每天或者每月的变化拉出来。某一天为什么支出突然高了,某个周期为什么结余变了,回头查明细会更快。
记账页面尽量少打字
新增记账分成支出和收入两个模式。支出这边内置了常见分类,比如餐饮、日用品、交通、医疗、教育、娱乐、油费、车辆、转账、其他支出等。

支出记录页面,分类用标签形式展示,录入时不需要层层打开菜单。
收入页面也单独做了一套分类,包括工资、奖金、投资收益、兼职、红包、转账收入和其他收入。

收入记录页面会把「支付方式」和「消费地点」切换成更贴合收入场景的字段。
这里有一个细节:收入和支出用的是同一个记录结构,但前端文案会跟着类型切换。支出时显示「支付方式」「消费地点」,收入时显示「收入方式」「收入地点」。这类小地方不复杂,但真正使用时会少一点别扭。
明细页负责查账
记账工具用久了以后,一定会有查账需求。这个项目的明细页支持按成员、类型、收支方式、开始日期、结束日期、地点关键词、备注关键词筛选。每条记录也可以直接编辑或者删除。

明细页支持多条件筛选,适合回查某段时间、某个成员或某类消费。
我自己更看重地点和备注的模糊搜索。因为很多账目过一段时间之后,单看分类已经想不起来了,但如果备注里写过关键词,后面就能快速找回来。
Excel 导入导出是刚需
自托管工具还有一个绕不开的问题:数据怎么备份?这个项目里做了 Excel 导出,可以按日期、成员和类型导出明细。也支持下载导入模板,再批量导入账单数据。

管理页提供 Excel 导出和导入,迁移、备份、批量整理数据会方便很多。
我对这种家庭类工具的基本要求是:不能把数据锁死在应用里。SQLite 本身已经很轻,数据库文件在 data/family_ledger.db。如果跑 Docker Compose,数据会持久化到 ledger-data 数据卷里。

清空数据前有风险提示,适合测试数据整理或重新开始记账前使用。
后续版本我也计划继续把数据导入这块做得更顺手。比如下一版会考虑增加微信账单导入和支付宝账单导入功能,这样就不用每一笔都手动录入,可以把已有账单先导出来,再统一导入到家庭记账本里做分类、统计和长期沉淀。
分类、成员、收支方式都可以维护
家庭记账每个人的分类习惯都不一样。有人会把「吃饭」和「零食」分开,有人会把「车辆」拆成油费、停车、保养,也有人只想保留几个大类。所以我没有把分类写死,而是在管理页里提供了分类管理。

分类管理同时支持收入和支出分类,标签上会区分类型。
除了分类,成员和收支方式也可以维护。默认收支方式包括微信、支付宝、现金、银行卡、信用卡、其他。如果你家里有一些特殊账户,比如家庭备用金、某张专门用于生活支出的卡,也可以自己加进去。

成员管理和收支方式管理,适合家庭多人共用。
部署到飞牛 NAS
这个项目本身就是按 Docker 部署来准备的。项目里已经包含 Dockerfile 和 docker-compose.yml,默认容器端口是 16688,数据目录挂载到 /app/data。
技术栈很轻:
后端:Python 3.11、Flask 3.0.0 数据库:SQLite3 Excel 处理:openpyxl 前端:HTML、CSS、原生 JavaScript、ECharts 部署:Gunicorn、Docker、Docker Compose
如果是在飞牛 NAS 上使用,可以把它当作一个普通 Docker 应用来部署:镜像跑起来之后,访问 http://NAS地址:16688 就可以进入。
部署在飞牛 NAS 之后,只要手机和电脑在同一个局域网里,都可以直接通过浏览器访问。电脑上适合做批量录入、导出和管理;手机上则适合随手记一笔,吃饭、买东西、加油之后打开页面就能补上。
我更建议把它放在家庭内网环境里使用。如果要开放到公网,至少需要自己额外加反向代理、登录认证、HTTPS 和访问控制。因为当前这个工具更偏家庭内网小应用,登录方式是输入成员名进入,并不是面向公网的账号密码系统。
AI 开发适合这种小工具
这个项目让我感受比较明显的一点是:AI 很适合帮我把这种「需求明确、边界清楚、功能闭环」的小工具快速搭起来。
家庭记账本 V0.1.0 没有复杂算法,也不需要庞大的微服务架构。它真正要做好的,是录入足够顺手、统计能看出重点、明细能查能改、分类可以调整、数据能导入导出、Docker 部署后迁移和备份尽量简单。
这些需求很适合用 AI 辅助开发:我负责定义使用场景和判断细节,AI 负责生成基础代码、补齐页面、处理接口和样式,再由我反复运行、截图、修正。
适合谁用
我觉得这个工具比较适合几类人:家里有 NAS 或者小主机,习惯把工具部署在自己设备上的人;不想把家庭账目放到第三方平台,希望数据留在本地的人;觉得 Excel 记账太松散,但又不想用很重财务软件的人;以及正在尝试用 AI 做自用工具、希望找一个完整小项目练手的人。
它不适合追求复杂预算体系、发票管理、银行流水自动同步的人。这个项目的定位就是轻量、可控、够用。
最后
家庭记账本 V0.1.0 这个项目不大,但它很典型:一个真实生活里的小痛点,用 AI 辅助开发,最后通过 Docker 跑在自己的 NAS 上。
对我来说,这类工具的价值不在于它有多酷,而在于它能不能进入日常流程。能每天打开、能快速记录、能随时导出、能稳定跑在内网。如果飞牛设置了FN Connect,也可以通过远程进入网页版或手机端访问。
如果大家也有同样的家庭记账需求,或者也想把这种轻量工具部署到自己的飞牛 NAS 上,可以点赞关注,后续会将项目开源。,方便你们直接部署体验。
如果你还有其他想法,也可以在评论区留言。比如你平时觉得哪个流程很麻烦,想要一个什么样的小工具,或者希望 NAS 上多一个什么应用,都可以说出来。说不定下一次上线的软件,就是根据你的点子做出来的。
夜雨聆风