打开/关闭菜单
打开/关闭外观设置菜单
打开/关闭个人菜单
未登录
未登录用户的IP地址会在进行任意编辑后公开展示。

CLIProxyAPI Docker 部署教程

来自md5.pw
这是此页面的最新修订,它没有已核准修订。
  1. CLIProxyAPI Docker 部署教程

> 环境:Debian 13 | Docker Compose | Nginx 反向代理 > 访问域名:`xxx.com`


    1. 一、安装系统依赖

```bash apt update && apt upgrade -y apt install -y git nginx curl

  1. 安装 Docker

bash <(curl -fsSL https://get.docker.com) systemctl enable --now docker ```


    1. 二、部署 CLIProxyAPI
      1. 2.1 克隆项目

```bash git clone https://github.com/router-for-me/CLIProxyAPI.git cd CLIProxyAPI cp config.example.yaml config.yaml ```

      1. 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 加密写回配置,用明文登录即可。

      1. 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 回调(其他)

```

      1. 2.4 启动服务

```bash bash docker-build.sh

  1. 出现选项时输入 1 回车(使用预构建镜像,速度快)

```

或直接:

```bash docker compose up -d ```

验证服务正常运行:

```bash docker compose ps ss -tlnp | grep 8317 # 应看到 127.0.0.1:8317 tail -f ./logs/main.log # 实时日志 ```


    1. 三、配置防火墙

放行 OAuth 回调端口(API 端口由 Nginx 代理,无需放行):

```bash

  1. ufw

ufw allow 1455/tcp ufw allow 54545/tcp ufw allow 51121/tcp ufw allow 11451/tcp ```


    1. 四、配置 Nginx
      1. 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 ```

      1. 4.2 启用站点

```bash ln -s /etc/nginx/sites-available/xxx.com /etc/nginx/sites-enabled/ nginx -t && systemctl reload nginx ```

      1. 4.3 申请 HTTPS 证书

```bash apt install -y certbot python3-certbot-nginx certbot --nginx -d xxx.com systemctl enable --now certbot.timer ```

      1. 4.4 替换为完整配置

certbot 申请成功后,覆盖写入完整的 Nginx 配置:

```bash cat > /etc/nginx/sites-available/xxx.com << 'EOF'

  1. HTTP → 强制跳转 HTTPS

server {

   listen 80;
   listen [::]:80;
   server_name xxx.com;
   location / {
       return 301 https://$host$request_uri;
   }

}

  1. 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 ```


    1. 五、访问管理面板

浏览器打开:

``` https://xxx.com/management.html ```

- **服务器地址**:自动填入 `https://xxx.com` - **管理密钥**:填写 `config.yaml` 中 `secret-key` 的值


    1. 六、添加 OAuth 认证

在服务器上执行对应命令生成认证链接:

```bash cd ~/CLIProxyAPI

  1. Claude

docker compose exec cli-proxy-api /CLIProxyAPI/CLIProxyAPI -no-browser --claude-login

  1. Gemini CLI

docker compose exec cli-proxy-api /CLIProxyAPI/CLIProxyAPI -no-browser --login

  1. OpenAI Codex

docker compose exec cli-proxy-api /CLIProxyAPI/CLIProxyAPI -no-browser --codex-login

  1. 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 ```

然后在服务器终端复制授权链接 → 本地浏览器打开 → 登录授权 → 认证文件自动保存。


    1. 七、客户端使用

| 项目 | 值 | | ------------ | -------------------------------------- | | API Endpoint | `https://xxx.com` | | API Key | `config.yaml` 中 `api-keys` 里设置的值 |


    1. 八、常用运维命令

```bash cd ~/CLIProxyAPI

  1. 查看运行状态

docker compose ps

  1. 实时日志

tail -f ./logs/main.log

  1. 重启服务

docker compose restart

  1. 升级到最新版

docker compose pull && docker compose up -d

  1. 停止服务

docker compose down ```


    1. 各端口说明

| 端口 | 用途 | 是否公网 | | ------- | ----------------------- | ---------------- | | `8317` | 主 API 服务 | 否(Nginx 代理) | | `8085` | 内部端口 | 否 | | `1455` | Claude/Codex OAuth 回调 | ✅ 必须 | | `54545` | Gemini CLI OAuth 回调 | ✅ 必须 | | `51121` | Antigravity OAuth 回调 | ✅ 必须 | | `11451` | 其他 OAuth 回调 | ✅ 必须 |