自建 Claude Code 镜像!一站式开源中转服务!
<p>大家好,我是 <code>Java陈序员</code>。</p><p>对于依赖 Claude 进行代码开发、内容创作的开发者来说,稳定且安全的访问体验,直接决定了工作效率。但官方服务的地区限制、第三方镜像的隐私风险、拼车套餐的成本模糊,成了绕不开的坎。</p>
<p>今天,给大家介绍一款开源的 Claude 中转服务,适用于自建 Claude 镜像!</p>
<blockquote>
<p>关注微信公众号:【Java陈序员】,获取<strong>开源项目分享、AI副业分享、超200本经典计算机电子书籍等。</strong></p>
</blockquote>
<h2 id="项目介绍">项目介绍</h2>
<p><code>claude-relay-service</code> —— 一个用于自行搭建 Claude API 中转服务的开源项目,让 Claude、OpenAI、Gemini、Droid 订阅统一接入,支持拼车共享,原生工具无缝使用。</p>
<p><strong>功能特色</strong>:</p>
<ul>
<li><strong>多账户智能调度</strong>:支持添加多个 Claude、OpenAI、Gemini、Droid 账户,支持自动轮换使用,账户异常时自动切换备用账户</li>
<li><strong>精细化权限管控</strong>:自定义 API Key 生成,为每个用户/团队分配独立 API Key,支持设置 Token 限额、并发数、速率限制</li>
<li><strong>全维度使用统计</strong>:按 API Key/账户/模型多维度统计,精准记录请求数、Token 消耗,支持生成 30 天+ 历史使用数据,同时支持会话分析能力,追踪账户请求会话、活跃窗口、API Key 使用频次</li>
<li><strong>一键化部署与管理</strong>:支持 Docker 部署,使用 Docker Compose 一键即可启动,同时提供便捷的运维脚本</li>
<li><strong>多渠道告警通知</strong>:当出现账户异常、额度不足、请求超时,触发预警通知,支持企业微信、钉钉、飞书、Slack、Discord、SMTP 邮件等多平台 Webhook 通知</li>
</ul>
<p><strong>技术栈</strong>:Node.js + Redis + Vue3 + Vite + Docker</p>
<h2 id="快速上手">快速上手</h2>
<p><code>claude-relay-service</code> 支持 Docker 部署,可直接通过 Docker 快速部署体验。</p>
<p>1、下载 <code>docker-compose.yaml</code> 文件</p>
<pre><code class="language-bash">curl -fsSL https://pincc.ai/crs-compose.sh -o crs-compose.sh && chmod +x crs-compose.sh && ./crs-compose.sh
</code></pre>
<p>2、或者手动创建 <code>docker-compose.yaml</code> 文件,并粘贴如下内容:</p>
<pre><code class="language-yaml">version: '3.8'
services:
# 🚀 Claude Relay Service
claude-relay:
build: .
image: weishaw/claude-relay-service:latest
restart: unless-stopped
ports:
- "${BIND_HOST:-0.0.0.0}:${PORT:-3000}:3000"
volumes:
- ./logs:/app/logs
- ./data:/app/data
environment:
- NODE_ENV=production
- PORT=3000
- HOST=0.0.0.0
- REDIS_HOST=redis
- REDIS_PORT=6379
- REDIS_PASSWORD=${REDIS_PASSWORD:-}
- REDIS_DB=${REDIS_DB:-0}
- REDIS_ENABLE_TLS=${REDIS_ENABLE_TLS:-}
- JWT_SECRET=p0n53FalFL0D18SVptQ05yJaAVFE9VEy
- ENCRYPTION_KEY=WKnqiIzgyvo0etDtO5ZT6WXJt8QeH9hy
- ADMIN_SESSION_TIMEOUT=${ADMIN_SESSION_TIMEOUT:-86400000}
- API_KEY_PREFIX=${API_KEY_PREFIX:-cr_}
- ADMIN_USERNAME=${ADMIN_USERNAME:-}
- ADMIN_PASSWORD=${ADMIN_PASSWORD:-}
- DEFAULT_PROXY_TIMEOUT=${DEFAULT_PROXY_TIMEOUT:-60000}
- MAX_PROXY_RETRIES=${MAX_PROXY_RETRIES:-3}
- DEFAULT_TOKEN_LIMIT=${DEFAULT_TOKEN_LIMIT:-1000000}
- LOG_LEVEL=${LOG_LEVEL:-info}
- LOG_MAX_SIZE=${LOG_MAX_SIZE:-10m}
- LOG_MAX_FILES=${LOG_MAX_FILES:-5}
- CLEANUP_INTERVAL=${CLEANUP_INTERVAL:-3600000}
- TOKEN_USAGE_RETENTION=${TOKEN_USAGE_RETENTION:-2592000000}
- HEALTH_CHECK_INTERVAL=${HEALTH_CHECK_INTERVAL:-60000}
- TIMEZONE_OFFSET=${TIMEZONE_OFFSET:-8}
- DEBUG=${DEBUG:-false}
- ENABLE_CORS=${ENABLE_CORS:-true}
- TRUST_PROXY=${TRUST_PROXY:-true}
# 🎯 Claude API 配置
- CLAUDE_API_URL=${CLAUDE_API_URL:-https://api.anthropic.com/v1/messages}
- CLAUDE_API_VERSION=${CLAUDE_API_VERSION:-2023-06-01}
- CLAUDE_BETA_HEADER=${CLAUDE_BETA_HEADER:-claude-code-20250219,oauth-2025-04-20,interleaved-thinking-2025-05-14,fine-grained-tool-streaming-2025-05-14}
depends_on:
- redis
networks:
- claude-relay-network
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3000/health"]
interval: 30s
timeout: 10s
retries: 3
# 📊 Redis Database
redis:
image: redis:7-alpine
restart: unless-stopped
expose:
- "6379"
volumes:
- ./redis_data:/data
command: redis-server --save 60 1 --appendonly yes --appendfsync everysec
networks:
- claude-relay-network
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 30s
timeout: 10s
retries: 3
volumes:
prometheus_data:
driver: local
grafana_data:
driver: local
networks:
claude-relay-network:
driver: bridge
</code></pre>
<p>3、<code>docker-compose.yaml</code> 文件已包含:</p>
<ul>
<li>自动初始化管理员账号</li>
<li>数据持久化(logs 和 data 目录自动挂载)</li>
<li>Redis 数据库(如果已有外部 Redis 服务,可移除,并修改环境变量中 Redis 相关的连接参数)</li>
<li>健康检查</li>
<li>自动重启</li>
</ul>
<p><strong>环境变量</strong>:</p>
<ul>
<li>必填项:</li>
</ul>
<ol>
<li>JWT_SECRET: JWT 密钥,至少 32 个字符</li>
<li>ENCRYPTION_KEY: 加密密钥,必须是 32 个字符</li>
</ol>
<ul>
<li>可选项:</li>
</ul>
<ol>
<li>ADMIN_USERNAME: 管理员用户名(不设置则自动生成)</li>
<li>ADMIN_PASSWORD: 管理员密码(不设置则自动生成)</li>
</ol>
<p>4、运行启动服务</p>
<pre><code class="language-bash">docker compose up -d
</code></pre>
<p>5、查看服务日志</p>
<pre><code class="language-bash">docker compose logs -f
</code></pre>
<p>6、服务启动成功后,浏览器访问</p>
<pre><code class="language-bash">http://{IP/域名}:3000
</code></pre>
<p>7、自动生成的管理员用户名密码可通过查看挂载文件获取</p>
<pre><code class="language-bash">cat ./data/init.json
</code></pre>
<h2 id="功能体验">功能体验</h2>
<ul>
<li><strong>统计查询</strong></li>
</ul>
<p><img src="https://create-center.oss-cn-shenzhen.aliyuncs.com/claude-relay-service/img-20260317164042.png"></p>
<ul>
<li><strong>仪表盘</strong></li>
</ul>
<p><img src="https://create-center.oss-cn-shenzhen.aliyuncs.com/claude-relay-service/img-20260317164253.png"></p>
<ul>
<li><strong>API Keys</strong></li>
</ul>
<p><img src="https://create-center.oss-cn-shenzhen.aliyuncs.com/claude-relay-service/img-20260317164554.png"></p>
<p><img src="https://create-center.oss-cn-shenzhen.aliyuncs.com/claude-relay-service/img-20260317164644.png"></p>
<ul>
<li><strong>账户管理</strong></li>
</ul>
<p><img src="https://create-center.oss-cn-shenzhen.aliyuncs.com/claude-relay-service/img-20260317164815.png"></p>
<p><img src="https://create-center.oss-cn-shenzhen.aliyuncs.com/claude-relay-service/img-20260317164845.png"></p>
<ul>
<li><strong>额度卡</strong></li>
</ul>
<p><img src="https://create-center.oss-cn-shenzhen.aliyuncs.com/claude-relay-service/img-20260317165320.png"></p>
<ul>
<li><strong>系统设置</strong></li>
</ul>
<p><img src="https://create-center.oss-cn-shenzhen.aliyuncs.com/claude-relay-service/img-20260317165509.png"></p>
<p><img src="https://create-center.oss-cn-shenzhen.aliyuncs.com/claude-relay-service/img-20260317165608.png"></p>
<h2 id="本地开发">本地开发</h2>
<blockquote>
<p>项目依赖 Node.js 和 Redis, 需提前进行安装。</p>
</blockquote>
<p>1、克隆或下载项目源码</p>
<pre><code class="language-bash">git clone https://github.com/Wei-Shaw/claude-relay-service.git
</code></pre>
<p>2、进入项目根目录并安装依赖</p>
<pre><code class="language-bash">cd claude-relay-service
npm install
</code></pre>
<p>3、复制配置文件,并修改文件名</p>
<pre><code class="language-bash">cp config/config.example.js config/config.js
cp .env.example .env
</code></pre>
<p>4、修改编辑 <code>.env</code> 配置文件</p>
<pre><code class="language-javascript"># 这两个密钥随便生成,但要记住
JWT_SECRET=JWT生成密钥
ENCRYPTION_KEY=32位的加密密钥随便写
# Redis配置
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_PASSWORD=
</code></pre>
<p>5、安装前端依赖并构建</p>
<pre><code class="language-bash"># 安装前端依赖
npm run install:web
# 构建前端(生成 dist 目录)
npm run build:web
</code></pre>
<p>6、启动服务</p>
<pre><code class="language-bash"># 初始化,会随机生成后台账号密码信息,存储在 data/init.json
npm run setup
# 启动服务
npm run dev
</code></pre>
<p>7、服务启动成功后,浏览器访问</p>
<pre><code class="language-bash">http://localhost:3000
</code></pre>
<p>如果你也想摆脱 Claude 使用的各种限制,拥有专属、安全、稳定的 API 中转服务,不妨试试 <code>claude-relay-service</code>,开源免费,自定义程度拉满,从此用 Claude 更省心!</p>
<pre><code class="language-bash">项目地址:https://github.com/Wei-Shaw/claude-relay-service
</code></pre>
<h2 id="最后">最后</h2>
<p>推荐的开源项目已经收录到 <code>GitHub</code> 项目,欢迎 <code>Star</code>:</p>
<pre><code>https://github.com/chenyl8848/great-open-source-project
</code></pre>
<p>或者访问网站,进行在线浏览:</p>
<pre><code>https://chencoding.top:8090/#/
</code></pre>
<p><img src="https://create-center.oss-cn-shenzhen.aliyuncs.com/github/img-20250608222400.png"></p>
<p><strong>我创建了一个开源项目交流群,方便大家在群里交流、讨论开源项目</strong>。</p>
<p><strong>但是任何人在群里打任何广告,都会被 T 掉</strong>。</p>
<p><strong>如果你对这个交流群感兴趣或者在使用开源项目中遇到问题,可以通过如下方式进群</strong>:</p>
<p><strong>关注微信公众号:【Java陈序员】,回复【开源项目交流群】进群,或者通过公众号下方的菜单添加个人微信,并备注【开源项目交流群】,通过后拉你进群</strong>。</p>
<blockquote>
<p>大家的点赞、收藏和评论都是对作者的支持,如文章对你有帮助还请点赞转发支持下,谢谢!</p>
</blockquote>
<hr><br><br>
来源:https://www.cnblogs.com/codechen8848/p/19738001
頁:
[1]