前段时间,我发了一篇文章《手把手带你用上AI神器 - CLIProxyAPI(伍:Docker服务器部署)》,许多网友反馈由于没有VPS,希望我能提供一个在容器云上部署的教程。

实际上,CLIProxyAPI 既然支持 Docker 部署,自然也能无缝地在容器云上运行。但若将其直接运行在容器云上,会存在以下两个主要问题:

  • 配置文件持久化:对于程序启动所需的配置文件,容器云往往是通过把配置文件内容映射到特定文件来解决,虽然可以运行,但如果你对配置文件做过修改,一旦容器重启,所有变更都会丢失。这种配置丢失的情况是我们不能接受的。
  • OAuth 认证复杂:对于需要 OAuth 认证的供应商,在 VPS 的 Docker 环境下,我们可以通过 SSH 隧道将认证回调结果转发到服务器上。而纯容器云环境通常不支持 SSH 隧道,需要通过添加多个端口并在回调时手动修改域名来完成,整个过程非常繁琐。

因此,在 CLIProxyAPI 对容器云的部署进行适配更新后,本教程将一步步指导你如何在容器云上完成部署。

本次教程演示使用的容器云平台是 ClawCloud Run。在该平台使用注册时长超过180天的 Github 账号登录,即可获得每月5美元的循环额度。我们部署的 CLIProxyAPI 每天仅消耗约0.05美元,这个额度绰绰有余。其他容器云平台基本上大同小异,请参考该流程自行部署。

登录 ClawCloud Run 之后,我们点击 App Launchpad

点击 Create APP

首先我们填写基础信息

  • 应用名称 (Application Name):可自定义,此处填写 cliproxyapi
  • 镜像名称 (Image Name)eceasy/cli-proxy-api:latest
  • 网络 (Network):容器端口修改为 8317,同时打开 Public Access

页面向下拉动,在高级设置中,我们需要填写:

  • 启动命令 (Command)/CLIProxyAPI/CLIProxyAPI --config /data/config.yaml
  • 环境变量 (Environment Variables)DEPLOY=cloud
  • 持久化存储 (Local Storage)/data

环境变量和存储的填写方法参看下图

确认所有信息填写无误后,点击右上角的 Deploy Application,应用将开始部署

稍等片刻,应用即可部署成功。当 Public Address 状态变为 Available 时,其对应的就是我们访问 CLIProxyAPI 的网址,请保存备用

在等待部署的过程中,我们可以先准备 config.yaml 配置文件。本次使用的示例如下,请注意:remote-management.secret-key 是远程管理的密钥,而 api-keys 是 AI 客户端连接 CLIProxyAPI 所使用的密钥,要注意区分

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
port: 8317
remote-management:
allow-remote: true
secret-key: "ABCD-1234"
disable-control-panel: false
auth-dir: "/data/auths"
debug: false
logging-to-file: false
usage-statistics-enabled: false
request-retry: 3
quota-exceeded:
switch-project: true
switch-preview-model: true
api-keys:
- "EFGH-5678"

当容器状态变为 Active 之后

我们点击图中的按钮,打开之前添加的 Local Storage

点击右上角的 Upload,选择刚才准备好的 config.yaml 文件并上传

上传完成后,点击 Restart 重启容器

稍等片刻,待容器状态再次变为 Active 后,我们可以看到 Local Storage 中已生成了新的文件

同时,点击 Logs 标签页,可以看到如下图所示的日志信息

至此,CLIProxyAPI 便成功完成了整个部署流程。


使用 EasyCLI 进行远程 OAuth 认证

接下来,我们使用官方的另一个项目 EasyCLI 来进行远程 OAuth 添加。

EasyCLICLIProxyAPI 的配套项目,提供了一个图形用户界面(GUI)来管理 CLIProxyAPI。其最大亮点是支持完整的 OAuth 认证授权流程(不仅是上传授权文件,而是能处理整个授权回调过程),这是 CLIProxyAPI 自带的 WebUI 无法做到的。

请前往 EasyCLI 程序发布页面 下载适合你操作系统的版本(作者提供了 Mac、Linux、Windows 版本)。本教程以 Windows x64 版本为例。

打开程序后,选择 Remote,输入我们之前记录下的 URL 网址

密码输入 config.yaml 中设置的 remote-management.secret-key(本例中是 ABCD-1234

依次点击 Authentication Files -> New

本次我们仍以添加 Gemini CLI 为例进行演示,准备工作可参照《手把手带你用上AI神器 - CLIProxyAPI(贰:Gemini CLI+Codex实战)

输入 Project ID,点击 Confirm

页面中会出现 OAuth 链接,点击 Open Link

程序会自动打开浏览器并跳转到 OAuth 链接,同时 EasyCLI 自身会进入回调接收状态

在打开的浏览器页面中,我们登录账号并完成授权认证过程

完成后,在 Authentication Files 列表中就可以看到新生成的配置文件了

验证

我们再用 Cherry Studio 测试一下。如图所示,根据配置文件内容填写 API 密钥和 API 地址

成功!

EasyCLI 的其余功能就交给各位自行探索了。实际上,除了 OAuth 认证部分,EasyCLI 的其他功能与系统内置的 WebUI 基本一致。你也可以通过访问 https://你的CLIProxyAPI访问链接/management.html 来进行其他配置管理(关于 WebUI 的介绍可参考这篇文章《手把手带你用上AI神器 - CLIProxyAPI(陆:新人最爱GUI)》,虽然介绍也相对简短=。=)