IHateMoney 7.2.1 介绍与选型指南
IHateMoney 7.2.1 共享记账软件的认知篇:定位、架构、功能、官方上手路径与同类选型量化对比,全部信息实查官方渠道(查询日期 2026-10-23)。
IHateMoney 7.2.1 介绍与选型指南
目标:面向「多人共享记账(Shared Budget)」需求的选型者,系统介绍开源共享账本软件 IHateMoney 的定位、架构、功能、快速上手路径与同类产品对比,帮助读者判断它是否适合你的场景。本文为认知篇,全部信息来源限定官方渠道(官网、GitHub 仓库、官方文档站、官方 CHANGELOG),检索与核对日期为 2026-10-23,本文不做本地安装实测。
一、环境信息
- 检索方式:纯联网溯源(官方渠道),未做本地安装与运行验证
- 检索与核对日期:2026-10-23
- 官方渠道清单:
- 官网:https://ihatemoney.org/
- 源码仓库:https://github.com/spiral-project/ihatemoney
- 官方文档站:https://ihatemoney.readthedocs.io/(Installation / Configuration / The REST API / Upgrading / Security)
- 版本发布记录:https://github.com/spiral-project/ihatemoney/releases 与仓库内
CHANGELOG.md - PyPI 包名:
ihatemoney;Docker Hub 镜像:ihatemoney/ihatemoney
- 当前最新稳定版:7.2.1(发布于 2026-08-07,官方标注为安全修复版 "SECURITY RELEASE: UPDATE ASAP please",修复会话冲突名称的可能性;其前一版 7.2.0 发布于 2026-08-02,新增了「支出筛选」功能)。版本信息实查自 GitHub Releases Atom 源与仓库 CHANGELOG,查询日期 2026-10-23。
- 许可证:类 BSD 三条款许可证(仓库 LICENSE 文件显示 "Other",实为 BSD-3-Clause 风格文本并附带一条「如当面遇到作者请请他们喝杯啤酒」的友好条款),版权信息为 "Copyright (c) 2011 by Alexis Métaireau and contributors"。
- 社区活跃度(实查于 2026-10-23):GitHub 星数约 1.4k(shields.io 实时徽章回显
1.4k);项目自 2011 年持续维护至今,2026 年内已发布 7.0.0 / 7.0.1 / 7.1.0 / 7.1.1 / 7.2.0 / 7.2.1 共 6 个版本,版本节奏稳定。
二、软件概述
2.1 它是什么
IHateMoney(官网标题 "I hate money")是一款面向多人共享支出场景的免费开源 Web 记账软件。官网一句话定位:"Manage your shared expenses, easily"(轻松管理你的共享支出)。它解决的核心问题是:几个人合租、结伴旅行、合伙消费时,谁垫付了钱、该谁还谁多少,这笔「糊涂账」如何记清并自动算出最简清算方案。
项目由 Alexis Métaireau 于 2011 年发起,归属 spiral-project 组织,服务端使用 Python 语言与 Flask 框架开发,是一款典型的轻量级自托管 Web 应用。官方演示站点 https://ihatemoney.org/ 本身就是一个长期运行的公共实例,任何人都可以在首页直接创建试用项目。
2.2 项目关键身份
| 维度 | 信息(实查于 2026-10-23) |
|---|---|
| 软件类型 | 多人共享账本 Web 服务(有独立服务进程,非库/工具) |
| 开发语言 | Python(官方文档标明支持 Python 3.8 至 3.12) |
| Web 框架 | Flask + Gunicorn(WSGI) |
| 数据库 | SQLite / PostgreSQL / MariaDB(≥10.3.2)三选一 |
| 许可证 | 类 BSD 三条款(含致谢啤酒条款),商用友好 |
| 最新稳定版 | 7.2.1(2026-08-07) |
| 官方安装途径 | pip 手动安装 / Docker / YunoHost / 云平台(alwaysdata) |
| 界面语言 | 30 种界面语言(含简体中文),本地化程度高 |
| API | 内置 REST API(JSON),与网页功能对等 |
💡 技术拓展:「多人共享记账」这类产品在记账软件光谱中处于特定位置,与个人复式记账、信封预算是三类不同的账本模型,选型前先对齐概念——
模型 代表产品 核心逻辑 适合场景 共享分账(Shared Ledger) IHateMoney、Splitwise(闭源 SaaS) 记录「谁为谁垫付了多少」,自动算成员间最简清算 合租、旅行、聚餐摊账 复式记账(Double-entry) Firefly III、GnuCash、LedgerSMB 每笔交易有借贷两方,账户体系完整 个人/家庭全面财务管理 信封预算(Envelope) Actual Budget、YNAB(闭源 SaaS) 先把收入分配到各「信封」类别再消费 月度预算控制 IHateMoney 属第一类:它不追求完整财务体系,专注把「多人垫付—分摊—清算」这一件事做简单。本文选型对比即围绕该定位展开。
三、核心架构
IHateMoney 是一个单体 Flask 应用,架构非常朴素,这也是它部署门槛低、资源占用小的直接原因。以下拆解基于官方文档与仓库代码结构(查询日期 2026-10-23):
- Web 层:Flask 应用(入口
ihatemoney.wsgi:application),生产环境由 Gunicorn 托管运行;官方提供ihatemoney generate-config gunicorn.conf.py生成 Gunicorn 配置,Nginx/Apache 反向代理配置模板亦可通过generate-config子命令生成(nginx.conf、apache-vhost.conf)。 - 数据层:SQLAlchemy ORM,通过
SQLALCHEMY_DATABASE_URI一个参数在 SQLite/PostgreSQL/MariaDB 之间切换;数据库结构变更使用 Alembic 迁移(CLI 命令ihatemoney db upgrade head)。 - 认证模型:没有独立用户体系,以「项目」为认证单元——每个项目由「项目 ID + 私有码(private code)」登录,成员仅是项目内的名字列表。Web 端用会话 Cookie 保持登录,API 端支持 HTTP Basic 认证或 Bearer Token(
/api/projects/<id>/token签发,基于 itsdangerous 签名令牌)。 - 邮件层:基于 Flask-Mail 发送邀请与找回私有码邮件,默认走本机 SMTP(localhost:25),可用
MAIL_*系列参数改接外部邮箱服务。 - 前端:Jinja2 服务端模板渲染 + Bootstrap 风格界面,无重型前端框架,移动端浏览器可用。
- 可选管理面:开启
ACTIVATE_ADMIN_DASHBOARD后提供管理员仪表盘(用ADMIN_PASSWORD哈希口令登录),可查看全实例项目概况。
💡 技术拓展:项目级认证(project-level auth)是 IHateMoney 的一个鲜明架构取舍。常见 Web 应用用「用户账号 + 权限」模型,而共享账本场景中「项目」才是天然隔离单元——
方案 代表 优点 缺点 项目级认证(本项目采用) IHateMoney 零注册成本,拉个群就能开账本,私有码即用即走 无个人身份体系,审计粒度粗 用户账号 + 项目成员关系 Firefly III、Actual Budget 个体数据隔离好,支持细粒度权限 需要注册/邀请流程 IHateMoney 因「成员只是名字」而极致易用,但也因此更适合熟人小圈子而非对审计有要求的组织。
四、功能特性
以下特性清单整理自官网、官方文档与 CHANGELOG(查询日期 2026-10-23):
- 多成员记账:项目内任意添加成员,每笔账单指定「付款人(payer)」与「受益人(owers)」,支持一笔账摊给多人;成员可设权重(weight,用于按人头比例不对等的分摊,如大人/小孩)。
- 自动清算:实时计算每个成员的余额(balance),网页端给出「谁应转账给谁、转多少」的最简清算建议;
/statistics接口与统计页提供按人统计的 paid/spent/balance。 - 多币种:项目可设默认货币(ISO 4217 码,默认
XXX表示不指定),每笔账单可用不同原币种记录并折算为项目默认货币参与结算。 - 支出筛选:7.2.0 新增(#1374),可按条件过滤账单列表。
- 账单类型:7.x 引入账单类型概念(7.1.0 修复了导入无 bill_type 旧文件的兼容问题),区分常规支出与复杂分摊形态。
- 邀请与找回:支持邮件邀请成员加入、忘记私有码时发邮件找回;Web 端可用 API Token 生成
/demo/join/<token>形式的加入链接。 - 数据导入导出:支持 JSON/CSV 格式导入导出,便于迁移与其他工具互通。
- 多语言:30 种界面语言,含简体中文,切换即时生效。
- 管理仪表盘(可选):
ACTIVATE_ADMIN_DASHBOARD=True+ADMIN_PASSWORD哈希后,可进入管理员视图。 - 防滥用:可选验证码(
ENABLE_CAPTCHA)过滤建项目机器人;7.1.0 起对项目认证端点做了限速(rate-limit)。 - 法律信息页:
LEGAL_LINK可挂自定义 GDPR/数据处理说明链接。
五、快速开始(最小可用示例)
💡 说明:本节为官方渠道给出的标准上手路径(来源:官方文档站 Installation/The REST API 页,查询日期 2026-10-23),认知篇不宣称本地实测;按本专栏部署篇逐步实测的完整命令与真实回显,见《Ubuntu 22.04 安装 IHateMoney 7.2.1 指南》《IHateMoney 7.2.1 Docker Compose 部署指南》与《IHateMoney 7.2.1 API/CLI 使用详解》。
路径 A:体验(零安装)。打开 https://ihatemoney.org/ ,在 "Create a new project" 表单填项目名、私有码、邮箱并回答一个反机器人问题(Euro 还是 Petro dollar,答案是 Euro),点击 Create 即创建一个可用账本。
路径 B:自托管最快路径(官方 Docker 镜像,单行启动):
docker run -d -p 8000:8000 ihatemoney/ihatemoney:latest
按官方文档说明,执行后浏览器访问 http://localhost:8000 即可使用;数据库默认落 SQLite,可用 -v /host/path/to/database:/database 持久化,所有配置参数均可通过 -e 环境变量传入(如 SECRET_KEY、SQLALCHEMY_DATABASE_URI、MAIL_SERVER 等)。
路径 C:pip 手动安装(官方推荐的通用路径),官方文档核心步骤摘录(Python 3.8–3.12,建议虚拟环境):
python3 -m venv ~/ihatemoney
cd ~/ihatemoney && source bin/activate
pip install ihatemoney
ihatemoney generate-config ihatemoney.cfg > ihatemoney.cfg
export IHATEMONEY_SETTINGS_FILE_PATH=$PWD/ihatemoney.cfg
ihatemoney db upgrade head
ihatemoney runserver # 开发服务器,监听 http://localhost:5000
生产部署则在虚拟环境中 pip install gunicorn,创建 /etc/ihatemoney/ihatemoney.cfg 配置与 /var/lib/ihatemoney 数据目录,用 ihatemoney generate-config 生成 systemd 单元与 Gunicorn/Nginx 配置模板后托管运行。
路径 D:API 最小示例(官方文档示例,自托管实例上把域名换成本机地址即可):
# 创建项目(无需认证)
curl -X POST http://localhost:8000/api/projects \
-d 'name=yay&id=yay&password=yay&contact_email=yay@notmyidea.org'
# API 返回项目标识:"yay"
# 之后所有操作用「项目ID:私有码」做 Basic 认证
curl --basic -u yay:yay http://localhost:8000/api/projects/yay
六、适用场景与限制
6.1 适用场景
- 合租分摊:房租、水电、网费、日用品轮流垫付,IHateMoney 自动算清算。
- 结伴旅行:机票、住宿、门票多人垫付,回程一键结算。
- 小型社团/班组聚餐摊账:临时性、轻量、无需注册账号。
- 家庭内部代付:夫妻/亲子间记账但不需要完整复式账本。
- 作为 Splitwise 的自托管替代:在意数据主权、不想用闭源 SaaS 的用户。
6.2 限制与不适用
- 不是个人财务系统:无复式记账、无预算信封、无资产账户体系,个人全面理财应选 Firefly III/Actual 类产品。
- 无个人身份体系:成员仅是名字,无法做细粒度权限与操作审计;私有码泄露即全项目可见(令牌同样等价于项目内读写权)。
- 不支持集群横向扩展:单体 Flask 应用,官方未提供多实例部署与分布式方案;规模上限取决于单机,官方定位即中小规模共享记账。
- 邮件依赖外部 SMTP:邀请与找回邮件默认 localhost:25,实际使用需配置外部邮箱服务参数。
- 打包生态弱:官方文档自述「缺乏打包知识使其无法进入主流发行版仓库」(Debian 打包仍在推进中),主流安装途径是 pip 与 Docker。
七、同类选型对比
对比基准说明:IHateMoney 侧数据全部实查官方渠道(2026-10-23);同类产品仅做定位级对比(其精确版本/星数请以各自官方渠道为准,本文不转载以免失真),避免跨源数字混比。
7.1 横向对比表
| 维度 | IHateMoney | Firefly III | Actual Budget | ezbookkeeping | Wallos |
|---|---|---|---|---|---|
| 定位 | 多人共享分账 | 个人/家庭复式财务 | 信封预算(本地优先) | 轻量个人记账 | 订阅费用追踪 |
| 账本模型 | 垫付-分摊-清算 | 双-entry 账户体系 | 信封分配 | 单式流水 | 订阅周期账单 |
| 多人协作 | ✅ 核心能力 | ⚠️ 有但非核心 | ⚠️ 有但非核心 | ❌ 偏个人 | ❌ 单人 |
| 技术栈 | Python/Flask | PHP (Laravel) | Node.js(含同步服务端) | Go | PHP |
| 数据库 | SQLite/PG/MariaDB | PG/MySQL/SQLite | SQLite(内置) | SQLite/MySQL/PG | MySQL/PG/SQLite |
| REST API | ✅ JSON 全功能 | ✅ | ⚠️ 有(API 为主供客户端) | ✅ | ⚠️ 有限 |
| 部署复杂度 | 低(pip/单镜像) | 中 | 中 | 低(单二进制/镜像) | 低 |
| 界面中文 | ✅(30 语言) | ✅ | ⚠️ 社区翻译 | ✅ | ✅ |
| 许可证 | 类 BSD 三条款 | AGPL-3.0 | MIT | MIT | MIT |
解读:选型关键在「账本模型 + 是否多人」。要「几个人摊账、自动算谁转谁多少钱」,IHateMoney 是同类中部署最轻、上手最快的自托管选择;要完整个人财务体系选 Firefly III;要月度预算纪律选 Actual;只要个人流水且追求极低资源占用选 ezbookkeeping;专管订阅续费选 Wallos。
7.2 IHateMoney 自身量化画像
| 量化维度 | 数据(实查于 2026-10-23) |
|---|---|
| GitHub 星数 | 约 1.4k(shields.io 徽章实查) |
| 2026 年版本节奏 | 7.0.0(01-30)→ 7.0.1(03-04)→ 7.1.0 / 7.1.1(05-09)→ 7.2.0(08-02)→ 7.2.1(08-07),全年 6 发,平均 6–8 周一个功能/修复迭代 |
| 维护响应 | 7.2.1 为安全修复热更版(7.2.0 发布 5 天后紧急跟进),安全响应积极 |
| 兼容矩阵 | Python 3.8–3.12;SQLite / PostgreSQL / MariaDB ≥10.3.2;Docker 镜像 ihatemoney/ihatemoney |
| 国际化 | 30 种界面语言 |
| 项目年龄 | 2011 年发起,15 年持续维护 |
解读:这是一个「小而稳」的经典项目——星数中等、社区不大,但维护年限长、发版规律、安全修复及时,属于低风险长尾自托管组件。
7.3 「如果……则……」选型建议
- 如果你是合租/旅行/小组摊账,且能自己跑一台服务器 → 首选 IHateMoney,五分钟可用。
- 如果你想要 Splitwise 的体验但数据在自己手里 → IHateMoney 是最接近的自托管等价物。
- 如果你的核心诉求是个人资产负债与报表 → 不选它,看 Firefly III。
- 如果你需要多实例高可用、企业级审计 → 不选它,共享分账场景建议评估商业 SaaS 或更重的财务系统。
- 如果你只想极简个人流水(不需要多人)→ ezbookkeeping 或 Firefly III 更合适。
八、参考链接
- 官网(含在线试用):https://ihatemoney.org/
- GitHub 仓库:https://github.com/spiral-project/ihatemoney
- Releases 页:https://github.com/spiral-project/ihatemoney/releases
- 官方安装文档:https://ihatemoney.readthedocs.io/en/latest/installation.html
- 官方配置文档:https://ihatemoney.readthedocs.io/en/latest/configuration.html
- 官方 REST API 文档:https://ihatemoney.readthedocs.io/en/latest/api.html
- 官方升级文档:https://ihatemoney.readthedocs.io/en/latest/upgrading.html
- PyPI 包页:https://pypi.org/project/ihatemoney/
- Docker Hub 镜像页:https://hub.docker.com/r/ihatemoney/ihatemoney
本专栏后续实测篇目:《Ubuntu 22.04 安装 IHateMoney 7.2.1 指南》《IHateMoney 7.2.1 Docker Compose 部署指南》《IHateMoney 7.2.1 配置参数详解》《IHateMoney 7.2.1 API/CLI 使用详解》。