English | 中文
|
💎 特别优惠:Cubence 一家稳定高效的AI服务中转平台,为 Claude Code、Codex、Gemini 等AI工具提供中转服务,有着不错的稳定性和性价比。 Cubence 为 CCH 的使用用户提供了特别的优惠折扣:在购买时使用优惠券 DING113CCH,可享受 10% 优惠折扣 → 立即访问
|
|
💎 特别优惠:Privnode 是一家平价的 AI API 聚合平台,为 Claude、Codex 等主流模型提供一站式中转服务,以良好的稳定性和较高的性价比,服务于开发者与团队的实际需求。 使用优惠码 WITHCCH 可获得 15% 折扣 → 立即访问
|
|
💎 特别优惠:感谢 PackyCode 赞助本项目!PackyCode 是一家稳定、高效的 API 中转服务商,提供 Claude Code、Codex、Gemini 等多种中转服务。 PackyCode 为本软件的用户提供了特别优惠,使用此链接注册并在充值时填写优惠码 WITHCCH,可享受 9 折优惠 → 立即访问
|
|
💎 特别优惠:YesCode 是一家低调务实的 AI API 中转服务商,专注于为开发者提供稳定可靠的 Claude、Codex、Gemini 等模型接入服务,以扎实的技术底蕴和持续稳定的服务质量赢得用户信赖。 通过此链接注册即可体验 → 立即访问 |
/v1/chat/completions,自动格式转换、工具调用、reasoning 字段与 Codex CLI 指令注入。一键部署脚本会自动完成以下所有步骤:
Linux / macOS:
# 下载并运行部署脚本
curl -fsSL https://raw.githubusercontent.com/ding113/claude-code-hub/main/scripts/deploy.sh -o deploy.sh
chmod +x deploy.sh
./deploy.sh
或者使用 wget:
wget https://raw.githubusercontent.com/ding113/claude-code-hub/main/scripts/deploy.sh
chmod +x deploy.sh
./deploy.sh
Windows (PowerShell 管理员模式):
# 下载并运行部署脚本
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/ding113/claude-code-hub/main/scripts/deploy.ps1" -OutFile "deploy.ps1"
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process -Force
.\deploy.ps1
部署目录:
/www/compose/claude-code-hub~/Applications/claude-code-hubC:\ProgramData\claude-code-hub分支选择:
脚本会提示选择部署分支:
main(默认):稳定版本,推荐生产环境使用dev:开发版本,包含最新功能,用于测试重要提示:
克隆项目并配置环境
git clone https://github.com/ding113/claude-code-hub.git
cd claude-code-hub
cp .env.example .env
修改配置文件
编辑 .env 文件,必须修改 ADMIN_TOKEN(后台登录令牌):
# 必须修改此项!
ADMIN_TOKEN=your-secure-token-here
# Docker Compose 默认配置(通常无需修改)
DSN=postgres://postgres:postgres@postgres:5432/claude_code_hub
REDIS_URL=redis://redis:6379
启动服务
docker compose up -d
查看启动状态:
docker compose ps
docker compose logs -f app
启动成功后:
http://localhost:23000(使用 .env 中的 ADMIN_TOKEN 登录)http://localhost:23000/api/actions/scalarhttp://localhost:23000/api/actions/docs💡 提示:
- 如需修改端口,请编辑
docker-compose.yml中的ports配置。- 如需通过脚本或编程调用 API,请参考 API 认证指南。
| 功能 | 截图 | 说明 |
|---|---|---|
| 仪表盘 | ![]() |
汇总调用量、成本、活跃 Session 与时间分布,实时洞察整体使用情况。 |
| 供应商管理 | ![]() |
为每个供应商配置权重、成本系数、并发限制、代理及模型重定向,实现精细调度。 |
| 日志与审计 | ![]() |
统一查询请求日志,支持时间/用户/供应商/模型筛选,查看 Token、成本与缓冲命中情况。 |
| 排行榜 | ![]() |
按用户统计请求数、Token 与成本,用于费用分摊与用量治理。 |
客户端 / CLI / 第三方系统
│
▼
Next.js 15 App Router (v1 API 路由)
│
Hono + Proxy Pipeline (认证 → Session 分配 → 限流 → 供应商选择 → 请求转发 → 响应处理)
│
多供应商 (Claude / OpenAI / Gemini / 第三方) + PostgreSQL + Redis
src/app 中的 dashboard、settings、api actions,提供 UI 与内部 API。src/app/v1/_lib/proxy-handler.ts 串联 Auth、SessionGuard、RateLimitGuard、ProviderResolver、Forwarder、ResponseHandler。src/lib 存放限流、Session、熔断器、代理、price-sync;src/repository 封装 Drizzle ORM 查询。src/app/api/actions/[...route]/route.ts 自动注册 Action → OpenAPI 端点。ProxyAuthenticator 校验身份。SessionManager 从 Redis 读取 5 分钟缓存,控制并发并记录决策链。RateLimitService 使用 Lua 脚本原子写入 RPM/金额/并发指标,Redis 不可用则 Fail-Open 降级。ProviderResolver 根据权重、优先级、熔断状态与 Session 复用策略选择最佳供应商,至多 3 次重试。ProxyForwarder + ResponseTransformer 适配 Claude/OpenAI/Response API,支持代理与模型重定向。repository 查询 PostgreSQL,以小时级聚合呈现指标。Docker Compose 是首选部署方式,自动配置数据库、Redis 和应用服务,无需手动安装依赖,适合生产环境快速部署。
.env(参考 .env.example);确认 DSN 与 REDIS_URL 指向 Compose 内的服务。启动:
docker compose up -d
查看日志与状态:
docker compose logs -f app
docker compose ps
升级:
docker compose pull && docker compose up -d
若需停止并清理,执行 docker compose down.
dev/ 目录:cd dev.make dev 一键启动 PostgreSQL + Redis + bun dev。make db:仅启动数据库与 Redismake logs / make logs-app:快速查看服务日志make clean / make reset:清理或重置环境make migrate、make db-shell 处理数据库变更。安装依赖并构建:
bun install
bun run build # 自动复制 VERSION
设置环境变量(建议通过系统服务或 PM2 注入),确保数据库、Redis 可访问。
启动生产服务器:
bun run start
注意:首次运行可开启 AUTO_MIGRATE=true 自动迁移,生产环境完成后建议改为 false 并使用 Drizzle CLI 手动管理。
| 变量 | 默认值 | 说明与建议 |
|---|---|---|
ADMIN_TOKEN |
change-me |
后台登录令牌,部署前必须修改。 |
DSN |
- | PostgreSQL 连接串,如 postgres://user:pass@host:5432/db. |
DB_POOL_MAX |
生产环境 20 / 开发 10 |
PostgreSQL 连接池上限(每进程);高并发可提高,k8s 多副本需结合 max_connections 分摊。 |
DB_POOL_IDLE_TIMEOUT |
20 |
空闲连接回收(秒);避免连接长期占用。 |
DB_POOL_CONNECT_TIMEOUT |
10 |
建立连接超时(秒);避免网络异常时卡住连接获取。 |
MESSAGE_REQUEST_WRITE_MODE |
async |
请求日志写入模式:async 异步批量(默认);sync 同步写入(更实时但更慢)。 |
MESSAGE_REQUEST_ASYNC_FLUSH_INTERVAL_MS |
250 |
异步批量写入 flush 间隔(毫秒)。 |
MESSAGE_REQUEST_ASYNC_BATCH_SIZE |
200 |
单次批量写入最大条数(避免单条 SQL 过大)。 |
MESSAGE_REQUEST_ASYNC_MAX_PENDING |
5000 |
内存队列上限(防止 DB 异常时无限增长;超限将丢弃最旧更新并告警)。 |
AUTO_MIGRATE |
true |
启动时自动执行 Drizzle 迁移;生产环境可关闭以人工控制。 |
REDIS_URL |
redis://localhost:6379 |
Redis 地址,支持 rediss:// 用于 TLS。 |
REDIS_TLS_REJECT_UNAUTHORIZED |
true |
是否验证 Redis TLS 证书;设为 false 可跳过验证(用于自签/共享证书)。 |
ENABLE_RATE_LIMIT |
true |
控制多维限流开关;Fail-Open 策略在 Redis 不可用时自动降级。 |
SESSION_TTL |
300 |
Session 缓存时间(秒),影响供应商复用策略。 |
ENABLE_SECURE_COOKIES |
true |
仅 HTTPS 场景能设置 Secure Cookie;HTTP 访问(非 localhost)需改为 false。 |
ENABLE_CIRCUIT_BREAKER_ON_NETWORK_ERRORS |
false |
是否将网络错误计入熔断器;开启后能更激进地阻断异常线路。 |
APP_PORT |
23000 |
生产端口,可被容器或进程管理器覆盖。 |
APP_URL |
空 | 设置后 OpenAPI 文档 servers 将展示正确域名/端口。 |
API_TEST_TIMEOUT_MS |
15000 |
供应商 API 测试超时时间(毫秒,范围 5000-120000),跨境网络可适当提高。 |
布尔变量请直接写
true/false或1/0,勿加引号,避免被 Zod 转换为真值。更多字段参考.env.example。
数据库连接失败怎么办?
DSN 格式与凭据无误;Docker 场景下使用服务名(如 postgres:5432)。docker compose ps 或本地 PostgreSQL 状态,必要时通过 make db-shell 诊断。Redis 离线会影响服务吗?
熔断器持续打开如何排查?
[CircuitBreaker] 记录,确认是否由于 4xx/5xx 或网络错误导致。提示“无可用供应商”该怎么办?
代理配置失败?
http://、socks5:// 等),并使用后台“测试连接”按钮验证。proxy_fallback_to_direct),请在日志中确认是否已自动切换至直连。欢迎通过 Issue / PR 参与开发,提交前请阅读 CONTRIBUTING.md,遵循双语目录、分支命名和 Conventional Commits 规则。
项目基于 zsio/claude-code-hub 深度改进,OpenAI 兼容层参考 router-for-me/CLIProxyAPI,供应商检测功能参考 prehisle/relay-pulse。感谢原作者及社区贡献者!
本项目采用 MIT License,可自由使用与二次开发,仍需遵守条款并保留致谢信息。