Kresus 0.26.0 介绍与选型指南

Kresus 0.26.0 全景认知:开源自托管个人财务管理器的定位、Node.js+Woob 抓取架构、功能特性、中文语境下的银行同步局限,及与 Firefly III/IHateMoney/Ghostfolio/ezbookkeeping 的量化选型对比,信息来源与查询日期全标注。

KresusKresus财务记账自托管2026/10/24

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 文档
YunoHostYunoHost-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 的银行(多为欧洲/法系)
开放银行 APIGoCardless 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 Stars2026 年发版节奏(实查)主语言栈银行/数据接入定位
Kresus0.26.02026-09-253444—9 月 8 版,月度 1—2 版Node.js + Python(Woob)Woob 网页抓取(法系银行为主)+ 文件导入自托管银行流水管理
Firefly IIIv6.7.92026-10(latest 实查)25k开发版每日构建,稳定版持续小步迭代PHP (Laravel)CSV/OFX 导入 + GoCardless/Spectre 等开放银行 API(经数据导入器)全功能个人财务(复式记账)
IHateMoney7.2.12026-08-07(PyPI 实查)1.4k1—8 月 6 版,月度—季度节奏Python (Django)手动录入/导入,无银行自动抓取多人共享账单分摊(AA 制)
Ghostfolio3.90.02026-10-219.6k10 月上旬 5 天内 5 版,高频发布TypeScript (Node.js)券商数据接入 + 手动录入,股票/ETF 组合估值投资组合与资产净值跟踪
ezbookkeepingv2.1.12026-10-235.8k7—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;IHateMoney https://github.com/spiral-project/ihatemoney;Ghostfolio https://github.com/ghostfolio/ghostfolio;ezbookkeeping https://github.com/mayswind/ezbookkeeping