SmileQWQ 34b59ebe4b feat: refine statistics, subscriptions, and deployment docs
- add monthly subscription spend TOP10 to statistics overview and UI

- improve subscriptions pagination with per-page persistence and note-row handling

- make login validation messages friendlier on both client and server

- clarify API-only upgrade flow for static web assets

- move web unit tests into apps/web/tests/unit
2026-04-19 21:52:20 +08:00
2026-04-19 20:03:57 +08:00
2026-04-11 14:45:08 +08:00

SubTracker

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

功能亮点

  • 订阅管理:新增、编辑、续订、暂停、停用、记录查看、自定义排序
  • 标签系统:多标签归类、筛选、预算分析
  • 预算能力:总月预算、总年预算、标签月预算、独立的预算统计页
  • 统计分析:未来 12 个月支付趋势、标签支出占比、状态分布、自动续订占比、未来 30 天续订分布
  • 多币种支持:基准货币换算、汇率快照、货币转换器
  • 通知能力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

部署

如果你只是想快速部署,不需要自己编译源码,直接用安装脚本即可:

curl -fsSL https://raw.githubusercontent.com/Smile-QWQ/SubTracker/main/scripts/install.sh | bash

脚本会按你选择的模式自动下载 Release 产物并生成部署目录:

  • api:只部署后端 API前端静态文件由你自己的 Nginx 托管
  • full:前端 + 后端一起部署,直接使用前端镜像

如果你只是想尽快跑起来,更推荐 full 模式,因为它更简单方便,不需要额外准备静态文件目录。

API 容器首次启动时会自动初始化 SQLite 数据库表结构,不需要再手工跑 Prisma 初始化命令。

升级

如果你已经部署过,日常升级通常不需要重新运行安装脚本,直接拉取新镜像并重启即可:

docker compose -f docker-compose.full.yml pull
docker compose -f docker-compose.full.yml up -d

如果你是 API-only 模式,把 docker-compose.full.yml 换成 docker-compose.yml 即可。
另外,API-only 升级时还需要重新下载并覆盖 subtracker-web-dist.zip 解压后的前端静态文件目录;只有 Full 模式的前端才会随镜像一起升级。
只有在这些场景下,才建议重新运行安装脚本:

  • 首次部署
  • 想重建部署目录
  • 想切换部署模式(api / full
  • 部署模板或 .env 模板有明显变化

详细部署说明见:

当前提供两种方式:

  1. 主要推荐:使用 docker-compose.full.yml 直接拉起前端镜像 + API简单方便
  2. 可选方式:外部 Nginx 托管前端静态文件Docker 仅部署 API

Release 产物

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

  • subtracker-web-dist.zip:前端静态文件
  • ghcr.io/smile-qwq/subtracker-apiAPI Docker 镜像
  • ghcr.io/smile-qwq/subtracker-webFull 模式前端 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%