Skip to content

yak33/sub2api_monitor

Repository files navigation

Sub2API Monitor

面向 Sub2API 的移动端监控与管理面板。
把余额、用量、模型分布、API Key、用户、分组、账号和订阅管理装进口袋。

Sub2API Monitor app icon

Release License Flutter Dart

界面预览

以下截图已对用户、邮箱、服务器地址等敏感信息做脱敏处理。

管理员仪表盘核心统计
核心统计
Token 趋势与分布概览
趋势与分布
用户管理列表
用户管理
账号管理操作菜单
账号管理
账号连通性测试
连接测试
应用设置页
主题与服务器

为什么做它

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

  1. 先部署或准备一个可访问的 Sub2API 服务。
  2. 打开 App,进入「我的」-「设置」。
  3. 填写 Sub2API 服务器地址,例如 https://api.example.com
  4. 返回登录页,使用 Sub2API 用户邮箱和密码登录。
  5. 登录成功后,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。功能模块按业务能力垂直切分,模块内部再分为 domaindatapresentation 三层。

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

更多细节见 架构设计开发指南

API 覆盖范围

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 平台工程与签名发布流程

相关项目与文档

License

MIT

About

基于 Flutter 的 sub2api AI 网关监控管理 App,支持仪表盘、用量、密钥、用户与订阅管理

Resources

License

Stars

7 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors

Languages