前言
多亏 Firefly III 让我养成了记账的习惯,快半年的时间里几乎每天能用上,收支一笔记一笔。在此之前我是一个完全不记账的人,反观老婆对记账是非常积极的,起初这个工具也是为了她方便记账而部署。
工作性质使得她有为家庭收支记账的习惯,且一直使用 Excel,对于公式函数之类的 Excel功能玩的算是很溜,以至于不屑于用那些记账 App。然而使用 Fireflyiii 一段时间下来,坚持在用的是我,而老婆最终回归 Excel,她习惯就好。
选择
那会老婆问我有没有好用的工具来平替 Excel 记账,并提了几点要求,首先是排除手机应用商店中的记账 App,再是功能要符合她的记账习惯,三是可以让她随时随地记账,重要的是能在电脑上使用。让我找的话当然是开源为首,根据她的习惯往复式记账类方向找,于是便在搜索引擎找,在饭桶中心找,还挺多的,把问题抛给 ChatGPT 得到如下表格(以各自官方文档为准):
| 项目 | 移动端 | 桌面端 | 自托管 | 中文支持 |
|---|---|---|---|---|
| Actual | PWA | Web / PWA | ✔ | ❌ |
| Firefly III | Android/iOS | Web | ✔ | ✔ |
| ezBookkeeping | PWA | Web / PWA | ✔ | ✔ |
| GnuCash | Android | Windows / macOS / Linux | ✖ | ✔ |
| Money Manager Ex | Android/iOS | Windows / macOS / Linux | ✖ | ✔ |
根据此推荐琢磨了一翻,最终选择了 FireflyIII。
实用
FireflyIII —— 开源、自托管,支持多种部署方式,采用复式记账法,报告功能丰富,预算、类别标签和自动化等,并且提供 REST API,可以说是该有的都有。官方有 Demo 站 (语言可在偏好设置中改成中文),方便新人了解 FireflyIII 全方面功能。
我很喜欢它的几点功能:
预算 :设置好预算后,以进度条的方式展示我的支出及上限,虽然每个月都是超出把进度条撑红~;
订阅 :把周期性账单放在这里,比如我的 Apple iCloud+ Music 订阅,及月付的服务器续费、话费等,可以设置交易日期,让我知道这个周期是否付过,下个周期是什么时候该缴钱。
定期交易 :顾名思义就是时间一到便自动创建交易记录,我会把一些到期自动从账户中扣固定金额的订阅放在这里,它可以完成 订阅 中的项目,让该项订阅变成已付状态。有个问题就是我的 Apple 订阅是美金账单,虽然 Fireflyiii 有汇率功能,但定期交易无法自动完成汇率转换。
管理后台有丰富的收支 图表,且要是不知道钱都花到哪里去了,试试创建 对账 或生成 报表,一目了然。






以上截图为官方演示站
部署
Fireflyiii 支持 Docker、K8s 及 MySQL+PHP 的方式部署,更多信息可参考官方文档,我则以 Docker Compose 的方式把它部署在 NAS 中,利用 Cloudflare Tunnel 来实现远程使用。
官方提供标准的 Docker Compose 文件,内容包含了数据库,以及用来实现定期交易和自动更新汇率的 Cron,且推荐用 .env 来配置变量。而我的部署场景是已有正在使用的数据库 MariaDB,Cron 用 青龙面板 来实现,且习惯直接在 Compose 文件中添加变量,方便自己。
根据官方文档去部署完全没问题,要了解有哪些变量及作用可以查阅 Docker 部署文档中的 .env 示例。以下只列出推荐添加的几个变量及开启个别功能:
#...其它省略...
environment:
#... 推荐添加
- DEFAULT_LANGUAGE=zh_CN # 默认界面语言
- SITE_OWNER=admin@example.com # 管理员Email
- APP_KEY=APP_KEY=base64:xxx # 生成加密密钥,用于加密敏感数据和会话
- APP_ENV=production # 表明生产环境
- TRUSTED_PROXIES=** # 让反代正常工作
- TZ=Asia/Shanghai # 时区
#... 以下看个人需求,我开启了邮件提醒、Webhooks及汇率
- MAIL_FROM=user@example.com # 发送人Email,用于通知
- MAIL_MAILER=smtp
- MAIL_HOST=smtp.example.com
- MAIL_PORT=587
- MAIL_ENCRYPTION=tls
- MAIL_USERNAME=user
- MAIL_PASSWORD=xxx
- ALLOW_WEBHOOKS=true # 开启Webhook功能
- ENABLE_EXCHANGE_RATES=true # 开启汇率功能
- ENABLE_EXTERNAL_RATES=true # 开启更新汇率
#...其它省略...
以上几点功能必须在变量中开启,其它所支持的通知方式有 ntfy、Slack、Pushover,这三种通知方式可在后台设置,看个人喜好。
Fireflyiii 支持多用户,部署后第一个注册的用户将自动成为管理员,而后会禁止注册。若要多用户可在后台启用注册,或以分享邀请链接的形式新增用户。
客户端
FireflyIII 官方并没有 Web 之外的应用,但它提供 REST API 支持,所以有丰富的第三方应用,官方给了个应用列表自己挑。桌面端自然使用 Web,移动端能让人随时随地快速地记上一笔,我认为好用且使用最多的是 iOS客户端 Abacus;其次是针对移动设备优化 PWA 的 Firefly-Pico(需自行部署,支持 Docker,阅安装文档);安卓客户端推荐 Waterfly III,老婆用 Fireflyiii 时在手机上安装过,一样非常不错。






新建交易看起来要填很多东西,但 Abacus 和 Pico 都能快速克隆已有交易表单,使得一些日常账单新增起来方便快速;另外 Pico 在新建交易时可实时汇率转换,对于一些有外币账单的人来说非常实用。
尾声
FireflyIII 是个很棒的开源个人财务管理工具,自托管 + 数据自主,非常适合想要长期掌控自己财务状况的人,在 GitHub 上已有约21.7k ⭐,社区挺活跃的,有兴趣的朋友可以试试。
至于我老婆不喜欢用,她认为“复杂”、“不习惯”。那会还花时间设置好常用的收支类目、标签、分类等,尽量达到让她只需输入几个字点一点便完成记账之程度,哎哟自作多情了。

前几天也刷到这个 感觉还是有点复杂……
这个自托管加数据本地非常不错哦。
主要现在基本都是手机支付,就怕录入比较麻烦。
有些利用截图录入的,又担心数据不安全。
现在基本用Fireflyiii的手机客户端来记账,积累一些日常交易后,只需要复制交易改一下金额或描述就可以了,录起来还是方便快速的。
它的第三方客安卓客户端支持ocr识别录入,不过好久没更新了,挺可惜的,现在在用的不支持截图录入。
终于更新了。
这个工具看着很实用,功能是不是等于半自定义,界面也好看。不过每笔收支都记,我是没有耐心,即使用了,过不了几天就会放弃。
是呀好久没更新了哈哈。
这段时间用下来,对我来说还是挺实用的,功能方面不算自定义,但对于记账工具来说很全面。
用了一段时间后积累了一些日常交易表单,之后只需要复制表单改一下金额就可以了,记一笔收支还算方便快速的。