夜雨聆风学习资料网

ARTICLE · 1113996

记账 App 我全卸了:NAS 自建一个 AI 账本,发张截图就入账

记账 App 我全卸了:NAS 自建一个 AI 账本,发张截图就入账

🏠 自托管 · Docker 实战 · 家庭记账

开源免费,数据全在自己家里,Docker 两条命令装好。

一、为什么自己搭一个

坚持记账的人少,真不是因为懒,是流程太长:解锁手机 → 打开 App → 等开屏 → 选分类 → 输金额 → 选账户 → 保存。买杯奶茶的耐心,熬不过这套流程。

商业记账 App 我也试过不少,总有几个绕不开的坎:

▪ 广告和会员比功能还多,导出个账单 CSV 都要开会员;

▪ 想跟家里人共用账本?对不起,那是高级功能,加人还得再掏钱;

▪ 最膈应的是,你每一笔消费、每一张账单截图,都躺在别人的服务器上。

正好家里有台飞牛 NAS 在吃灰,干脆自己写了一个。全家用了大半年,越用越顺手,索性整理开源——就是今天的家账簿 HomeLedger。

二、家账簿是个什么东西

一句话:跑在你自己 NAS 或服务器上的家庭记账系统。

▲ 总览页:本月收支、净资产、收支持续趋势、最近记账,一眼看清

先交代技术底子,关心数据安全的朋友看这里:

▪ Node.js 22 + Express,纯后端服务端渲染,没有前端构建那套东西;

▪ 数据库用的是 Node 22 内置的 SQLite,零原生依赖,不用编译任何组件;

▪ 所有数据就是一个 data/ 目录——备份 = 拷贝这个目录,删容器不丢账。

首页就是全家最关心的几件事:这个月花了多少、还剩多少、净资产走势如何,右下角还有订阅扣费的到期提示。

三、几个我每天都在用的功能

1. AI 记账:发张截图就完事

这是整个系统的灵魂。

超市小票、外卖订单、打车行程——随手截个图丢进去,视觉大模型把金额、商户、日期、分类全部识别出来,生成一条草稿。扫一眼没问题,点确认,账就入好了。全程五秒,不用碰键盘。

▲ 右下角的 AI 助手:发一句「奶茶 22 元」,直接识别入库

懒得截图也行,直接说人话:「晚饭 88 打车 26.5」,自动拆成两笔。

更懒的玩法是扔到聊天软件里:家账簿内置了一套开放 API,配合小龙虾(OpenClaw)这类聊天机器人,在对话窗口发张支付截图、说一句「记一下」,机器人调完接口会把结果汇报给你。

两个兜底设计,我挺满意:

▪ 账单原图自动存档:AI 记的每一笔账,原始截图自动关联到记录上,账单明细里有个 📎 角标,点开就能回看凭证——月底对账再也不用翻聊天记录找截图;

▪ 规则引擎兜底:完全不配置 AI 也能用,内置关键词规则 + 正则解析,纯离线、零成本。

2. 订阅扣费:每月固定被扣多少钱,一眼看清

现在的订阅服务实在太多:视频会员、云盘、AI 工具、iCloud……单看哪个都不贵,加起来吓一跳。

家账簿的订阅扣费模块专管这个:所有自动续费集中一处,月付年付统一摊平成月均,首页直接告诉你——每月固定支出 314 块、全年 3778 块。我第一次看到这个数字的时候,沉默了很久。

▲ 订阅扣费页:生效中 / 试用期 / 已取消分组管理,右侧是添加表单

细节做得挺足:

▪ 到期自动记账,账单明细能按「订阅」一键筛选;

▪ 到期前自动提醒,试用期结束前也会喊你一声;

▪ Netflix、iCloud+、ChatGPT Plus 这些常用服务内置快选,点一下图标,周期金额全带出来;

▪ 支持暂停、跳过本期、标记已取消,历史扣费记录始终保留。

▲ 首页右侧的订阅卡片:下期扣费日和倒计时直接摆在眼前

3. 记账内核:该有的都有了

▪ 14 种交易类型:支出、收入、转账、借贷、投资买卖、报销、退款、利息……转账、借贷、投资不计入收支统计,不会出现「转账给自己,月支出翻倍」的鬼故事;

▪ 10 种账户:现金、储蓄卡、信用卡(支持额度和账单日)、电子钱包、固定资产、负债等;

▪ 209 个内置分类,两级树形,随便增删改;

▪ 多币种、AA 分账、标签、商家、附件凭证,一个不缺。

4. 一家人记一本账

家人通过邀请码加入,角色分所有者 / 管理员 / 成员 / 只读四档,报表能按成员拆分——月底一看,这个家谁在「疯狂输出」一目了然。账本随便开:个人账本、家庭账本、旅行账本互不干扰。

5. 数据进出不设卡

▪ 导入:支付宝、微信支付账单 CSV,自动识别编码、映射分类和账户、按「日期 + 金额 + 商家」去重,交易关闭的自动跳过;

▪ 导出:CSV(带 BOM,Excel 直接打开不乱码)和 JSON 全量导出;

▪ 备份:一键下载数据库文件,也支持上传还原。

报表全部是服务端 SVG 渲染:收支趋势、净资产曲线、分类构成、日历热力图,断网也能打开。支持 PWA,手机「添加到主屏幕」就跟 App 一个用法,深浅色主题自动跟随系统。

四、装它:Docker / Compose 两条命令的事

方式 A:Docker Compose(推荐)

新建一个空目录,把下面整块内容保存为 docker-compose.yml:

services:  homeledger:    image: ghcr.io/sucraft-hub/homeledger:latest    container_name: homeledger    restart: unless-stopped    environment:      TZ: Asia/Shanghai      SESSION_SECRET: "请改成随机长字符串"      ADMIN_USER: "admin"      ADMIN_PASSWORD: "请改成你的强密码"    ports:      - "5111:5111"    volumes:      - ./data:/data

然后在同目录执行:

docker compose up -d 

完事。浏览器打开 http://NAS的IP:5111 就能记账了。

几个配置项说明:

配置项
说明
image
官方预构建镜像,GitHub Actions 自动发布,无需本地构建
SESSION_SECRET
改成随机长字符串,否则重启后登录态失效
ADMIN_USER / ADMIN_PASSWORD
首次启动自动创建的管理员账号
ports
左边是对外端口,冲突可改;右边保持 5111
volumes
账本数据、截图附件全部落在宿主机 ./data,删容器不丢账

方式 B:纯 Docker(不想用 Compose)

docker run -d \  --name homeledger \  --restart unless-stopped \  -p 5111:5111 \  -e TZ=Asia/Shanghai \  -e SESSION_SECRET="请改成长随机串" \  -v "$PWD/data:/data" \  ghcr.io/sucraft-hub/homeledger:latest

首次登录

程序会自动创建管理员,默认账号 admin,密码 admin888(仅当库里还没有用户时生效)。

登录后第一件事:去「设置 → 账号安全」改密码。

飞牛 fnOS 用户:免 Docker

.fpk 原生应用包,不用装 Docker,应用中心手动安装,桌面直接出图标,数据跟着应用走、覆盖升级不丢:

📦 GitHub Releases

github.com/sucraft-hub/homeledger

☁️ 夸克网盘(备用通道)

https://pan.quark.cn/s/ae55bdf65521?pwd=8pVj

提取码:8pVj

小提醒:升级时直接覆盖安装即可,不要先卸载——只有卸载时勾选「清除本地数据」才会删库。

五、想开 AI 记账?两分钟搞定

设置里就填三样:OpenAI 兼容的接口地址、API Key、模型名。智谱 GLM、通义千问、DeepSeek、本地 Ollama 都能接。

截图记账要选视觉模型(glm-4v-flash、qwen-vl-plus 这类),设置页有「获取可用模型」按钮,一键拉取接口下的模型清单,能读图的标 ✅,选中保存就行。

两个安心点:

▪ 不配置任何 AI 也完全能用,规则引擎兜底,文本记账和 CSV 导入照常工作;

▪ 介意隐私的话,把接口指向局域网里的 Ollama,数据不出内网。

写在最后

项目完全开源,部署问题欢迎提 Issue:

GitHub

github.com/sucraft-hub/homeledger

FPK 下载:Releases 或上方夸克网盘(提取码 8pVj)

觉得有用的话,点个 Star 就是最好的鼓励。

数据放在自己家里,账才记得安心。

—— 完 ——本文包含 AI 辅助内容

相关学习资料