Kresus 0.26.0 介绍与选型指南
Kresus 0.26.0 全景认知:开源自托管个人财务管理器的定位、Node.js+Woob 抓取架构、功能特性、中文语境下的银行同步局限,及与 Firefly III/IHateMoney/Ghostfolio/ezbookkeeping 的量化选型对比,信息来源与查询日期全标注。
Kresus 0.26.0 介绍与选型指南
目标:全面认识 Kresus 这款开源自托管个人财务管理软件,掌握其定位、技术架构、功能特性与适用边界,并能在与 Firefly III、IHateMoney、Ghostfolio、ezbookkeeping 等同类个人记账工具之间做出量化选型。本文为认知溯源篇,全部信息来自官方与公开渠道实查,来源与查询日期(2026-10-23)均在文中标注,未做本地实测。
一、环境信息
本文为认知与选型篇,内容以公开资料溯源为主,关键取证信息与查询日期如下:
- 软件名称:Kresus(开源自托管个人财务管理器,官方自我描述为「an open-source libre self-hosted personal finance manager」,官方 README 实查)
- 开发与维护方:Kresus 团队(GitHub/Git 上游组织
kresusapp,代码主仓git.kresus.org/kresus/kresus,GitHub 镜像github.com/kresusapp/kresus;项目起源于 cozy-pfm 的分支,官方 README 实查) - 官网:
https://kresus.org(文档站开源,安装文档源码位于git.kresus.org/kresus/kresus.org) - 最新稳定版本:0.26.0(GitHub Releases 实查,发布于 2026-09-25;与 Docker Hub 官方仓库
bnjbvr/kresus的0.26.0标签相互印证,该标签构建于 2026-10-22,Docker Hub API 实查。2026-10-09 存在一个名为pre-release的非正式标签,不计入稳定版) - 版本节奏(GitHub Releases 与 Docker Hub 标签时间线双源实查,查询日期 2026-10-23):0.23.6(2026-04-27)→ 0.24.0(2026-06-25)→ 0.25.0(2026-07-14)→ 0.25.1(2026-07-20)→ 0.25.2(2026-07-23)→ 0.25.3(2026-08-02)→ 0.25.4(2026-08-03)→ 0.26.0(2026-09-25)。2026 年 4—9 月共发布 8 个版本,平均每月 1—2 个小版本,处于活跃迭代期
- 开源许可证:GNU Affero General Public License v3.0(AGPL-3.0,官方仓库 LICENSE 文件实查,查询日期 2026-10-23)
- 主语言与技术栈:Node.js(服务端,官方构建定义文件基于
node:24构建并经 npm 分发)+ Python(银行同步引擎 Woob 的运行时);数据库支持 PostgreSQL 与 SQLite(官方配置模板实查,推荐 PostgreSQL,SQLite 仅供开发) - 社区活跃度(shields.io 徽章接口实查,查询日期 2026-10-23):GitHub Stars 344
💡 说明:本文引用的 Stars 数为 2026-10-23 实时快照,会随时间变化;选型时建议重新实查
https://img.shields.io/github/stars/kresusapp/kresus徽章或仓库主页。Kresus 星数在同类中偏低,与它长期以法语用户为主要受众(YunoHost 生态)直接相关,不代表功能停滞——版本时间线显示其 2026 年保持月度级迭代。
二、软件概述
Kresus 是一款面向个人与家庭的自托管记账工具:它把你名下多个银行账户的历史流水、余额与消费去向聚合到一个本地 Web 界面里,通过分类(Category)、标签(Tag)、预算(Budget)与图表报表回答「这个月钱花哪儿了、哪些支出可以砍」。所有数据存储在你自己的服务器与数据库中,不上传任何第三方云服务。
项目的两个显著特征:
- 银行同步走 Woob 抓取框架:Kresus 本身不实现任何银行协议,而是调用 Python 生态的 Woob(Web Outside of Browsers,前身为 Weboob)读取银行网站数据。Woob 是一套法国社区维护的「网站模块化抓取」框架,内置数百个银行/运营商站点模块,Kresus 在每次启动时会尝试升级 Woob 及其模块(官方入口脚本 entrypoint.sh 实查)。这一机制决定了 Kresus 的自动同步能力与 Woob 模块生态完全绑定。
- 从 cozy-pfm 分支而来:官方 README 明确说明 Kresus 起源于 cozy-pfm(Cozy 云的个人财务模块)分支,此后重写了整个架构,脱离 Cozy 平台成为独立应用。
Kresus 采用 AGPL-3.0 许可证开源(官方仓库 LICENSE 实查),由社区志愿维护,无商业公司背书,也没有托管商业版;其「官方一键安装」路径是 YunoHost 自托管平台(官方安装页将其列为安装方式之一,应用包 YunoHost-Apps/kresus_ynh 维护等级为 level 7)。
2.1 一句话理解 Kresus 的位置
个人记账工具赛道可以按「钱从哪来」分三类:纯手动/导入记账(ezbookkeeping、IHateMoney)、银行自动同步记账(Kresus、Firefly III)、投资组合跟踪(Ghostfolio)。Kresus 属于第二类,且是其中唯一把「抓取框架」作为一等公民长期内嵌维护的——它更像「Woob 的一个精致前端 + 数据分析层」,而不是一个通用记账数据库。
需要特别区分:本文讨论的是**个人财务(Personal Finance)**工具;如果你要找的是企业级订阅计费、发票催收平台,那属于另一个赛道,可参见同平台的 《Kill Bill 0.24.22 介绍与选型指南》。
三、核心架构
Kresus 的架构可以概括为「一个 Node.js 服务端 + 一个 Python 银行同步引擎 + 一个数据库」,信息来源为官方安装文档、配置模板与 Dockerfile(git.kresus.org/kresus/kresus 与 git.kresus.org/kresus/kresus.org 实查,查询日期 2026-10-23)。
3.1 总体分层
┌──────────────────────────────────────────────────────┐
│ 浏览器(Kresus 内置 Web 界面) │
└──────────────────────┬───────────────────────────────┘
│ HTTP :9876(默认端口,可经反向代理)
┌──────────────────────▼───────────────────────────────┐
│ Kresus 服务端(Node.js) │
│ ┌──────────┬──────────┬──────────┬────────────────┐ │
│ │ 账户/交易 │ 预算/报表 │ 告警规则 │ 导入导出(加密) │ │
│ └──────────┴──────────┴──────────┴────────────────┘ │
┌──────────────────────┬───────────────────────────────┘
│ 子进程调用(KRESUS_PYTHON_EXEC,默认 python3)
┌──────────────────────▼───────────────────────────────┐
│ Woob(Python 抓取框架) │
│ 核心(woob core) + 银行模块(bank modules) │
└──────────────────────┬───────────────────────────────┘
│ HTTP(模拟浏览器访问银行站点)
┌──────────────────────▼───────────────────────────────┐
│ 银行网站 │
└──────────────────────────────────────────────────────┘
三个组件的职责边界:
- Node.js 服务端:承载 Web 界面与全部业务逻辑(账户、交易、分类、预算、报表、告警),监听默认端口 9876,官方明确建议不要直接暴露 80 端口、而是挂在 Nginx/Caddy/Apache 反向代理之后(官方配置模板注释实查)。值得强调的是,官方文档明确指出 Kresus 没有内置登录认证体系(官方 npm 安装文档「IMPORTANT NOTE」原文:There is no builtin authentication mechanism in Kresus),公网部署必须自行叠加认证层(反向代理 Basic Auth、SSO,或使用配置文件内置的 HTTP Basic Auth 选项)。
- Woob(Python):银行同步的实际执行者。Kresus 通过子进程调用
python3运行 Woob 命令,Woob 按站点模块抓取银行网页数据并回填交易流水。官方要求「最新稳定版 Woob」,因为银行页面改版频繁,旧版模块会失效(官方 npm 安装文档实查)。Woob 的安装目录、模块源列表(sources.list)均可通过 Kresus 配置文件指定。 - 数据库:官方配置模板
[db]节实查支持postgres与sqlite两种类型;官方注释明确推荐 PostgreSQL 并「强烈不推荐 SQLite 用于正式数据」(SQLite 无法妥善处理部分数据库迁移场景,仅面向开发用途)。
3.2 部署形态
官方安装页(kresus.org/en/install.html,实查 2026-10-23)列出五种安装方式:
| 安装方式 | 说明 | 官方来源 |
|---|---|---|
| npm 全局安装 | npm install --omit=dev -g kresus,需自装 Node.js LTS 与 Woob | 官方 install-npm 文档 |
| Docker | 官方 Docker Hub 仓库 bnjbvr/kresus 开箱即含全部依赖(含 Woob),支持 docker-compose 编排 | 官方 install-docker 文档 |
| YunoHost | YunoHost-Apps/kresus_ynh 应用包,维护等级 level 7 | 官方 install 页 |
| ArchLinux pacman | 社区维护包 extra/x86_64/kresus,pacman -Syu kresus,可能滞后于最新版 | 官方 install 页 |
| 源码构建 | 从 git 仓库自行构建 | 官方 install-sources 文档 |
其中官方 Docker Hub 仓库 bnjbvr/kresus(以原作者 Benjamin Bouvier 的用户名命名)维护着 30 个版本标签,latest 与 0.26.0 均构建于 2026-10-22(Docker Hub API 实查),与 GitHub Releases 保持同步发布;其制品内置完整 Woob 及其 Python 依赖链(官方构建定义文件实查:基于 node:24,安装 python3 及 XML/图像等系统库,并经 pip 安装 Woob)。
💡 技术拓展:银行数据自动同步在自托管圈有三条主流实现路线——
路线 代表实现 原理 适用场景 网页抓取框架 Woob(Kresus 采用) 模拟浏览器登录银行网站解析页面 无开放 API 的银行(多为欧洲/法系) 开放银行 API GoCardless Bank Account Data、Salt Edge 等 经 OAuth 接入银行官方 API 支持开放银行标准的欧美银行 手动/文件导入 CSV/OFX/QIF 导入向导 用户从银行网厅导出对账单导入 银行不支持前两类时的兜底 Kresus 实际采用 Woob 抓取路线并辅以 CSV 类导入;Firefly III 主打开放银行 API 与文件导入。路线选择直接决定了「你的银行能不能自动同步」,选型前务必先确认银行支持情况。
四、功能特性
以下功能清单整理自官方站点、README 与配置模板(查询日期 2026-10-23),并在配置层面可核对的项均标注了来源:
- 多银行账户聚合:通过 Woob 添加多个银行访问(Access),每个访问下可挂多个账户,统一展示总余额与逐账户流水;
- 交易管理与去重:交易流水支持手工编辑、按类型(转账/卡片/支票等)标注,重复交易(Recurring transactions)可模板化;
- 分类与标签双体系:Category 做大类归集、Tag 做细粒度打标(官方 README 明确以标签为卖点之一:know exactly on what you are spending money with the use of tags),两者都可驱动报表筛选;
- 预算(Budgets):按月份与分类设定预算并跟踪偏差,可按月度重复;
- 图表报表:收支趋势、分类占比等内置图表视图;
- 邮件告警:交易金额/余额越限等规则触发邮件通知,
[email]配置节支持 sendmail 与 SMTP 两种发送通道(官方配置模板实查); - Apprise 通知:
[notifications]配置节可接 Apprise-API,把通知推送到 Telegram、钉钉等数十种渠道(官方配置模板实查); - 导入导出与加密:支持数据导出/导入,配置项
salt用于导出内容的加解密(官方配置模板注释实查); - 多用户支持:
kresus create-user命令可生成用户 ID,多用户共享同一数据库实例(官方配置模板userid注释实查);单用户场景可留空自动生成; - 演示模式:
force_demo_mode可将实例锁定为演示模式,禁止绑定真实银行账户(官方配置模板实查); - HTTP Basic Auth:
auth配置项可在应用层启用「用户名:密码」形式的 Basic Auth(官方配置模板实查),是对「无内置认证」缺陷的官方内置补丁; - 反向代理与子路径部署:
url_prefix支持以子路径(如example.com/money)对外服务(官方配置模板实查)。
💡 说明:Kresus 的界面语言包含法语与英语等,社区亦有中文翻译贡献,但中文翻译完整度以实际界面为准;其功能重心是「银行流水管理」而非「手动复式记账」,不提供复式记账(Double-entry)会计模型——需要完整复式记账的读者请直接看第六章的 Firefly III 对比。
五、快速开始(最小可用示例)
本章给出官方文档层面的最小启动路径(信息来源:官方 install-npm 与 install-docker 文档,查询日期 2026-10-23;本文为认知溯源篇,未做本地实测,完整部署与逐条实测回显见《Kresus 0.26.0 Docker Compose 部署指南》,发布后可在本专栏检索)。
方式一:npm 全局安装(裸机/虚拟机适用)
# 前置:Node.js LTS 与 npm;银行同步另需 Python3 环境安装 Woob
npm install --omit=dev -g kresus # 全局安装 Kresus(官方 install-npm 文档)
kresus --config /path/to/config.ini # 以指定配置启动服务
注意两点(官方文档原文要求):一是必须为运行 Kresus 的用户安装好 Woob core 与银行模块,且 Woob 需保持最新稳定版;二是 Kresus 无内置认证,直接对外暴露有风险,务必自行配置认证。
方式二:Docker(推荐,内含 Woob 全依赖)
官方 Docker Hub 仓库 bnjbvr/kresus 的制品开箱即含完整 Woob 环境,数据目录为 /home/user/data,配置文件挂载于 /opt/config.ini;生产部署建议通过 Compose 编排并做数据持久化,具体 compose 文件、参数说明与实测验证见《Kresus 0.26.0 Docker Compose 部署指南》。
启动后浏览器访问 http://<服务器IP>:9876 即进入初始化向导;首次使用可在设置中开启演示模式体验全部界面功能(无需真实银行账户)。
六、适用场景与限制
6.1 适合谁用
- 自托管优先的个人/家庭用户:希望银行流水不出本地、不把账单交给第三方 SaaS 的用户;YunoHost 用户可获得接近一键的安装体验;
- 使用欧洲(尤其法国)银行的用户:Woob 的银行模块以法国银行覆盖最好,法系用户可获得完整的自动同步体验;
- 喜欢「流水 + 标签 + 预算」轻分析模型的用户:不需要复式记账专业性,但要求报表直观、告警及时的用户。
6.2 明确的限制(选型前必读)
- 中文银行基本无自动同步能力:Woob 模块库以法国及部分欧美银行为主,中国主要银行(工商银行、招商银行、支付宝、微信支付等)不在其模块覆盖范围内;中文用户导入交易只能走手工录入或文件导入路径。这是 Kresus 在中文语境下的最大局限,选型前必须接受这一点;
- 抓取模式的固有脆弱性:银行页面改版即导致对应 Woob 模块失效,需等模块更新;Woob 抓取亦非银行官方接口,个别银行可能视其为违反服务条款的行为并限制账号(Woob 官方文档有相应风险提示);
- 无内置登录认证:应用层不提供用户登录体系,公网部署必须叠加反向代理认证或启用配置内置 Basic Auth(官方文档明确警告);
- SQLite 仅限开发:官方明确不推荐 SQLite 承载正式数据,生产部署需准备 PostgreSQL;
- 社区体量小:344 Stars(2026-10-23 实查)意味着遇坑时中文资料稀少,主要依赖法语/英语社区与官方文档。
七、同类选型对比
为量化定位 Kresus,选取四个具有代表性的同类工具对比:Firefly III(功能最全的个人财务管理器)、IHateMoney(多人分账/AA 制)、Ghostfolio(投资组合跟踪)、ezbookkeeping(轻量手动记账)。各项目数据均为查询日期 2026-10-23 实查:版本与发布时间取自各官方 GitHub Releases(IHateMoney 取自 PyPI,其稳定版经 PyPI 分发)、星数取自 shields.io 徽章接口。
7.1 量化对比表
| 项目 | 最新稳定版(实查) | 最近发布 | GitHub Stars | 2026 年发版节奏(实查) | 主语言栈 | 银行/数据接入 | 定位 |
|---|---|---|---|---|---|---|---|
| Kresus | 0.26.0 | 2026-09-25 | 344 | 4—9 月 8 版,月度 1—2 版 | Node.js + Python(Woob) | Woob 网页抓取(法系银行为主)+ 文件导入 | 自托管银行流水管理 |
| Firefly III | v6.7.9 | 2026-10(latest 实查) | 25k | 开发版每日构建,稳定版持续小步迭代 | PHP (Laravel) | CSV/OFX 导入 + GoCardless/Spectre 等开放银行 API(经数据导入器) | 全功能个人财务(复式记账) |
| IHateMoney | 7.2.1 | 2026-08-07(PyPI 实查) | 1.4k | 1—8 月 6 版,月度—季度节奏 | Python (Django) | 手动录入/导入,无银行自动抓取 | 多人共享账单分摊(AA 制) |
| Ghostfolio | 3.90.0 | 2026-10-21 | 9.6k | 10 月上旬 5 天内 5 版,高频发布 | TypeScript (Node.js) | 券商数据接入 + 手动录入,股票/ETF 组合估值 | 投资组合与资产净值跟踪 |
| ezbookkeeping | v2.1.1 | 2026-10-23 | 5.8k | 7—10 月约 5 版,月度节奏 | Go | 手动记账 + 文件导入,移动端体验优先 | 轻量级个人手动记账 |
关键差异解读:五个项目几乎不重叠——Firefly III 以复式记账模型与开放银行生态取胜,社区体量断层领先;Ghostfolio 唯一聚焦投资侧;IHateMoney 主打多人分账而非个人流水;ezbookkeeping 以 Go 单二进制的低资源占用与移动端体验见长。Kresus 的差异化只在一点:Woob 抓取框架的深度内嵌(官方镜像开箱即含 Woob 全依赖、每次启动自动升级模块),这使它成为「想让法系银行流水自动进库」的最省事方案,但也使它在 Woob 覆盖之外的市场(包括中文世界)退化为普通手动记账工具。
7.2 选型建议
- 如果你的银行在 Woob 模块覆盖内(可到
woob.tech模块列表核对),且想要「账户聚合 + 预算告警」的开箱体验 → Kresus; - 如果你要完整的复式记账、多币种、规则引擎与最活跃的社区 → Firefly III;
- 如果你的核心需求是几个人合租/旅行的 AA 分账 → IHateMoney;
- 如果你要跟踪股票、ETF 与资产净值曲线 → Ghostfolio;
- 如果你要的是手机上快速记一笔、资源占用极低 → ezbookkeeping;
- 如果你在中文环境且主要消费数据来自支付宝/微信/国内银行 → 以上工具都只能走手动/导入路线,此时按「界面喜好 + 资源占用」选择即可,Kresus 并无自动同步优势,但因其界面图表完善仍可作为候选。
八、参考链接
- 官方网站:
https://kresus.org - 官方安装文档:
https://kresus.org/en/install.html(源码git.kresus.org/kresus/kresus.org) - 代码主仓库:
https://git.kresus.org/kresus/kresus(GitHub 镜像https://github.com/kresusapp/kresus) - 版本发布:
https://github.com/kresusapp/kresus/releases(本文版本数据查询日期 2026-10-23) - Docker 镜像仓库:
https://hub.docker.com/r/bnjbvr/kresus(标签0.26.0构建于 2026-10-22) - Woob 项目:
https://woob.tech/ - YunoHost 应用包:
https://github.com/YunoHost-Apps/kresus_ynh - 同类项目:Firefly III
https://github.com/firefly-iii/firefly-iii;IHateMoneyhttps://github.com/spiral-project/ihatemoney;Ghostfoliohttps://github.com/ghostfolio/ghostfolio;ezbookkeepinghttps://github.com/mayswind/ezbookkeeping