根据隐私公司Incogni 2026年的研究,最受欢迎的二十款预算应用中,有六成会与第三方共享你的财务数据。它们大多通过Plaid这个聚合器来实现——它位于你的银行和手机应用之间,悄悄存储你的凭证并转售匿名化交易数据。而2025年是美国金融服务泄露事件创纪录的一年,共有739起已确认事件——这一数字在2026年仍在攀升,当时仅一家金融科技贷款机构的披露就一次性暴露了近百万个账户。
如果这让你想把资金数据从别人的服务器上挪走,你有两个严肃的开源选择:Firefly III和Actual Budget。两者都是免费的,都是自托管的,并且都能愉快地运行在每月5美元的VPS或你桌下的树莓派上。但它们并非换皮的同款工具——它们解决的是截然不同的问题,选错意味着每个月都要与软件抗争,而不是使用它。
两种不同的理念,而非同一应用的两个变体
理解区别的最快方式:Actual Budget是一个预算工具。Firefly III是一个记账系统。
Actual 围绕零基、信封式预算构建——这是由YNAB(你需要预算)推广的方法。你赚到的每一分钱在到账时都会被分配一个任务:房租、杂货、你正在攒的年度车险费用。整个界面围绕一个问题组织——我现在这个类别还剩多少钱?——并用一个简洁、专属的UI快速回答这个问题,不碍事。
Firefly III 则采用不同的出发点。它像企业记账那样对待你的财务:每笔交易都有一个来源账户和一个目标账户,每笔分录都被记录两次——一次是钱从一个地方离开,一次是钱到达另一个地方。这就是复式记账,与专业会计系统(以及像Beancount这样的纯文本分类账)使用的相同基础。Firefly III的界面反映了这一点:深层的账户层级、存钱罐、账单、基于规则的自动分类,以及允许你按账户、类别、预算或标签切分多年财务历史的报告。
这两种方法在抽象层面并无"更优"之分。当某个想"告诉我这周能否点外卖"的人安装了Firefly III并发现它过于复杂时,或者当某个想"展示我从2019年以来横跨十二个账户的完整净资产历史"的人安装了Actual并发现它过于简单时,错配就发生了。
Firefly III:你自行托管的完整记账系统
Firefly III 是一个PHP应用,通常通过Docker Compose与一个数据库一起部署——默认是MariaDB,不过通过重命名环境变量并调整compose文件,轻松切换为PostgreSQL。它需要一小套PHP扩展(bcmath、curl、intl、mbstring、openssl、sodium以及其他几个),这些都打包在官方容器镜像中,因此实际上"要求"意味着"Docker和大约15分钟"。
作为设置时间的回报,你得到:
- 真正的复式记账。 每笔交易都是两个账户之间的转账,这使得对账和历史报告远比简单的收支分类账严谨。
- 规则和自动分类。 定义一次规则("如果描述包含'WHOLEFDS',类别=杂货"),Firefly III 就会将其应用于每次未来的导入。
- 深度报告。 多年趋势图表、预算与实际对比、类别细分,以及一个REST API,如果你想将数据拉取到其他工具中。
- 通过GoCardless(前Nordigen)进行银行同步,该服务对大多数欧洲银行覆盖良好,但在美国的覆盖较薄弱——如果你是一位北美用户,希望与支票账户一键同步,这确实是个限制。
学习曲线是实打实的。新用户经常被账户类型模型(资产账户 vs. 费用账户 vs. 收入账户不仅仅是标签——它们决定了复式数学如何运作)以及当多条规则可能匹配同一笔交易时的规则排序所困扰。给自己一个周末,而不是一个午休时间,来熟悉它。
Actual Budget:快速、本地优先、为一个问题而建
Actual作为一个单一的Docker容器发布,完全没有外部数据库依赖——其所有状态都存在于容器数据卷内的一个SQLite文件中。拉取镜像,映射端口,挂载卷,然后它就运行起来了。它自托管起来比Firefly III简单得多,如果你的目标是"今晚就让预算工作起来"而不是"构建一个个人记账平台",这一点很重要。
Actual 在设计上是本地优先的:应用可以离线工作,并在你重新连接时在设备间静默同步,同步层有可选的端到端加密。你得到的是信封式预算方法、一个干净的交易登记簿,以及一个内置的报告生成器,涵盖净资产和现金流——虽然有意不如Firefly III的报告详尽,但足够扎实。
对于银行同步,Actual 在欧洲依赖GoCardless,在北美依赖SimpleFin(一项付费服务,大约每年15美元)——值得注意,因为"免费且开源"并不总是意味着"免费的银行连接"。许多自托管者完全跳过自动同步,转而每周进行CSV导入,这两个工具都支持,不过将历史交易迁移到任一应用中仍然意味着手动重建你的账户名称、类别结构和期初余额——无论选择哪个工具,都预计要花一个下午进行清理。
自托管实际成本是多少
"免费且开源"并不意味着"免费运行"。你仍然需要容器运行的地方。现实选项:
- 你已经拥有的树莓派——实际上免费,且对任一应用的适度资源需求来说性能绰绰有余。
- 一个小型VPS(DigitalOcean、Hetzner、Linode),每月4-6美元——为Firefly III及其数据库或Actual的单一容器提供足够空间。
- 一个家用NAS(Synology、Unraid、TrueNAS),如果你已经有一个用于媒体或备份的——只需添加另一个Docker Compose堆栈。
与YNAB每年约109美元或每月14.99美元的订阅费相比,计算结果很直接:运行任一工具的每月5美元VPS大约在六周内就能抵销YNAB的费用,之后每个月都是纯粹的节省——这甚至还没算上不将你的交易历史交给第三方的价值。
无论哪种方式,银行同步这一项都值得纳入预算。2026年GoCardless要求新注册用户使用付费商业账户(免费个人层级已消失),而Actual的北美SimpleFin连接每年约15美元。如果你愿意跳过这笔费用,Firefly III和Actual都可以很好地处理手动CSV导入——只是你需要每周进行一次五分钟的导入,而不是自动同步。
任一工具的快速入门清单
无论你选择哪个,设置流程看起来都一样:
- 提供主机。 确认你的VPS、树莓派或NAS上已安装Docker和Docker Compose。
- 从项目的GitHub仓库拉取官方compose文件,而不是自己手写——两个项目都维护一个经过测试的
docker-compose.yml,可以省去你排查环境变量拼写错误的麻烦。 - 在输入任何真实财务数据之前设置一个强应用密钥/秘密,并将其备份到容器之外的地方(丢失它可能导致你的加密数据无法恢复)。
- 从一个账户开始。 抵制住一天之内导入所有账户和五年历史的冲动。先添加你的主要支票账户,花一周时间熟悉分类,然后再扩展。
- 安排备份。 Firefly III的数据库和Actual的SQLite文件都是单一文件(或单一数据库转储),你可以通过cron任务将其发送到异地存储——自托管的全部意义在于,由你(而非供应商)负责持久性。
- 现在就决定同步方式,而不是以后。 将银行同步整改到几个月的手动输入交易中,意味着要手动消除重复项——在你产生积压之前选好你的导入策略。
你实际应该安装哪个?
问自己一个问题:你是想控制支出,还是想了解你的整体财务状况?
- 选择Actual Budget,如果你是一名自由职业者或独立开发者,想要一个快速的YNAB风格信封系统来停止在可自由支配类别上的超支——外出就餐、订阅、年度会议差旅预算——且你宁愿每周在应用上花五分钟而不是五十分钟。
- 选择Firefly III,如果你管理多个账户(企业支票账户、个人储蓄账户、几张信用卡,可能还有一个加密钱包),并且你希望一个系统能够以真正的复式严谨性、基于规则的自动化和多年的历史报告(之后可以查询)来对所有这些进行对账。
许多技术用户最终会同时运行两者,或者从Actual开始,待他们的财务需要跟踪更多账户时再升级到Firefly III。这是一条合法路径——只是不要期望能在两者间干净地迁移;将切换视为一个全新的开始,手动输入期初余额,而不是数据导出/导入。
商业理由:为什么自托管你的账簿不仅仅是一个隐私爱好
如果你是一名自由职业者,或者除了个人财务之外还经营一家小企业,自托管的隐私论点会直接延伸到你的簿记中。让你对预算应用转卖你的购物习惯感到不安的同一逻辑,对你企业的收入、客户付款和供应商合同来说更是如此——这些数据你通常有合同或法律义务保护,而不仅仅是偏好保持私密的数据。
在这里区分"预算"和"簿记"也很重要,因为企业主经常需要两者并混淆它们。像Actual这样的预算应用回答的是"我这个月能花多少钱?" 一个簿记系统需要回答你的会计师在报税时会问的更困难的问题:哪些客户付款仍未结清,扣除费用后的真实利润率是多少,某笔交易是否可以抵税。Firefly III的复式模型比Actual更接近第二个任务,但这两个工具都不是专门为小企业会计而构建的——它们是个人理财应用,碰巧能合理地向上扩展。
让你的账簿和你选择的预算应用一样开放和可移植
如果复式记账和数据所有权最初吸引你的是Firefly III,那么值得知道的是,有一整个类别的工具专门为企业会计建立在相同原则之上:纯文本、版本控制的分类账。Beancount.io将这一理念贯彻到底——你的账簿以完全自有的人类可读文本格式存在,具有同样的复式纪律,但专为跟踪企业而非家庭预算而构建。探索文档了解其对比,或免费开始,如果你希望自己企业的财务记录与本指南中自托管工具一样透明和可移植。