<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh">
	<id>https://md5.pw/index.php?action=history&amp;feed=atom&amp;title=CLIProxyAPI_Docker_%E9%83%A8%E7%BD%B2%E6%95%99%E7%A8%8B</id>
	<title>CLIProxyAPI Docker 部署教程 - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://md5.pw/index.php?action=history&amp;feed=atom&amp;title=CLIProxyAPI_Docker_%E9%83%A8%E7%BD%B2%E6%95%99%E7%A8%8B"/>
	<link rel="alternate" type="text/html" href="https://md5.pw/index.php?title=CLIProxyAPI_Docker_%E9%83%A8%E7%BD%B2%E6%95%99%E7%A8%8B&amp;action=history"/>
	<updated>2026-05-13T11:46:19Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://md5.pw/index.php?title=CLIProxyAPI_Docker_%E9%83%A8%E7%BD%B2%E6%95%99%E7%A8%8B&amp;diff=2342&amp;oldid=prev</id>
		<title>2026年5月13日 (三) 00:45 Liam</title>
		<link rel="alternate" type="text/html" href="https://md5.pw/index.php?title=CLIProxyAPI_Docker_%E9%83%A8%E7%BD%B2%E6%95%99%E7%A8%8B&amp;diff=2342&amp;oldid=prev"/>
		<updated>2026-05-13T00:45:06Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;zh&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←上一版本&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2026年5月12日 (二) 17:45的版本&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l288&quot;&gt;第288行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第288行：&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| `51121` | Antigravity OAuth 回调  | ✅ 必须           |&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| `51121` | Antigravity OAuth 回调  | ✅ 必须           |&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| `11451` | 其他 OAuth 回调         | ✅ 必须           |&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| `11451` | 其他 OAuth 回调         | ✅ 必须           |&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:500 常见应用指南 — Application Guides]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key my_wiki:diff:1.41:old-2222:rev-2342:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Liam</name></author>
	</entry>
	<entry>
		<id>https://md5.pw/index.php?title=CLIProxyAPI_Docker_%E9%83%A8%E7%BD%B2%E6%95%99%E7%A8%8B&amp;diff=2222&amp;oldid=prev</id>
		<title>Lusky0：​创建页面，内容为“# CLIProxyAPI Docker 部署教程  &gt; 环境：Debian 13 | Docker Compose | Nginx 反向代理 &gt; 访问域名：`xxx.com`  ------  ## 一、安装系统依赖  ```bash apt update &amp;&amp; apt upgrade -y apt install -y git nginx curl  # 安装 Docker bash &lt;(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 c…”</title>
		<link rel="alternate" type="text/html" href="https://md5.pw/index.php?title=CLIProxyAPI_Docker_%E9%83%A8%E7%BD%B2%E6%95%99%E7%A8%8B&amp;diff=2222&amp;oldid=prev"/>
		<updated>2026-05-09T10:46:07Z</updated>

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