Skip to content

2ndelement/copilot-hub

Repository files navigation

Copilot Hub

GitHub Copilot 账号共享网关。将多个 Copilot 账号池化,对外提供兼容 OpenAI / Anthropic 标准的统一 API,带有 Web 管理界面。

Docker Docker Size


功能概览

核心能力

  • 多账号池化:多个 GitHub Copilot 账号统一管理,自动负载均衡
  • 配额感知调度:优先选择剩余配额充足的账号,避免 429
  • 会话亲和:同一 API Key 的连续请求尽量命中同一账号
  • 第三方供应商:支持接入 MiniMax、GLM、Gemini 等第三方 API

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+

方式一:Docker (推荐)

# 克隆项目
git clone https://github.com/2ndElement/copilot-hub
cd copilot-hub

# 创建数据目录
mkdir -p data

# 启动服务
docker-compose up -d

访问地址:http://localhost:8000

方式二:Linux/macOS

git clone https://github.com/2ndElement/copilot-hub
cd copilot-hub
bash dev.sh

方式三:Windows

git clone https://github.com/2ndElement/copilot-hub
cd copilot-hub
powershell -ExecutionPolicy Bypass -File install.ps1
cmd /c start.bat

Docker 详解

快速命令

# 启动服务
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 过期天数

生产部署

Linux (systemd)

# 一键部署
bash deploy.sh

# 仅更新后端
bash deploy.sh --no-build

Docker + Nginx (生产)

# 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

API 使用

# 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

About

GitHub Copilot 账号共享网关 - 多账号池化 + OpenAI/Anthropic 兼容 API

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors