🔥43°
记账工具 Firefly III
记账工具 Firefly III

记账工具 Firefly III

前言

多亏 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 ⭐,社区挺活跃的,有兴趣的朋友可以试试。

至于我老婆不喜欢用,她认为“复杂”、“不习惯”。那会还花时间设置好常用的收支类目、标签、分类等,尽量达到让她只需输入几个字点一点便完成记账之程度,哎哟自作多情了。

4条评论

    1. 现在基本用Fireflyiii的手机客户端来记账,积累一些日常交易后,只需要复制交易改一下金额或描述就可以了,录起来还是方便快速的。
      它的第三方客安卓客户端支持ocr识别录入,不过好久没更新了,挺可惜的,现在在用的不支持截图录入。

    1. 是呀好久没更新了哈哈。
      这段时间用下来,对我来说还是挺实用的,功能方面不算自定义,但对于记账工具来说很全面。
      用了一段时间后积累了一些日常交易表单,之后只需要复制表单改一下金额就可以了,记一笔收支还算方便快速的。

发表回复

您的邮箱地址不会被公开;必填项已用 * 标注;
已启用 Cloudflare Turnstile 验证,如遇无法载入或验证失败,请尝试全局或关闭代理。