开源个人订阅追踪工具Zublo
简介
什么是 Zublo ?
Zublo是一个开源的自托管订阅追踪工具,可以帮助用户在一处管理所有周期性支付。它提供了清晰的Web界面、续费提醒、日历和统计视图,以及AI分析功能,让用户对你的订阅支出一目了然。
主要特点
- 单一职责:专注于追踪周期性支付,不会变成完整的财务套件
- 快速部署:简单的
Docker安装即可快速运行 - 数据自主:你的数据保存在自己的基础设施上
- AI 真正有用:内置聊天界面,支持多种
LLM提供商(Google Gemini、OpenAI、Ollama、兼容OpenAI的端点) - 紧凑架构:
React前端 +PocketBase后端,易于理解和扩展 - 多视图展示:仪表盘、订阅列表、日历、统计、AI 聊天多种视图
- 多货币支持:支持多货币并自动同步汇率
- API 访问:通过
scoped API密钥提供REST API访问 - 开源免费:基于
Apache License 2.0协议开源
应用场景
- 自托管用户:单容器、
SQLite持久化,无需重型平台要求 - Homelab 用户:占用空间小,备份简单,易于配置反向代理
- 注重隐私的用户:订阅数据保存在自己的基础设施上
- 独立开发者:紧凑的全栈代码库,易于
fork和扩展 - 团队共享支出的追踪:清晰的循环成本可见性,无需采用完整的财务套件

Zublo 是一个专注于订阅追踪的紧凑型工具,适合想要自托管并保持数据控制的用户。
安装
在群晖上以 Docker 方式安装。
Zublo 镜像托管在 ghcr.io,群晖 Docker 套件无法直接搜索,需要使用命令行安装。
本文写作时,
latest版本对应为0.1.0;

docker cli 安装
如果你熟悉命令行,可能用 docker cli 更快捷
1 | docker run -d \ |
环境变量说明:
PB_ENCRYPTION_KEY是PocketBase的加密密钥,用于加密敏感数据。生产环境必须设置为复杂的随机字符串,不能使用默认值。可以用openssl rand -hex 32命令来生成
docker-compose 安装
也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件
1 | version: '3' |
然后通过 SSH 登录到您的群晖,执行下面的命令:
1 | # 新建文件夹 zublo 和 子目录 |

运行
服务启动后,会有多个访问地址:
http://<群晖IP>:9597- 应用主界面http://<群晖IP>:9597/_/-PocketBase管理后台http://<群晖IP>:9597/api/-REST API
在浏览器中输入 http://群晖IP:9597 就能看到注册界面

- 主要货币却没有人民币,只能进入系统后再设置
- 支持中文,但似乎对界面不起作用
密码不能少于
8个字符

软件的主界面还是英文

需要进设置重新切换一下,估计应该是 Bug

进入设置可以设置货币为 CNY

支付方式老苏只保留了可能能用上的几个

分类可以自己翻译成中文

还可以添加自己的分类,同时删除用不上的

添加订阅
进入 订阅

添加订阅

添加成功

随便加了几个

AI
进入设置,必须先启用 AI

接下来设置提供商,还是以 硅基流动 为例
- 提供商名称:例如:
siliconflow API基址:为https://api.siliconflow.cn/v1API密钥:硅基流动中创建的API秘钥- 如果设置无误,点
获取模型会返回模型的名称

目前硅基流动(SiliconFlow)注册就送 16 元的代金券
注册地址:
https://cloud.siliconflow.cn/i/NkUiXVhQ

和之前的不同,现在的券虽然多了2块钱,但是有有效期,不过可以用于 Pro/ 开始的模型

后续准备试试七牛,据说可以用国外的大模型

注册地址:
https://s.qiniu.com/2ENRR3

但是不知道是 Bug 还是什么缘故,API密钥无法保存,所以无论是仪表板的 AI 推荐

还是 聊天,都会报 401错

API 使用
进设置,新建 API 秘钥

老苏勾选了全部的权限

切记要保存好 API Key

在可用端点中,能看到接口

注意事项
- 数据持久化:必须持久化
/pb/pb_data目录,否则重启后数据会丢失 - 加密密钥:
PB_ENCRYPTION_KEY在生产环境必须修改,建议使用复杂的随机字符串 - 首次注册:第一个注册的用户自动成为管理员
- AI 提供商:如需使用
AI功能,需要自行配置API Key(支持Google Gemini、OpenAI、Ollama、兼容OpenAI的端点,例如:OpenRouter) - 端口占用:如果
9597端口被占用,可以更换为其他端口
参考文档
Zublo: Self-hosted subscription tracking with AI that is actually useful
地址:https://github.com/danielalves96/zubloPackage zublo — Package zublo
地址:ghcr.io/danielalves96/zublo