first commit
This commit is contained in:
commit
47218488aa
10 files changed
+1438
No files matched your search
@@ -0,0 +1,174 @@
|
||||
# CPA 部署操作手册(你动手版)
|
||||
|
||||
> 目标链路:`Claude Code → https://api.trivoo.website (New API) → cli-proxy-api (CPA) → 你的 Google AI Pro 账号(Gemini / 反重力 Claude 模型)`
|
||||
> 环境:腾讯云新加坡 Ubuntu 24.04(43.156.118.130),New API 已在运行
|
||||
> 原则:**服务器上只新增 /opt/cpa,不动你现有的 new-api / nginx / xray**
|
||||
|
||||
---
|
||||
|
||||
## 总流程(6 步)
|
||||
|
||||
| 步骤 | 在哪做 | 干什么 | 大约耗时 |
|
||||
|---|---|---|---|
|
||||
| ① | 本地电脑 | 双击 `tunnel.bat` 开 SSH 隧道 | 10 秒 |
|
||||
| ② | 本地一条命令 | 把部署脚本送进服务器执行 | 2-3 分钟 |
|
||||
| ③ | 本地浏览器 | 管理面板里 OAuth 登录 Google 账号 | 3 分钟 |
|
||||
| ④ | 浏览器 | New API 后台加一个渠道 | 1 分钟 |
|
||||
| ⑤ | 本地 | 配 Claude Code / CCS | 2 分钟 |
|
||||
| ⑥ | 本地 | 全链路验证 | 1 分钟 |
|
||||
|
||||
每步都有 ✅ 检查点,过了再走下一步,不会乱。
|
||||
|
||||
---
|
||||
|
||||
## ① 开隧道(本地)
|
||||
|
||||
双击 `F:\AI\docker\cpa-deploy\tunnel.bat`,出现提示后**保持窗口开着**(关掉窗口 = 隧道断开)。
|
||||
|
||||
它的作用:把你本地的 8317/8085/1455/54545/51121/11451 端口接到服务器上。
|
||||
- 8317 = 管理面板
|
||||
- 51121 等其余端口 = Google OAuth 授权时的回调端口(**必须通**,否则登录卡在最后一步)
|
||||
|
||||
✅ 检查点:浏览器打开 `http://localhost:8317/management.html`,能加载出页面(此时可能还是部署前,打不开就先做第②步)。
|
||||
|
||||
> 卡住不动 = SSH 没连上,先在 PowerShell 里手动 `ssh ubuntu@43.156.118.130` 确认能登录。
|
||||
|
||||
---
|
||||
|
||||
## ② 执行部署脚本(本地 PowerShell 一条命令)
|
||||
|
||||
打开 PowerShell,原样粘贴执行:
|
||||
|
||||
```powershell
|
||||
(Get-Content F:\AI\docker\cpa-deploy\deploy-cpa.sh) -join "`n" | ssh ubuntu@43.156.118.130 "sudo bash -s"
|
||||
```
|
||||
|
||||
脚本做的事(幂等,重复跑安全):建 `/opt/cpa` → 生成随机密钥写入 config.yaml → 写 docker-compose.yml → 建 `ai-net` 网络并把 new-api 挂进来 → 启动 `cli-proxy-api` 容器 → 自检 → **打印两把钥匙**。
|
||||
|
||||
✅ 检查点(看输出):
|
||||
1. `cli-proxy-api | Up ...` 且端口全是 `127.0.0.1:xxxx->xxxx`(只有回环,公网摸不到)
|
||||
2. `no key (expect 401)` → HTTP 401;`with key (expect 200)` → HTTP 200
|
||||
3. 末尾打印 `MGMT_KEY` 和 `CPA_API_KEY`(sk-cpa- 开头)——**复制存好**,忘了随时在服务器上 `sudo cat /opt/cpa/KEYS.txt`
|
||||
|
||||
---
|
||||
|
||||
## ③ OAuth 登录 Google 账号(本地浏览器)
|
||||
|
||||
1. 确认 ① 的隧道窗口开着,浏览器访问 `http://localhost:8317/management.html`
|
||||
(首次访问 CPA 会自动从 GitHub 下载面板,转几秒到十几秒属正常)
|
||||
2. 连接信息:服务地址填 `http://localhost:8317`,管理密钥填 **MGMT_KEY**
|
||||
3. 在面板里找「凭证 / Auth 管理」类的登录入口,选你要挂的渠道:
|
||||
- **Antigravity(反重力)**:Google AI Pro 订阅的主战场——Gemini 模型 + Claude Sonnet/Opus (thinking) 都从这里出
|
||||
- **AI Studio / Gemini**:Gemini 模型的另一条渠道
|
||||
4. 点登录 → 弹出 Google 授权页 → 选中你的 Pro 账号 → 允许
|
||||
→ 浏览器会跳 `localhost:51121/...`,隧道把它送回服务器 → 面板里出现凭证文件 = 成功
|
||||
|
||||
**备用方案**(面板上找不到登录入口时用命令行):
|
||||
|
||||
```powershell
|
||||
ssh ubuntu@43.156.118.130
|
||||
sudo docker exec -it cli-proxy-api /CLIProxyAPI --antigravity-login --no-browser
|
||||
```
|
||||
|
||||
它会打印一条授权 URL,复制到本地浏览器打开授权即可(回调靠隧道)。
|
||||
查看所有支持的登录命令:`sudo docker exec -it cli-proxy-api /CLIProxyAPI --help`
|
||||
|
||||
✅ 检查点(服务器上执行,看到凭证文件 + 模型列表非空):
|
||||
|
||||
```powershell
|
||||
ssh ubuntu@43.156.118.130 "sudo ls /opt/cpa/auths && sudo docker exec cli-proxy-api sh -c 'wget -qO- http://127.0.0.1:8317/v1/models --header \"Authorization: Bearer $(sudo grep -oE \"sk-cpa-[0-9a-f]+\" /opt/cpa/config.yaml | head -1)\" | head -c 600'"
|
||||
```
|
||||
|
||||
> 国内账号疑虑:OAuth 走的是 AI Studio/反重力渠道,看的是**出口 IP(新加坡)**,不是账号注册地。如果某个模型 403/配额异常,换渠道再试或确认订阅生效。
|
||||
|
||||
---
|
||||
|
||||
## ④ New API 加渠道(浏览器后台)
|
||||
|
||||
打开 `https://api.trivoo.website` → 渠道 → 创建渠道:
|
||||
|
||||
| 字段 | 填什么 |
|
||||
|---|---|
|
||||
| 类型 | **Claude**(保 Anthropic 协议端到端,Claude Code 的 thinking/工具调用不丢) |
|
||||
| 名称 | `cpa-antigravity`(随意) |
|
||||
| 代理 / Base URL | `http://cli-proxy-api:8317`(容器内网直连,不走公网) |
|
||||
| 密钥 | **CPA_API_KEY**(sk-cpa- 开头那把) |
|
||||
| 模型 | 从上一步 ✅ 检查点输出的模型列表里抄(逐个回车成标签) |
|
||||
|
||||
提交后点渠道卡片右上角**测速图标**。
|
||||
|
||||
✅ 检查点:出现绿色延迟数字 = New API → CPA → Google 全通了。
|
||||
|
||||
---
|
||||
|
||||
## ⑤ 配 Claude Code(本地)
|
||||
|
||||
编辑 `C:\Users\<你>\.claude\settings.json`(用 CCS 的话就在 CCS 里加一个供应商,值一样——茨米说的"当成 codex 那样加"就是这个):
|
||||
|
||||
```json
|
||||
{
|
||||
"env": {
|
||||
"ANTHROPIC_AUTH_TOKEN": "sk-你在NewAPI建的令牌",
|
||||
"ANTHROPIC_BASE_URL": "https://api.trivoo.website",
|
||||
"API_TIMEOUT_MS": "600000",
|
||||
"CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY": "1"
|
||||
},
|
||||
"model": "渠道里填的某个模型名"
|
||||
}
|
||||
```
|
||||
|
||||
> 没有现成令牌就去 New API 后台「API 密钥」建一个(你自己的指南里写过这步)。
|
||||
|
||||
---
|
||||
|
||||
## ⑥ 全链路验证(本地 PowerShell)
|
||||
|
||||
```powershell
|
||||
curl.exe -s https://api.trivoo.website/v1/messages `
|
||||
-H "x-api-key: sk-你的NewAPI令牌" `
|
||||
-H "anthropic-version: 2023-06-01" `
|
||||
-H "content-type: application/json" `
|
||||
-d '{\"model\":\"渠道里的模型名\",\"max_tokens\":64,\"messages\":[{\"role\":\"user\",\"content\":\"用一句话打个招呼\"}]}'
|
||||
```
|
||||
|
||||
✅ 检查点:返回 JSON 里有 `"content":[{"type":"text"...` = **全链路打通** 🎉
|
||||
然后开 Claude Code 随便聊两句,New API 后台「日志」里能看到这条调用。
|
||||
|
||||
---
|
||||
|
||||
## 日常运维速查(服务器上)
|
||||
|
||||
```bash
|
||||
cd /opt/cpa
|
||||
docker compose logs -f --tail=50 # 看 CPA 日志
|
||||
docker compose restart # 重启 CPA
|
||||
docker compose down # 停止(数据在 ./auths ./config.yaml,不丢)
|
||||
sudo cat /opt/cpa/KEYS.txt # 查两把钥匙
|
||||
sudo ls /opt/cpa/auths # 看已登录的账号凭证
|
||||
```
|
||||
|
||||
**两个注意**:
|
||||
1. 只有第③步(OAuth 登录)和用管理面板时才需要开隧道,平时 CPA 自己在服务器上跑,不需要 tunnel.bat
|
||||
2. 如果你以后 `docker compose up -d --force-recreate` 重建了 new-api 容器,要补一句把网络接回去:
|
||||
`sudo docker network connect ai-net new-api`
|
||||
|
||||
## 彻底卸载(恢复原样)
|
||||
|
||||
```bash
|
||||
cd /opt/cpa && docker compose down
|
||||
sudo docker network disconnect ai-net new-api || true
|
||||
sudo docker network rm ai-net
|
||||
sudo rm -rf /opt/cpa
|
||||
```
|
||||
|
||||
不影响 new-api / nginx / xray / 域名证书的任何东西。
|
||||
|
||||
## 常见问题
|
||||
|
||||
| 症状 | 原因/解法 |
|
||||
|---|---|
|
||||
| 面板打不开 | tunnel.bat 窗口被关了;或第②步没成功,`docker ps` 看 cli-proxy-api 是否 Up |
|
||||
| Google 授权后跳转的 localhost 页面打不开/连接被拒 | 隧道没转发对应回调端口(重开 tunnel.bat,它含全部 6 个端口) |
|
||||
| `/v1/models` 是空的 `[]` | 账号没登录成功,看 `/opt/cpa/auths` 有没有文件,重做第③步 |
|
||||
| 渠道测试 503/no available channel | 模型名没抄对:渠道里填的名字必须和 `/v1/models` 输出完全一致 |
|
||||
| 某模型 429/403 | 配额或订阅问题:换渠道(AI Studio ↔ 反重力)试,确认 Pro 订阅生效中 |
|
||||
Reference in new issue
Block a user