一个基于 FastAPI 的 ChatGPT Team 账号管理系统,支持管理员批量管理 Team 账号,用户通过兑换码自动加入 Team。
git clone https://github.com/tibbar213/team-manage.git
cd team-manage
cp .env.example .env
docker compose up -d
git pull && docker compose down && docker compose up -d --build
Team 账号管理
兑换码管理
使用记录查询
系统设置
git clone https://github.com/tibbar213/team-manage.git
cd team-manage
# Windows
python -m venv venv
venv\Scripts\activate
# Linux/macOS
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
复制 .env.example 为 .env 并修改配置:
cp .env.example .env
编辑 .env 文件:
# 应用配置 APP_NAME=GPT Team 管理系统 APP_VERSION=0.1.0 APP_HOST=0.0.0.0 APP_PORT=8008 DEBUG=True # 数据库配置(默认使用 SQLite) DATABASE_URL=sqlite+aiosqlite:///team_manage.db # 安全配置(生产环境请修改) SECRET_KEY=your-secret-key-here-change-in-production ADMIN_PASSWORD=admin123 # 日志配置 LOG_LEVEL=INFO # 代理配置(可选) PROXY_ENABLED=False PROXY= # JWT 配置 JWT_VERIFY_SIGNATURE=False
python init_db.py
# 开发模式(自动重载)
python -m uvicorn app.main:app --reload --host 0.0.0.0 --port 8008
# 或者直接运行
python app/main.py
默认管理员账号:
adminadmin123(请在首次登录后修改)项目支持使用 Docker 快速部署,确保环境一致性并简化配置。
确保你的系统已安装:
.env 文件(参考上述"配置环境变量"章节)。# 构建并启动容器
docker compose up -d
Docker 配置中已自动将宿主机的 team_manage.db 文件映射到容器内部,因此你的数据会自动保存在项目根目录下,容器删除后数据依然存在。
# 查看日志
docker compose logs -f
# 停止并移除容器
docker compose down
# 重新构建镜像
docker compose build --no-cache
team-manage/ ├── app/ # 应用主目录 │ ├── main.py # FastAPI 入口文件 │ ├── config.py # 配置管理 │ ├── database.py # 数据库连接 │ ├── models.py # SQLAlchemy 模型 │ ├── routes/ # 路由模块 │ │ ├── admin.py # 管理员路由 │ │ ├── user.py # 用户路由 │ │ ├── api.py # API 端点 │ │ ├── auth.py # 认证路由 │ │ └── redeem.py # 兑换路由 │ ├── services/ # 业务逻辑服务 │ │ ├── auth.py # 认证服务 │ │ ├── chatgpt.py # ChatGPT API 集成 │ │ ├── encryption.py # 加密服务 │ │ ├── redeem_flow.py # 兑换流程服务 │ │ ├── redemption.py # 兑换码管理服务 │ │ ├── settings.py # 系统设置服务 │ │ └── team.py # Team 管理服务 │ ├── utils/ # 工具模块 │ │ ├── jwt_parser.py # JWT Token 解析 │ │ └── token_parser.py # Token 正则匹配 │ ├── dependencies/ # FastAPI 依赖 │ │ └── auth.py # 认证依赖 │ ├── templates/ # Jinja2 模板 │ │ ├── base.html # 基础布局 │ │ ├── auth/ # 认证页面 │ │ ├── admin/ # 管理员页面 │ │ └── user/ # 用户页面 │ └── static/ # 静态文件 │ ├── css/ # 样式文件 │ └── js/ # JavaScript 文件 ├── init_db.py # 数据库初始化脚本 ├── requirements.txt # Python 依赖 ├── Dockerfile # Docker 镜像构建文件 ├── docker-compose.yml # Docker 服务编排文件 ├── .dockerignore # Docker 忽略文件 ├── .env.example # 环境变量示例 ├── CLAUDE.md # Claude Code 指南 ├── 需求.md # 项目需求文档 ├── 任务.md # 任务跟踪文档 ├── 接口.md # API 接口文档 └── README.md # 项目说明文档
默认使用 SQLite 数据库,数据库文件为 team_manage.db。如需使用其他数据库,请修改 DATABASE_URL。
如果需要通过代理访问 ChatGPT API,可以在管理员面板的"系统设置"中配置代理:
http://proxy.example.com:8080socks5://proxy.example.com:1080生产环境部署前,请务必修改以下配置:
SECRET_KEY: 用于 Session 签名,请使用随机字符串ADMIN_PASSWORD: 管理员初始密码,首次登录后请立即修改DEBUG: 生产环境请设置为 False登录管理员面板
导入 Team 账号
生成兑换码
查看使用记录
系统设置
访问兑换页面
输入信息
选择 Team
完成兑换
接受邀请
详细的 API 接口文档请参考 接口.md。
主要接口:
POST /auth/login - 管理员登录POST /auth/logout - 管理员登出POST /redeem/verify - 验证兑换码POST /redeem/confirm - 确认兑换GET /admin - 管理员控制台GET /admin/teams/import - Team 导入页面GET /admin/codes - 兑换码列表GET /admin/records - 使用记录# 删除旧数据库文件
rm team_manage.db
# 重新初始化
python init_db.py
本项目仅供学习和研究使用。
欢迎提交 Issue 和 Pull Request!
注意: 本系统仅用于合法的 ChatGPT Team 账号管理,请遵守 OpenAI 的服务条款。