SmileQWQ e19d855944 feat: add dedicated budget analytics workspace
- add /statistics/budgets endpoint with total and tag budget summaries

- introduce dedicated 预算统计 page and hide its sidebar entry when tag budgets are disabled

- move tag monthly budget editing into a dedicated modal on the budget page

- add dashboard tag budget overview cards when tag budgets are enabled

- remove duplicate upcoming renewals table from 费用统计 and keep that info on the dashboard

- invalidate menu and statistics queries after settings changes so budget navigation updates immediately
2026-04-17 11:05:24 +08:00
2026-04-11 14:45:08 +08:00

SubTracker

一个现代化的自托管订阅管理工具用来统一管理多币种订阅、预算、续订提醒、Logo 资源和 Wallos 数据迁移。

功能亮点

  • 订阅管理:新增、编辑、续订、暂停、停用、记录查看、拖拽排序
  • 标签系统:多标签归类、筛选、预算统计
  • 多币种支持:基准货币换算、汇率快照、货币转换器
  • 预算与统计:月/年预算、标签占比、未来 12 个月支付趋势
  • 通知能力Webhook、SMTP 邮件、PushPlus
  • Logo 能力上传、本地复用、网络搜索、Wallos ZIP 导入匹配
  • AI 识别:支持文本/图片识别后自动填充订阅信息
  • Wallos 导入:兼容 JSON、SQLite、ZIP

技术栈

  • 前端Vue 3、Vite、TypeScript、Naive UI、Pinia、TanStack Query、ECharts
  • 后端Fastify、Prisma、SQLite、Zod、node-cron

本地开发

1. 安装依赖

npm install

2. 复制开发环境变量

cp apps/api/.env.example apps/api/.env

如果你在 Windows PowerShell 下,也可以用:

Copy-Item apps/api/.env.example apps/api/.env

3. 初始化数据库

npm run prisma:generate
npm run prisma:push
npm run prisma:seed

4. 启动开发环境

npm run dev

默认地址:

  • Webhttp://127.0.0.1:5173
  • APIhttp://127.0.0.1:3001

默认登录:

  • 用户名:admin
  • 密码:admin

常用命令

npm run dev
npm run build
npm run lint
npm test

部署

详细部署说明见:

当前提供两种方式:

  1. 推荐:外部 Nginx 托管前端静态文件Docker 仅部署 API
  2. 完整部署:使用 docker-compose.full.yml 同时启动前端 Nginx + API

Release 产物

仓库的 Build and Release workflow 会在 tag 发布时自动产出:

  • subtracker-web-dist.zip:前端静态文件
  • ghcr.io/smile-qwq/subtracker-apiAPI Docker 镜像

适合直接用于服务器部署。

Description
一个现代化的自托管订阅管理器,支持标签分类、预算洞察、续费提醒、Wallos 导入、AI 辅助录入和多币种管理。
Readme GPL-3.0 4.8 MiB
Languages
TypeScript 72.1%
Vue 26%
Shell 1.6%
JavaScript 0.1%
Dockerfile 0.1%
Other 0.1%