一个现代化的自托管订阅管理工具,用来统一管理多币种订阅、续订提醒、预算分析、Logo 资源,以及 Wallos 数据迁移。
当前 main 分支提供 Docker / Docker Compose 部署;如果你需要 Cloudflare Worker 无服务器部署,请前往 lite 分支,对应的部署说明、工作流与 Worker 适配实现都维护在该分支。
| 订阅管理 | 费用统计 |
|---|---|
| AI 识别 | Wallos 导入 |
|---|---|
- 订阅管理:支持新增、编辑、续订、暂停、停用、恢复、搜索、自定义排序,以及批量状态调整 / 删除
- 提醒规则:支持
天数&时间;格式的灵活提醒规则,覆盖到期前、当天与过期提醒,并支持分钟级扫描与幂等去重 - 标签与筛选:支持多标签归类、标签预算,以及多标签叠加筛选
- 预算与统计:提供总月 / 年预算、标签月预算,以及未来 12 个月趋势、标签占比、状态分布、未来 30 天续订分布等统计视图
- AI 能力:支持文本 / 图片识别自动填充订阅信息,并在统计页提供 AI 总结面板、懒生成和 Markdown 渲染
- 备份与迁移:内置 SubTracker 原生 ZIP 备份导出、检查、导入与恢复流程,并兼容 Wallos 的 JSON、SQLite、ZIP 导入
- 多币种支持:支持基准货币换算、汇率快照与货币转换器,并提供一键交换源 / 目标货币
- 通知能力:支持 Webhook、SMTP / Resend 邮件、PushPlus、Telegram Bot、Server 酱、Gotify,并持续优化通知扫描与排查体验
- 界面体验:支持浅色 / 深色 / 跟随系统主题,桌面端固定侧边栏与独立内容滚动,并优化大视口与深色背景显示
- Logo 能力:支持上传、本地复用、网络搜索,以及 Wallos 导入过程中的 Logo 匹配
- 登录与安全:支持“记住我”、可配置登录保留时长、默认密码修改提醒,以及登录失败限流保护
- 前端:Vue 3、Vite、TypeScript、Naive UI、Pinia、TanStack Query、ECharts
- 后端:Fastify、Prisma、SQLite、Zod、node-cron
npm installcp apps/api/.env.example apps/api/.envnpm run prisma:generate
npm run prisma:push
npm run prisma:seednpm run dev默认地址:
- Web:
http://127.0.0.1:5173 - API:
http://127.0.0.1:3001
默认账户:
- 用户名:
admin - 密码:
admin
首次登录后建议立即修改默认密码;登录接口在连续失败过多时会触发限流保护。
npm run dev
npm run build
npm run lint
npm test直接使用安装脚本即可:
curl -fsSL https://raw.githubusercontent.com/Smile-QWQ/SubTracker/main/scripts/install.sh | bash脚本会按你选择的方式自动下载 Release 产物并生成部署目录:
- 完整部署(full):前端 + 后端一起部署,直接使用前端镜像
- 仅后端部署(api):只部署后端 API,前端静态文件由你自己的 Nginx 托管
推荐使用完整部署,步骤更少。
API 容器首次启动时会自动初始化 SQLite 数据库表结构。
日常升级直接拉取新镜像并重启:
docker compose pull
docker compose up -d仅后端部署升级时,还需要重新下载并覆盖 subtracker-web-dist.zip 解压后的前端静态文件目录。
只有在这些场景下,才需要重新运行安装脚本:
- 首次部署
- 想重建部署目录
- 想切换部署方式(
仅后端部署 / 完整部署) - 部署模板或
.env模板有明显变化
详细部署说明见:
当前提供两种方式:
- 推荐:完整部署,脚本准备部署目录后直接
docker compose up -d - 可选:仅后端部署,外部 Nginx 托管前端静态文件,Docker 仅部署 API
发布 Release 时会提供:
subtracker-web-dist.zip:前端静态文件ghcr.io/smile-qwq/subtracker-api:API Docker 镜像ghcr.io/smile-qwq/subtracker-web:完整部署使用的前端 Docker 镜像
以上 Docker 镜像均支持 x86 / ARM 双架构,Docker 会根据宿主机架构自动拉取对应变体。
适合直接用于服务器部署。
本项目采用 GNU General Public License v3.0(GPLv3) 许可证发布。
感谢以下项目和生态为 SubTracker 提供支持: