在这里插入图片描述

自己用 AI 写记账工具,最后都会卡在同一批问题上:银行流水对账、分类规则冲突、预算跨月结转、信用卡还款与转账去重。这些是有人做了几年才收尾的活。

Sure 就是把这一段做完了的开源版本。它是 Maybe Finance 的社区 fork——原团队 2021 到 2022 年投入接近一百万美元做出完整产品,2023 年中停更并开源,仓库归档,现在由社区按 AGPLv3 维护,今天 1.2 万星、916 fork。本文只讲两件事:怎么把它跑起来,以及跑起来之前该知道的四个坑。

一、它到底是什么

项内容
定位可自托管的全功能个人财务 / 记账应用
技术栈Ruby on Rails + PostgreSQL 16 + Redis,worker 跑后台任务
许可证AGPLv3
部署方式Docker Compose,官方镜像 ghcr.io/we-promise/sure:stable
最低资源官方实测 512MB 内存可跑,稳态约 352MB;启用 AI 建议 1GB 以上
客户端Web 为主,另有 macOS 桌面版(Tauri 2)、Flutter 手机端(登录 + 余额)、MCP 端点、HTTP API
数据接入Plaid、Truelayer、Monobank、Akahu、Enable Banking、FinanceKit 等;加密钱包与链上资产

功能覆盖面按 app/models 里能定位到的模块列:

  • 账户:银行、信用卡、贷款、投资、加密钱包
  • 账目:交易、分类、商户、标签
  • 自动化:规则与规则组、自动分类
  • 规划:预算与预算分类、储蓄目标与 pledge、周期账单
  • 汇总:净值 / 资产负债表、多币种汇率
  • 协作:家庭与账户共享
  • 迁移:Mint、Monarch、Actual 账本导入,带分类与商户映射

适合:已经在记账、想摆脱订阅费、愿意自己维护一台机器的人。
不适合:完全不想碰命令行;或者人在国内还指望银行自动同步(Plaid 只对西方用户开放)。

二、成本差异在哪

订阅制的价格是明确的:YNAB 109 美元/年(14.99 美元/月),Monarch Core 99.99 美元/年(14.99 美元/月),价格取自两家官网,核于 2026-11-07。

自托管省掉这笔钱,换成两样支出:一台常年开机的机器,以及你的维护时间。这笔账对家里已有 NAS 或旧机器的人划算,对只想双击安装的人不划算。

三、部署:取文件,然后一条命令

前提:机器上装好 Docker 与 Docker Compose。

第一步,建目录并取官方 compose 文件:

mkdir -p ~/sure && cd ~/sure
curl --fail --location --silent --show-error \
  --output compose.yml \
  https://raw.githubusercontent.com/we-promise/sure/main/compose.example.yml

第二步,起服务:

docker compose up -d

默认配置即可运行,compose 里包含 web、worker、PostgreSQL 16、Redis 四个服务,镜像指向 ghcr.io/we-promise/sure:stable。

第三步,浏览器访问 http://localhost:3000,注册第一个账号。

要跑在后台并随机器重启,用 docker compose up -d 后配合 Docker 的 restart 策略;官方文档也给了 -d 前台调试与小内存主机的调参说明。

想让外部访问,先别急着开端口

容器内监听 0.0.0.0:3000,Docker 默认只在宿主机 IPv4 上发布。正确做法是前面加一层反向代理做 TLS,而不是把 3000 直接映射到公网。Plaid 这类银行同步还额外要求你的实例有可公网访问的域名与有效 SSL,这是前面"不适合国内同步场景"的由来。

四、四个坑

在这里插入图片描述
坑一:worker 不能省。
同步、自动分类、定时汇率刷新都跑在 worker 里。只起 web 会表现为"页面能开、后台不动",数据不更新但也不报错。

坑二:备份默认没有开。
compose 里的 backup 是可选服务,与 web、worker 同镜像。手动备份一条命令:

docker compose run --rm backup create

备份内容是数据库 dump、上传附件,以及含 SECRET_KEY_BASE 的 config/.env。异地存放时记得自行加密——没有 SECRET_KEY_BASE,库里的加密数据读不回来。

坑三:改配置必须重新拉起容器。
修改 compose 文件或 .env 之后要执行 docker compose up -d。docker compose restart 会保留旧的环境变量,改动不生效,这一点最容易误判成"配置无效"。

坑四:AI 不是必需,但会改变资源规划。
它有两条独立管线:聊天助手(OpenAI 兼容接口或原生 Anthropic,可关)和后台的自动分类与商户识别(同样可关)。官方提供完全不启用 AI 的部署模板;一旦启用,内存下限从 512MB 抬到 1GB。另外 MCP 端点给外部 AI 助手的是该用户家庭数据的读取权限,官方文档明确要求把 MCP token 当生产密钥管理。

五、账本迁移与其他用法

已有账本不必重录。Mint、Monarch、Actual 的导出文件可以直接导入,导入流程里有分类映射和商户映射,导入前有 preflight 预检;账户类型也有独立的映射表。

其它接入方式:

  • MCP:给 Claude Desktop 之类的助手读你的账本数据,服务端配 bearer token + 指定用户邮箱
  • HTTP API:OpenAPI 文档在 docs/api/openapi.yaml,适合写脚本、做看板
  • macOS 桌面版:Tauri 2 外壳,首次启动填服务器地址并做健康检查
  • 手机端:Flutter,目前是登录与余额查看

六、小结

  • 只想用、不想部署:等有托管服务再考虑;当前路径就是自托管
  • 想自己跑:一台 512MB 的机器 + 一条 compose 命令足够起步,先把 backup 打开
  • 想接自动化:走 MCP 或 HTTP API,但要按生产密钥的标准管 token

一句话:它省的是订阅费,要的是你愿意维护一台机器。

项目地址:https://github.com/we-promise/sure

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐