GitHub Copilot 账号共享网关。将多个 Copilot 账号池化,对外提供兼容 OpenAI / Anthropic 标准的统一 API,带有 Web 管理界面。
- 多账号池化:多个 GitHub Copilot 账号统一管理,自动负载均衡
- 配额感知调度:优先选择剩余配额充足的账号,避免 429
- 会话亲和:同一 API Key 的连续请求尽量命中同一账号
- 第三方供应商:支持接入 MiniMax、GLM、Gemini 等第三方 API
| 端点 | 协议 | 说明 |
|---|---|---|
POST /v1/chat/completions |
OpenAI Chat | 流式 / 非流式 |
POST /v1/messages |
Anthropic Messages | 流式 / 非流式 |
POST /v1/embeddings |
OpenAI Embeddings | 文本向量化 |
GET /v1/models |
OpenAI Models | 可用模型列表 |
| 操作系统 | 依赖 |
|---|---|
| Linux / macOS | Python 3.12+, Node.js 18+, uv, pnpm |
| Windows | Python 3.12+, Node.js 18+, uv, pnpm |
| Docker | Docker 20.10+ |
# 克隆项目
git clone https://github.com/2ndElement/copilot-hub
cd copilot-hub
# 创建数据目录
mkdir -p data
# 启动服务
docker-compose up -d访问地址:http://localhost:8000
git clone https://github.com/2ndElement/copilot-hub
cd copilot-hub
bash dev.shgit clone https://github.com/2ndElement/copilot-hub
cd copilot-hub
powershell -ExecutionPolicy Bypass -File install.ps1
cmd /c start.bat# 启动服务
docker-compose up -d
# 查看日志
docker-compose logs -f
# 停止服务
docker-compose down
# 重新构建
docker-compose build --no-cache# 拉取镜像
docker pull 2nde1ement/copilot-hub
# 运行容器
docker run -d \
--name copilot-hub \
-p 8000:8000 \
-v $(pwd)/data:/app/data \
-e PORT=8000 \
-e REGISTRATION_MODE=open \
2nde1ement/copilot-hub# 构建镜像
docker build -t my-copilot-hub .
# 运行
docker run -d \
--name copilot-hub \
-p 8000:8000 \
-v $(pwd)/data:/app/data \
my-copilot-hub| 变量 | 默认值 | 说明 |
|---|---|---|
PORT |
8000 |
监听端口 |
DB_PATH |
/app/data/copilot_hub.db |
数据库路径 |
REGISTRATION_MODE |
open |
注册模式: open / invite / closed |
HTTPS_PROXY |
- | 代理地址 |
SESSION_AFFINITY_TTL |
300 |
会话亲和时间(秒) |
API_KEY_DEFAULT_EXPIRE_DAYS |
0 |
API Key 过期天数 |
# 一键部署
bash deploy.sh
# 仅更新后端
bash deploy.sh --no-build# docker-compose.prod.yml
version: '3.8'
services:
copilot-hub:
build: .
restart: unless-stopped
volumes:
- ./data:/app/data
environment:
- PORT=8000
- DB_PATH=/app/data/copilot_hub.db
nginx:
image: nginx:latest
restart: unless-stopped
ports:
- "80:80"
- "443:443"
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf:ro
- ./data/certbot:/etc/letsencrypt
depends_on:
- copilot-hub# OpenAI 格式
curl http://localhost:8000/v1/chat/completions \
-H "Authorization: Bearer lab-sk-xxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-4.6",
"messages": [{"role": "user", "content": "你好"}]
}'
# Anthropic 格式
curl http://localhost:8000/v1/messages \
-H "Authorization: Bearer lab-sk-xxxx" \
-H "x-api-key: lab-sk-xxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-4.6",
"max_tokens": 1024,
"messages": [{"role": "user", "content": "你好"}]
}'copilot-hub/
├── Dockerfile # Docker 镜像构建
├── docker-compose.yml # Docker Compose 配置
├── .dockerignore # Docker 忽略文件
├── main.py # FastAPI 入口
├── config.py # 配置管理
├── database.py # SQLite 建表
├── crypto.py # Token 加解密
├── deploy.sh # Linux 部署脚本
├── dev.sh # 开发启动脚本
├── start.bat # Windows 启动脚本
├── install.ps1 # Windows 安装脚本
├── routers/ # API 路由
├── services/ # 业务逻辑
└── frontend/ # Vue 3 前端
MIT License