乐于分享
好东西不私藏

自己动手,做了一个完全私有的记账 App:拍照记账、比价、月报,数据永不外泄

自己动手,做了一个完全私有的记账 App:拍照记账、比价、月报,数据永不外泄

市面上的记账 App,不是广告多、会员墙高,就是数据存在别人服务器上不放心。我用业余时间自己写了一个:数据 100% 私有、能跑在 NAS 上、小票一拍就记账、还能比价。开源了,拿走不谢。


你有没有这种感觉:手机里装过三四个记账 App,最后全都荒废了。

不是因为懒。是它们总差点意思——

满屏的开屏广告和会员墙;数据存在别人家的服务器上,总有点不放心;想比一比「同一款抽纸,淘宝和京东到底谁更便宜」,它做不到;更别提把淘宝、京东的订单一键导进来了。

要么太重,要么不私有。于是我用一个周末,自己写了一个。

它是什么

一个完完全全属于你自己的消费记账工具。

  • 后端是 FastAPI + 单文件 SQLite,整个数据库就是磁盘上一个 spending.db 文件;
  • 前端是手机优先的网页,加到主屏就是一个 App;
  • 能跑在你电脑、NAS、甚至云盘同步目录里,数据 100% 私有,不上传任何第三方

没有广告,没有会员,没有「数据用于改进服务」的小字。

核心功能

① 记一笔:手机端,拍照即记账

打开「记一笔」,点一下拍照,把小票拍下来——本地 OCR 自动识别店铺、日期、商品、单价,你在原地核对、改一改,一键入账。不用切页面,拍完就直接生成记录。

识别是模糊的,所以设计成「先识别、再编辑、后入账」,保存前你说了算,金额绝不会乱填。

② 每月消费统计

每个月自动汇总:总额、笔数、笔均,还能按分类、平台、店铺拆分,配每日趋势图。月底一眼看清钱到底花哪了。

③ 比价:同款跨店对比

搜一个产品名,比如「抽纸」,所有记录里不同店铺、不同平台的单价会聚到一起,最低 / 平均 / 最高一目了然。买东西前先比一比,长期能省下不少。

④ 电商分享记账(淘宝 / 京东 / 拼多多)

买完东西,在电商 App 里「分享 → 复制」,回到本工具,自动解析出平台、店铺、商品、到手价,确认即入账。

说明一下:淘宝、京东没有面向个人的订单推送接口,所以走的是「复制分享文本 → 自动解析」这条半自动路径,全程数据在本地,最符合私有化诉求。

⑤ 小票原图留底

拍的小票原图会存进账本,明细里直接显示缩略图,点开就能对账,再也不怕记错或对不上。

私有化 & 技术亮点

  • 数据私有
    :备份只需复制一个 spending.db 文件;想多端同步,把路径指到 OneDrive / 群晖 Drive / Syncthing 同步目录即可。
  • 随处可跑
    :电脑一行 python app.py;NAS 用 Docker 一行 docker compose up -d;群晖、威联通、极空间都有专属部署章节。
  • 外网也能记
    :Tailscale / Cloudflare Tunnel 零公网 IP 方案,在外面也能随手记一笔。
  • 识别可升级
    :默认本地 Tesseract(隐私优先);想更准,可一键切 PaddleOCR 高精度识别。

怎么部署

电脑端(30 秒)

NAS(以威联通为例)

另外还附了一键部署脚本,改个 NAS 地址,就能自动传文件、构建、起服务。拍照 OCR 所需的 Tesseract 中文包,镜像里已经内置好了。

开源获取

项目已开源,代码、文档、部署脚本全在 Gitee:

👉 https://gitee.com/kenowong/spending-tracker

(仓库默认私有,可自行改为公开。)

写在最后

工具不在多,在于顺手,在于属于自己

这个记账工具没有广告、没有会员、没有数据上传,功能刚好够用,还能跟着你的 NAS 跑一辈子。

如果你也想拥有一个「数据只属于自己」的记账本,拿走不谢。欢迎 star,也欢迎提 issue 一起把它做得更好。