面向 Sub2API 的移动端监控与管理面板。
把余额、用量、模型分布、API Key、用户、分组、账号和订阅管理装进口袋。
以下截图已对用户、邮箱、服务器地址等敏感信息做脱敏处理。
核心统计 |
趋势与分布 |
用户管理 |
账号管理 |
连接测试 |
主题与服务器 |
Sub2API 已经提供了强大的 AI API 网关能力,但日常运营经常发生在电脑之外:
- 临时查看今日消耗、剩余额度和模型分布。
- 快速确认账号、分组、订阅和用户状态。
- 在外面处理 API Key、兑换码、余额调整、账号异常恢复。
- 给非技术运营角色一个更轻的入口,而不是每次都打开完整后台。
Sub2API Monitor 的目标不是替代 Web 管理台,而是提供一个移动优先、信息密度高、关键操作顺手的随身控制台。
| 项目 | 说明 |
|---|---|
| 版本 | 1.0.0+1 |
| 主要平台 | Android |
| 后端依赖 | Sub2API /api/v1/* |
| 认证方式 | 邮箱密码登录,JWT + Refresh Token 自动续期 |
| 发布产物 | APK 优先,可通过 GitHub Releases 分发 |
| 架构 | Flutter + Riverpod + Dio + GoRouter,Feature-First + Clean Architecture |
当前仓库已包含 Android 工程与 Web 目录。iOS 平台尚未作为首发目标,如需 iOS 发布,可在后续补齐平台工程与签名配置。
| 能力 | 说明 |
|---|---|
| 登录与会话 | 邮箱密码登录,Token 安全存储,401 后静默刷新 |
| 个人仪表盘 | 余额、今日/本周/本月用量、趋势图、Top 模型分布 |
| API Key 管理 | 创建、编辑、删除、脱敏展示、一键复制 |
| 订阅与兑换 | 查看订阅、兑换码兑换、公告入口 |
| 服务配置 | 自定义 Sub2API 服务器地址,登录态与配置本地持久化 |
| 主题体验 | Light / Dark / 跟随系统,移动端竖屏优化 |
| 能力 | 说明 |
|---|---|
| 全站仪表盘 | 全站余额、消费、请求量、用户趋势、用户排行、模型分布 |
| 用户管理 | 用户列表、搜索过滤、创建编辑、余额调整、余额流水、用户用量 |
| 分组管理 | 分组列表、创建编辑、倍率配置、RPM 覆盖配置 |
| AI 账号管理 | 账号列表、平台/状态过滤、创建编辑、连通性测试、清错、恢复、刷新 |
| 订阅管理 | 订阅列表、分配、批量分配、延期、重置配额、撤销与恢复 |
| 权限感知导航 | 普通用户与管理员自动获得不同导航入口 |
- 移动优先的信息层级:底部导航覆盖仪表盘、用户、分组、账号和个人中心。
- 双主题设计系统:浅色
Precision Lab与暗色Obsidian Command,保留清晰的数据对比度。 - 图表友好:趋势、分布、排行使用
fl_chart渲染,适合快速扫读运营状态。 - 操作闭环:账号测试、余额调整、订阅处理等高频动作尽量在移动端内完成。
- 失败可感知:网络请求统一走 Dio + 拦截器,认证失效、加载态、错误态通过 Riverpod 三态渲染收束。
首发版本建议通过 Releases 下载 Android APK:
如果你从源码构建:
git clone git@github.com:yak33/sub2api_monitor.git
cd sub2api_monitor
flutter pub get
flutter run- 先部署或准备一个可访问的 Sub2API 服务。
- 打开 App,进入「我的」-「设置」。
- 填写 Sub2API 服务器地址,例如
https://api.example.com。 - 返回登录页,使用 Sub2API 用户邮箱和密码登录。
- 登录成功后,Token 会自动持久化,后续启动会恢复会话。
# Android APK
flutter build apk --release
# Android App Bundle
flutter build appbundle --release
# Web 构建
flutter build web --release构建完成后,Android APK 通常位于:
build/app/outputs/flutter-apk/app-release.apk
| 类别 | 技术 |
|---|---|
| UI 框架 | Flutter / Dart |
| 状态管理 | Riverpod AsyncNotifier / StateNotifier / Provider |
| 网络请求 | Dio + 认证拦截器 |
| 路由 | GoRouter + ShellRoute |
| 图表 | fl_chart |
| 安全存储 | FlutterSecureStorage |
| 本地配置 | SharedPreferences |
| 设计语言 | Material 3 + 自定义双主题 |
项目采用 Feature-First + Clean Architecture。功能模块按业务能力垂直切分,模块内部再分为 domain、data、presentation 三层。
lib/
├── app/ # 路由、主题、应用级配置
├── features/
│ ├── auth/ # 登录、会话、认证仓库
│ ├── dashboard/ # 用户/管理员仪表盘
│ ├── keys/ # API Key 管理
│ ├── users/ # 管理员用户管理
│ ├── groups/ # 管理员分组管理
│ ├── accounts/ # 管理员 AI 账号管理
│ ├── subscriptions/ # 管理员订阅管理
│ ├── profile/ # 个人中心、兑换码、公告入口
│ └── settings/ # 服务器地址与主题配置
└── shared/ # 通用组件、全局 Provider、错误模型
核心数据流:
UI
-> Riverpod Provider / Notifier
-> Repository interface
-> Repository implementation
-> ApiClient / AuthStorage
-> Sub2API
Sub2API Monitor 面向 Sub2API v1 接口族:
| 接口域 | 路径前缀 |
|---|---|
| 认证 | /api/v1/auth/* |
| 个人仪表盘 | /api/v1/usage/dashboard/* |
| API Key | /api/v1/keys/* |
| 订阅与公告 | /api/v1/subscriptions、/api/v1/announcements、/api/v1/redeem |
| 管理员仪表盘 | /api/v1/admin/dashboard/* |
| 管理员用户 | /api/v1/admin/users/* |
| 管理员分组 | /api/v1/admin/groups/* |
| 管理员账号 | /api/v1/admin/accounts/* |
| 管理员订阅 | /api/v1/admin/subscriptions/* |
所有受保护接口均使用:
Authorization: Bearer <jwt-token>Token 过期后由 AuthInterceptor 使用 refresh token 自动续期。
# 安装依赖
flutter pub get
# 静态检查
flutter analyze
# 运行测试
flutter test
# 更新启动图标
dart run flutter_launcher_icons- 渠道监控独立页面
- 配额不足、账号异常等推送通知
- 多服务器配置与快速切换
- i18n 国际化
- Android / iOS 桌面小组件
- iOS 平台工程与签名发布流程





