CLIProxyAPI Docker 部署教程
更多语言
更多操作
- CLIProxyAPI Docker 部署教程
> 环境:Debian 13 | Docker Compose | Nginx 反向代理 > 访问域名:`xxx.com`
- 一、安装系统依赖
```bash apt update && apt upgrade -y apt install -y git nginx curl
- 安装 Docker
bash <(curl -fsSL https://get.docker.com) systemctl enable --now docker ```
- 二、部署 CLIProxyAPI
- 2.1 克隆项目
```bash git clone https://github.com/router-for-me/CLIProxyAPI.git cd CLIProxyAPI cp config.example.yaml config.yaml ```
- 2.2 编辑配置文件
```bash nano config.yaml ```
写入以下配置:
```yaml port: 8317
auth-dir: "~/.cli-proxy-api"
request-retry: 3
quota-exceeded:
switch-project: true switch-preview-model: true
api-keys:
- "your-api-key" # 客户端访问时使用的 Key,先随便填一个,后续可在面板修改
remote-management:
allow-remote: true secret-key: "your-management-password" # 管理面板登录密码
```
> `api-keys` 不能留空,先填一个占位,进管理面板后再改。 > `secret-key` 首次启动后会自动 bcrypt 加密写回配置,用明文登录即可。
- 2.3 修改 docker-compose.yml
将 8317 和 8085 绑定到本地,OAuth 回调端口保持公网可达:
```bash nano docker-compose.yml ```
找到 `ports` 部分,修改为:
```yaml ports:
- "127.0.0.1:8317:8317" # 主 API,走 Nginx 反代 - "127.0.0.1:8085:8085" # 内部端口(实际未使用) - "1455:1455" # OAuth 回调(Claude/Codex) - "54545:54545" # OAuth 回调(Gemini CLI) - "51121:51121" # OAuth 回调(Antigravity) - "11451:11451" # OAuth 回调(其他)
```
- 2.4 启动服务
```bash bash docker-build.sh
- 出现选项时输入 1 回车(使用预构建镜像,速度快)
```
或直接:
```bash docker compose up -d ```
验证服务正常运行:
```bash docker compose ps ss -tlnp | grep 8317 # 应看到 127.0.0.1:8317 tail -f ./logs/main.log # 实时日志 ```
- 三、配置防火墙
放行 OAuth 回调端口(API 端口由 Nginx 代理,无需放行):
```bash
- ufw
ufw allow 1455/tcp ufw allow 54545/tcp ufw allow 51121/tcp ufw allow 11451/tcp ```
- 四、配置 Nginx
- 4.1 创建站点配置
先只写 HTTP 块,等 certbot 申请完证书后再补 HTTPS:
```bash cat > /etc/nginx/sites-available/xxx.com << 'EOF' server {
listen 80; listen [::]:80; server_name xxx.com;
location / {
return 301 https://$host$request_uri;
}
} EOF ```
- 4.2 启用站点
```bash ln -s /etc/nginx/sites-available/xxx.com /etc/nginx/sites-enabled/ nginx -t && systemctl reload nginx ```
- 4.3 申请 HTTPS 证书
```bash apt install -y certbot python3-certbot-nginx certbot --nginx -d xxx.com systemctl enable --now certbot.timer ```
- 4.4 替换为完整配置
certbot 申请成功后,覆盖写入完整的 Nginx 配置:
```bash cat > /etc/nginx/sites-available/xxx.com << 'EOF'
- HTTP → 强制跳转 HTTPS
server {
listen 80; listen [::]:80; server_name xxx.com;
location / {
return 301 https://$host$request_uri;
}
}
- HTTPS 主配置
server {
listen 443 ssl; listen [::]:443 ssl; server_name xxx.com;
ssl_certificate /etc/letsencrypt/live/xxx.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/xxx.com/privkey.pem; include /etc/letsencrypt/options-ssl-nginx.conf; ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
# 主 API
location / {
proxy_pass http://127.0.0.1:8317;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# SSE 流式响应必须关闭缓冲
proxy_buffering off;
proxy_cache off;
proxy_read_timeout 300s;
proxy_connect_timeout 75s;
}
} EOF nginx -t && systemctl reload nginx ```
- 五、访问管理面板
浏览器打开:
``` https://xxx.com/management.html ```
- **服务器地址**:自动填入 `https://xxx.com` - **管理密钥**:填写 `config.yaml` 中 `secret-key` 的值
- 六、添加 OAuth 认证
在服务器上执行对应命令生成认证链接:
```bash cd ~/CLIProxyAPI
- Claude
docker compose exec cli-proxy-api /CLIProxyAPI/CLIProxyAPI -no-browser --claude-login
- Gemini CLI
docker compose exec cli-proxy-api /CLIProxyAPI/CLIProxyAPI -no-browser --login
- OpenAI Codex
docker compose exec cli-proxy-api /CLIProxyAPI/CLIProxyAPI -no-browser --codex-login
- Qwen
docker compose exec cli-proxy-api /CLIProxyAPI/CLIProxyAPI -no-browser --qwen-login ```
复制输出的 `ssh` 隧道命令,**在本地电脑终端**执行(替换实际 SSH 端口):
```bash ssh -p 你的SSH端口 -R 1455:localhost:1455 root@服务器IP ```
然后在服务器终端复制授权链接 → 本地浏览器打开 → 登录授权 → 认证文件自动保存。
- 七、客户端使用
| 项目 | 值 | | ------------ | -------------------------------------- | | API Endpoint | `https://xxx.com` | | API Key | `config.yaml` 中 `api-keys` 里设置的值 |
- 八、常用运维命令
```bash cd ~/CLIProxyAPI
- 查看运行状态
docker compose ps
- 实时日志
tail -f ./logs/main.log
- 重启服务
docker compose restart
- 升级到最新版
docker compose pull && docker compose up -d
- 停止服务
docker compose down ```
- 各端口说明
| 端口 | 用途 | 是否公网 | | ------- | ----------------------- | ---------------- | | `8317` | 主 API 服务 | 否(Nginx 代理) | | `8085` | 内部端口 | 否 | | `1455` | Claude/Codex OAuth 回调 | ✅ 必须 | | `54545` | Gemini CLI OAuth 回调 | ✅ 必须 | | `51121` | Antigravity OAuth 回调 | ✅ 必须 | | `11451` | 其他 OAuth 回调 | ✅ 必须 |