本教程从零开始,带你用 Docker Compose 部署 CRS, 整个流程约 30 分钟,部署完成后即可多人共享 Claude Code。
第一步:选择合适的服务器
⚠️ 重要:经测试,阿里云、腾讯云的海外主机会被 Cloudflare 拦截,无法直接访问 Claude API。请选择其他云服务商。
推荐服务器配置:
| 规格 | 说明 |
|---|---|
| CPU | 1-2 核 |
| 内存 | 1-2 GB(512MB 最低) |
| 硬盘 | 30GB+ |
| 地区 | 美国 或其他非中国大陆地区(非阿里/腾讯海外) |
| 月费 | 约 30-60 元 |
推荐服务商:Vultr、DigitalOcean、Hetzner、搬瓦工(BandwagonHOST)、RackNerd
网络建议:选回国线路好(CN2/GIA)的机器,拼车成员用起来速度更快。
第二步:安装 Docker
# Ubuntu/Debian 一键安装 Docker
curl -fsSL https://get.docker.com | sh
# 把当前用户加入 docker 组(免 sudo)
sudo usermod -aG docker $USER
newgrp docker
# 验证
docker --version
docker compose version第三步:Docker Compose 一键部署
# 下载官方 compose 配置脚本
curl -fsSL https://pincc.ai/crs-compose.sh -o crs-compose.sh
chmod +x crs-compose.sh
./crs-compose.sh脚本会交互式询问配置,生成 docker-compose.yml 和 .env 文件。
手动配置 .env(可选)
如果不用脚本,手动创建 .env:
# 生成随机密钥
JWT_SECRET=$(openssl rand -hex 32)
ENCRYPTION_KEY=$(openssl rand -hex 16) # 必须 32 字符
cat > .env << EOF
JWT_SECRET=${JWT_SECRET}
ENCRYPTION_KEY=${ENCRYPTION_KEY}
# 可选:预设管理员账号(不填则自动生成)
# ADMIN_USERNAME=my_admin
# ADMIN_PASSWORD=my_secure_password
# Redis 配置(使用 compose 内置 Redis 则不需要改)
REDIS_HOST=redis
REDIS_PORT=6379
REDIS_PASSWORD=
# 日志级别
LOG_LEVEL=info
EOF
echo "配置已生成"
cat .envdocker-compose.yml 参考
version: '3.8'
services:
crs:
image: ghcr.io/wei-shaw/claude-relay-service:latest
container_name: claude-relay-service
restart: unless-stopped
ports:
- "3000:3000"
environment:
- JWT_SECRET=${JWT_SECRET}
- ENCRYPTION_KEY=${ENCRYPTION_KEY}
- REDIS_HOST=redis
- REDIS_PORT=6379
- ADMIN_USERNAME=${ADMIN_USERNAME:-}
- ADMIN_PASSWORD=${ADMIN_PASSWORD:-}
volumes:
- ./data:/app/data
- ./logs:/app/logs
depends_on:
redis:
condition: service_healthy
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3000/health"]
interval: 30s
timeout: 10s
retries: 3
redis:
image: redis:7-alpine
container_name: crs-redis
restart: unless-stopped
volumes:
- redis-data:/data
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 5s
retries: 5
volumes:
redis-data:第四步:启动服务
# 启动(后台运行)
docker compose up -d
# 查看启动日志
docker compose logs -f crs
# 确认服务正常
docker compose ps第五步:获取管理员账号
# 方法 1:查看自动生成的账号
cat ./data/init.json
# 方法 2:查看容器日志
docker logs claude-relay-service | grep -A5 "管理员"第六步:访问管理面板
浏览器打开:http://你的服务器IP:3000/web
用 init.json 里的账号密码登录。
第七步:添加 Claude OAuth 账户
这是最关键的步骤:
- 登录管理面板,点击「Claude 账户」标签
- (可选)如果担心多账号共用 IP,先配置静态代理
- 点击「添加账户」
- 点击「生成授权链接」→ 在新标签页完成 Claude 登录授权
- 复制返回的 Authorization Code,粘贴完成添加
💡 国内用户这一步需要挂梯子访问 Claude 官方授权页面。
建议添加 2-3 个账户,智能轮换机制会自动处理切换。
第八步:创建 API Key
- 点击「API Keys」标签
- 点击「创建新 Key」,起个名字(如「张三的 Key」)
- 按需配置限制:
- 速率限制:每分钟最多 N 个请求
- 并发限制:同时最多 N 个请求
- 模型限制:只允许使用特定模型
- 保存,复制 API Key 发给对应成员
第九步:配置 Claude Code 使用
成员在自己电脑上设置:
# 写入 ~/.bashrc 或 ~/.zshrc
export ANTHROPIC_BASE_URL="http://你的服务器IP:3000/api/"
export ANTHROPIC_AUTH_TOKEN="你的API-Key"
# 生效
source ~/.bashrc
# 测试
claude -p "你好"可选:Nginx 反向代理 + HTTPS
server {
listen 443 ssl;
server_name your-domain.com;
ssl_certificate /etc/letsencrypt/live/your-domain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/your-domain.com/privkey.pem;
# 重要:Codex CLI 需要这一行
underscores_in_headers on;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_read_timeout 300s;
proxy_send_timeout 300s;
}
}# 申请免费 SSL 证书
apt install certbot python3-certbot-nginx
certbot --nginx -d your-domain.com常见问题
Q:启动后访问不了管理面板
检查服务器防火墙是否开放 3000 端口:ufw allow 3000
Q:添加 Claude 账户时无法授权 需要科学上网,使用代理访问 Claude 授权页面。
Q:Codex CLI 用不了
在 Nginx 配置中添加 underscores_in_headers on;,否则粘性会话头会被丢弃。
Q:提示安全漏洞
立刻执行 docker compose pull && docker compose up -d 更新到最新版本。
来源:CRS GitHub 项目 - https://github.com/Wei-Shaw/claude-relay-service