OpenBudgeteer 1.11.2 介绍与选型指南

OpenBudgeteer(TheAxelander/OpenBudgeteer)1.11.2 桶预算自托管应用认知篇:架构、功能、官方快速上手与 Firefly III/Actual/Budget Board 量化选型对比,全部溯源官方渠道(2026-10-24 查询)。

OpenBudgeteer财务记账自托管.NET2026/10/24

OpenBudgeteer 1.11.2 介绍与选型指南

目标:面向准备自托管个人/家庭预算管理服务的读者,讲清 OpenBudgeteer 的定位、技术架构、功能边界与同类横向选型结论。本文所有版本号、星数、许可证、发布节奏均于 2026-10-24 实查 GitHub Releases、Docker Hub 与 shields.io 徽章取证。

一、环境信息

本文为认知与选型篇,全部信息来自公开官方渠道,未混入任何本地实验数据。信息采集口径如下:

  • 软件仓库:TheAxelander/OpenBudgeteer(GitHub),官方文档站 https://theaxelander.github.io/
  • 版本基线:1.11.2(2026-10-23 发布于 Docker Hub,为当前最新稳定版,不含 pre-release)
  • 数据取证渠道:GitHub Releases 页、官方文档站(quick-start/install/config/api 四页)、Docker Hub 标签接口、shields.io 徽章(星数/许可证/提交活跃度)、Awesome-Selfhosted 项目清单
  • 查询日期:2026-10-24(文中所有量化数据均以此日期为准,后续阅读时请注意时效)

二、软件概述

OpenBudgeteer 是一款基于 Bucket Budgeting Principle(桶预算法) 的自托管预算管理应用,设计灵感来自商业软件 YNAB(You Need A Budget)与开源项目 Buckets。项目由 TheAxelander 维护,采用 GNU AGPL-3.0 许可证开源(v1.10 起由 MIT 切换为 AGPL-3.0,官方 Releases 页注明),已被 Awesome-Selfhosted 清单收录于 Money, Budgeting & Management 分区(条目原文:"Budgeting app based on the Bucket Budgeting Principle. AGPL-3.0 Docker/C#")。

💡 技术拓展:Bucket Budgeting(桶预算)是「信封预算法(Envelope Budgeting)」在软件中的常见实现形态,与国内语境的「记账 App」有本质区别。主要流派对比:

流派代表产品核心思路适用人群
桶/信封预算OpenBudgeteer、YNAB、Buckets、Actual先把收入分配到各个"桶"(用途),花钱从桶里扣,强调"给每一块钱安排工作"希望事前规划、控制支出结构
复式记账Firefly III、Beancount/Fava每笔交易借贷平衡,强调账务严谨与可审计有会计思维、需要资产/负债全貌
简单流水记账IHateMoney、MyFin Budget记流水、分摊、看报表,门槛最低合租分摊、轻量记账

OpenBudgeteer 选择的是第一类:数据模型围绕 Bucket(桶)与 Bucket Movement(桶间资金移动)展开,本文选型结论也基于这一前提。

2.1 项目热度与活跃度(2026-10-24 实查)

指标数值来源
GitHub Stars970shields.io 徽章 img.shields.io/github/stars/TheAxelander/OpenBudgeteer
Docker 拉取量230k+shields.io 徽章 img.shields.io/docker/pulls/axelander/openbudgeteer
年提交活跃度326 commits/年shields.io 徽章 commit-activity/y
最新稳定版1.11.2(2026-10-23)GitHub Releases / Docker Hub tags
官方分发体积约 94.2 MB(linux/amd64 分发包压缩层)Docker Hub 标签接口 full_size

关键解读:OpenBudgeteer 属于中等规模、活跃维护的项目——星数不及 Firefly III(25k)与 Actual(30k),但提交活跃度(326/年)远高于同量级的 Budget Board(22/年),且安全响应速度快:v1.11.1 与 v1.11.2 两个修复版均在 2026-10-23 同日发布(修复 CVE-2026-61635 SQL 注入与 CVE-2026-61636 ReDoS,见官方 Releases 页与 GHSA-ch28-32c3-4h4q、GHSA-vjxw-f3mc-4m3g 公告)。

2.2 版本演进与发布节奏

按 Docker Hub 各版本标签的 last_updated 时间(2026-10-24 实查)整理:

版本发布时间关键变化(来源:GitHub Releases 页)
1.82024-03-16迁移到 .NET 8;监听端口从 80 改为 8080;首个 Web API 独立服务;恢复 ARM64 构建;新增 APPSETTINGS_DEMO_DATA 演示数据
1.8.32024-05-20放弃 SQLite 支持(破坏性变更)
1.92025-01-04API 1.1 版本、新增 /withoutSystemBuckets 端点;清理 SQLite 残留代码
1.102025-04-30UI 迁移到 MudBlazor;强制要求 Redis;许可证 MIT→AGPL-3.0;API 文档 Swagger→Scalar(/api 端点);支持 .env 文件
1.112025-12-17Web 应用认证功能;Transfer 转账交易对话框;Bucket/Bucket Group 新图表
1.11.1 / 1.11.22026-10-23修复 CVE-2026-61636(ReDoS)、CVE-2026-61635(SQL 注入);1.11.2 为新发布流程的过渡版本

关键解读:平均约 1 个大版本/年、补丁跟进及时;但跨大版本存在破坏性变更(端口、SQLite 弃用、Redis 强依赖、许可证切换),升级前必须读 Releases 页的 Breaking Changes。

三、核心架构

OpenBudgeteer 采用 .NET 技术栈与典型的 Blazor Server 单体架构,按官方 README 与文档站 Info 页(第三方依赖清单)整理:

  • 前端:Blazor Server(v1.10 起基于 MudBlazor 组件库)。Blazor Server 意味着 UI 交互经 SignalR 长连接由服务端处理,浏览器端不运行业务逻辑;
  • 核心逻辑:.NET(当前构建目标 net9.0,官方 Install 页"Build and deploy"章节要求 .NET SDK 9)+ MVVM 模式组织;
  • 数据访问:Entity Framework Core,数据库提供方支持 MariaDB/MySQL(Pomelo.EntityFrameworkCore.MySql)与 PostgreSQL(efcore.pg);
  • Redis:v1.10 起为强制依赖,用于存储 UI 设置类数据(如配色主题),支持 Redis ACL(用户名/密码/键前缀变量);
  • API 服务:以独立服务形态提供(axelander/openbudgeteer-api),与 Web 前端共享同一数据库,OpenAPI 3.0 文档经 Scalar 渲染(/api 端点);
  • 导入解析:TinyCsvParser(CSV 银行流水导入)+ Rule Set(规则集)自动归类。

部署形态上,官方唯一推荐的生产部署方式是 Docker / Docker Compose(官方 Quick Start 全文即一份 Compose 文件);文档另提供"Build and deploy"源码编译路径(dotnet publish + nginx 反代),但没有发行版软件包,也没有官方裸机二进制发布件。数据库与 Redis 均为外部服务,应用本身无状态,首次启动自动建表并执行后续自动迁移(官方 Config 页:"the required tables and initial data will be created on first startup. Database schema changes after an update will be also applied automatically")。

四、功能特性

按官方文档站与 Releases 页归纳(均为产品既有能力描述,非实测结论):

  • Bucket(桶)管理:桶分组(Bucket Group)、桶版本化(Bucket Version,支持 Expense every X Months、Save X until Y date 等类型参数)、桶配色与文字色、统计隐藏开关(isHiddenFromSummaries);
  • 交易管理:银行流水导入(CSV 向导式映射 + Import Profile 保存)、Mapping Rule / Rule Set 自动归类 Payee 与桶、Transfer 转账、批量删除、编辑模式(v1.10 起仅 Display/Edit 两态);
  • 预算执行:按月分配预算(Bucket Movement)、负余额结转(v1.11 修复:Distribute Budget clears also now negative Bucket Balances);
  • 报表:Report 页多 Tab 图表(Blazor-ApexCharts,v1.9 迁移),覆盖桶与桶组(v1.11 新增);
  • 数据一致性检查:Data Consistency 页自动发现负数交易进收入桶等异常;
  • 本地化:APPSETTINGS_CULTURE 控制货币/日期/数字格式(BCP 47 语言标签);
  • 认证:v1.11 起内置 Web 应用认证(官方 Releases:"Add Authentication for Web App");
  • 演示数据:APPSETTINGS_DEMO_DATA=true 一键灌入示例数据集;
  • 系统桶:内置 Income 与 Transfer 两个系统桶(固定 GUID 00000000-0000-0000-0000-000000000001/2),构成预算闭环。

明确没有的能力(避免选型误判):没有移动端客户端、没有银行账户自动同步(仅 CSV 导入)、没有多账本/多用户体系(单账本)、没有原生报表导出为 Excel 之类的办公格式(依赖浏览器打印)。

五、快速开始(最小可用示例)

以下为官方 Quick Start 页原文推荐的 Compose 配置(来源:https://theaxelander.github.io/latest/quick-start/,查询日期 2026-10-24),使用 MariaDB + Redis 最小组合:

services:
  openbudgeteer:
    image: axelander/openbudgeteer:latest
    container_name: openbudgeteer
    ports:
      - 8080:8080
    environment:
      - CONNECTION_PROVIDER=mariadb
      - CONNECTION_SERVER=openbudgeteer-mariadb
      - CONNECTION_PORT=3306
      - CONNECTION_DATABASE=openbudgeteer
      - CONNECTION_USER=openbudgeteer
      - CONNECTION_PASSWORD=openbudgeteer
      - CONNECTION_ROOT_PASSWORD=myRootPassword # only required for initial DB creation
      - CONNECTION_REDIS_SERVER=openbudgeteer-redis
      - APPSETTINGS_CULTURE=en-US
      - APPSETTINGS_DEMO_DATA=true # optional if you want to start with some example data
    depends_on:
      - mariadb
      - redis

  mariadb:
    image: mariadb
    container_name: openbudgeteer-mariadb
    environment:
      MYSQL_ROOT_PASSWORD: myRootPassword
    volumes:
      - db-data:/var/lib/mysql

  redis:
    image: redis
    container_name: openbudgeteer-redis
    volumes:
      - redis-data:/data

volumes:
  db-data:
  redis-data:

启动后在浏览器访问 http://<服务器IP>:8080 即可进入 Web 界面。环境变量逐项含义、PostgreSQL 变体、Redis ACL 等细节见《OpenBudgeteer Docker Compose 部署指南》与《OpenBudgeteer 1.11.2 配置参数详解》。

六、适用场景与限制

适合:

  • 已有 YNAB/Buckets 使用经验或认可信封预算法,希望把预算数据放在自己服务器上的个人/家庭用户;
  • 只需要「导入银行 CSV → 规则自动归类 → 按月分配预算 → 看图表」这条主线的轻量用户;
  • 已有 MariaDB/PostgreSQL 实例、希望复用现有数据库基础设施的家庭服务器/NAS 环境;
  • 需要程序化读写预算数据的用户——独立 REST API 服务提供 OpenAPI 3.0 接口(详见《OpenBudgeteer 1.11.2 API 使用详解》)。

不适合 / 限制:

  • 需要银行账户自动拉取流水(无集成,仅文件导入);
  • 需要多人多账本协作(单账本定位,v1.11 认证也只解决访问控制);
  • 不能接受 AGPL-3.0 许可证约束的二次分发场景;
  • SQLite/嵌入式部署(v1.8.3 起明确移除,必须有独立数据库与 Redis)。

七、同类选型对比

7.1 量化对比总表

数据来源:shields.io 徽章(星数、许可证、年提交量、最新版本)与 Awesome-Selfhosted 清单,全部于 2026-10-24 查询;预算方法论归类依据各自官方文档。

维度OpenBudgeteerFirefly IIIActualBudget Board
GitHub Stars97025k30k890
最新版本1.11.2(2026-10-23)v6.7.9v26.10.0v3.8.2
许可证AGPL-3.0AGPL-3.0MITGPL-3.0
年提交量3263k1.5k22
预算方法论桶/信封预算复式记账 + 预算信封/零和预算简单月度预算
技术栈.NET / Blazor ServerPHP / LaravelNode.js / ReactDocker 部署的 Web 应用
数据库MariaDB/MySQL、PostgreSQL(+Redis 强制)MySQL/MariaDB、PostgreSQL、SQLiteSQLite(local-first 文件型)内置
部署形态Docker(官方推荐 Compose)、源码编译Docker、裸机 PHP、Debian/Fedora 软件包Docker、Node 直跑、桌面端Docker
移动端无无(第三方 App 经 API)有(桌面/移动同步)无
银行流水导入CSV + 规则引擎CSV/OFX/QIF + 规则 + 数据导入器(Nordigen 等)QIF/OFX/QFX + 附加服务手动

7.2 版本节奏与兼容矩阵解读

  • 版本节奏:Actual 采用 CalVer(v26.10.0 即 2026 年 10 月版),发布最频繁;Firefly III 3k commits/年、大版本演进到 v6.x,社区体量最大;OpenBudgeteer 约 1 个 minor/年但补丁响应快(两个 CVE 修复同日发布);Budget Board 年提交仅 22 次,活跃度最低。
  • 兼容矩阵关键差异:OpenBudgeteer 与 Firefly III 都要求外部数据库(前者多了强制 Redis),Actual 则是 local-first(SQLite 文件 + 同步服务器),对服务器运维要求最低;若目标环境已有 MariaDB/PostgreSQL 且愿意多跑一个 Redis,OpenBudgeteer 的依赖链并不构成额外负担。
  • 方法论对齐:OpenBudgeteer 与 Actual 同属信封预算流派(可平滑迁移使用习惯),Firefly III 的复式记账更适合需要资产负债全貌的用户;Budget Board 偏轻量但没有规则引擎与 API。

7.3 站内同类组件延伸阅读

7.4 选型建议

  • 要信封预算 + 自托管 + 可编程 API → 选 OpenBudgeteer:独立 REST API 服务 + OpenAPI 3.0 是同体量项目里少见的完整能力;
  • 要复式记账、资产负债全貌、最大社区生态 → 选 Firefly III(25k 星、3k commits/年);
  • 要 local-first、最低运维、桌面/移动同步 → 选 Actual(MIT 许可也更宽松);
  • 只要最简单的月度预算记录 → Budget Board 或直接用表格;
  • 要共享分摊记账 → 站内《IHateMoney 7.2.1 介绍与选型指南》所覆盖的 IHateMoney。

八、参考链接