kiroproxy / kiro_proxy /docs /05-server-deploy.md
KiroProxy User
chore: repo cleanup and maintenance
0edbd7b

服务器部署指南

本文档详细介绍如何在各种服务器环境中部署 Kiro Proxy。

目录


方式一:预编译二进制(推荐)

最简单的方式,不需要安装任何依赖。

Linux (x86_64)

# 下载最新版本
wget https://github.com/petehsu/KiroProxy/releases/latest/download/KiroProxy-1.7.1-linux-x86_64

# 添加执行权限
chmod +x KiroProxy-1.7.1-linux-x86_64

# 运行
./KiroProxy-1.7.1-linux-x86_64

# 指定端口
./KiroProxy-1.7.1-linux-x86_64 8081

使用 curl 下载:

curl -LO https://github.com/petehsu/KiroProxy/releases/latest/download/KiroProxy-1.7.1-linux-x86_64
chmod +x KiroProxy-1.7.1-linux-x86_64
./KiroProxy-1.7.1-linux-x86_64

Debian/Ubuntu 使用 deb 包:

wget https://github.com/petehsu/KiroProxy/releases/latest/download/kiroproxy_1.7.1_amd64.deb
sudo dpkg -i kiroproxy_1.7.1_amd64.deb

# 运行
KiroProxy

Fedora/RHEL/CentOS 使用 rpm 包:

wget https://github.com/petehsu/KiroProxy/releases/latest/download/kiroproxy-1.7.1-1.x86_64.rpm
sudo rpm -i kiroproxy-1.7.1-1.x86_64.rpm

# 运行
KiroProxy

macOS

# Intel Mac
curl -LO https://github.com/petehsu/KiroProxy/releases/latest/download/KiroProxy-1.7.1-macos-x86_64
chmod +x KiroProxy-1.7.1-macos-x86_64
./KiroProxy-1.7.1-macos-x86_64

# 如果提示无法验证开发者,运行:
xattr -d com.apple.quarantine KiroProxy-1.7.1-macos-x86_64

Windows

# PowerShell 下载
Invoke-WebRequest -Uri "https://github.com/petehsu/KiroProxy/releases/latest/download/KiroProxy-1.7.1-windows-x86_64.exe" -OutFile "KiroProxy.exe"

# 运行
.\KiroProxy.exe

# 指定端口
.\KiroProxy.exe 8081

方式二:从源码运行

需要 Python 3.9+ 和 Git。

安装 Git(如果没有)

Ubuntu/Debian:

sudo apt update
sudo apt install git -y

CentOS/RHEL/Fedora:

sudo yum install git -y
# 或
sudo dnf install git -y

macOS:

# 安装 Xcode Command Line Tools
xcode-select --install
# 或使用 Homebrew
brew install git

Windows:https://git-scm.com/download/win 下载安装

安装 Python(如果没有)

Ubuntu/Debian:

sudo apt update
sudo apt install python3 python3-pip python3-venv -y

CentOS/RHEL 8+:

sudo dnf install python39 python39-pip -y

Fedora:

sudo dnf install python3 python3-pip -y

macOS:

brew install python@3.11

Windows:https://www.python.org/downloads/ 下载安装,勾选 "Add to PATH"

克隆并运行

# 克隆项目
git clone https://github.com/petehsu/KiroProxy.git
cd KiroProxy

# 创建虚拟环境(推荐)
python3 -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate

# 安装依赖
pip install -r requirements.txt

# 运行
python run.py

# 指定端口
python run.py 8081

# 或使用 CLI
python run.py serve -p 8081

更新到最新版本

cd KiroProxy
git pull origin main
pip install -r requirements.txt

方式三:Docker 部署

使用 Dockerfile

创建 Dockerfile

FROM python:3.11-slim

WORKDIR /app

# 安装依赖
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

# 复制代码
COPY . .

# 暴露端口
EXPOSE 8080

# 数据目录
VOLUME ["/root/.kiro-proxy"]

# 启动
CMD ["python", "run.py"]

构建并运行:

docker build -t kiro-proxy .
docker run -d -p 8080:8080 -v kiro-data:/root/.kiro-proxy --name kiro-proxy kiro-proxy

Docker Compose

创建 docker-compose.yml

version: '3'
services:
  kiro-proxy:
    build: .
    ports:
      - "8080:8080"
    volumes:
      - kiro-data:/root/.kiro-proxy
    restart: unless-stopped

volumes:
  kiro-data:

运行:

docker-compose up -d

账号配置

服务器通常没有浏览器,有以下几种方式添加账号:

方式一:远程登录链接(推荐)

  1. 在服务器上启动 KiroProxy
  2. 在本地浏览器打开 http://服务器IP:8080
  3. 点击「远程登录链接」按钮
  4. 复制生成的链接,在本地浏览器打开
  5. 完成 Google/GitHub 授权
  6. 账号自动添加到服务器

方式二:导入导出

本地电脑:

# 运行 KiroProxy 并登录
python run.py

# 导出账号
python run.py accounts export -o accounts.json

服务器:

# 上传 accounts.json 到服务器后导入
python run.py accounts import accounts.json

# 或使用 curl
curl -X POST http://localhost:8080/api/accounts/import \
  -H "Content-Type: application/json" \
  -d @accounts.json

方式三:手动添加 Token

  1. 在本地 Kiro IDE 登录
  2. 找到 ~/.aws/sso/cache/ 目录下的 JSON 文件
  3. 复制 accessTokenrefreshToken

服务器上:

# 交互式添加
python run.py accounts add

# 或使用 API
curl -X POST http://localhost:8080/api/accounts/manual \
  -H "Content-Type: application/json" \
  -d '{
    "name": "我的账号",
    "access_token": "eyJ...",
    "refresh_token": "eyJ..."
  }'

方式四:扫描本地 Token

如果服务器上安装了 Kiro IDE 并已登录:

python run.py accounts scan --auto

开机自启配置

Linux (systemd)

创建服务文件 /etc/systemd/system/kiro-proxy.service

[Unit]
Description=Kiro API Proxy
After=network.target

[Service]
Type=simple
User=root
WorkingDirectory=/opt/kiro-proxy
ExecStart=/opt/kiro-proxy/KiroProxy
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target

使用预编译二进制:

# 创建目录并下载
sudo mkdir -p /opt/kiro-proxy
sudo wget -O /opt/kiro-proxy/KiroProxy https://github.com/petehsu/KiroProxy/releases/latest/download/KiroProxy-1.7.1-linux-x86_64
sudo chmod +x /opt/kiro-proxy/KiroProxy

# 创建服务文件
sudo tee /etc/systemd/system/kiro-proxy.service << 'EOF'
[Unit]
Description=Kiro API Proxy
After=network.target

[Service]
Type=simple
User=root
WorkingDirectory=/opt/kiro-proxy
ExecStart=/opt/kiro-proxy/KiroProxy
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target
EOF

# 启用并启动
sudo systemctl daemon-reload
sudo systemctl enable kiro-proxy
sudo systemctl start kiro-proxy

# 查看状态
sudo systemctl status kiro-proxy

# 查看日志
sudo journalctl -u kiro-proxy -f

使用源码运行:

sudo tee /etc/systemd/system/kiro-proxy.service << 'EOF'
[Unit]
Description=Kiro API Proxy
After=network.target

[Service]
Type=simple
User=root
WorkingDirectory=/opt/KiroProxy
ExecStart=/opt/KiroProxy/venv/bin/python run.py
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target
EOF

Linux (使用 screen/tmux)

screen:

# 安装
sudo apt install screen  # Debian/Ubuntu
sudo yum install screen  # CentOS

# 创建会话并运行
screen -S kiro
./KiroProxy

# 按 Ctrl+A D 退出会话(程序继续运行)

# 重新连接
screen -r kiro

tmux:

# 安装
sudo apt install tmux  # Debian/Ubuntu
sudo yum install tmux  # CentOS

# 创建会话并运行
tmux new -s kiro
./KiroProxy

# 按 Ctrl+B D 退出会话

# 重新连接
tmux attach -t kiro

Linux (使用 nohup)

# 后台运行
nohup ./KiroProxy > kiro.log 2>&1 &

# 查看日志
tail -f kiro.log

# 停止
pkill -f KiroProxy

macOS (launchd)

创建 ~/Library/LaunchAgents/com.kiro.proxy.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.kiro.proxy</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/local/bin/KiroProxy</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>KeepAlive</key>
    <true/>
    <key>StandardOutPath</key>
    <string>/tmp/kiro-proxy.log</string>
    <key>StandardErrorPath</key>
    <string>/tmp/kiro-proxy.err</string>
</dict>
</plist>
# 加载服务
launchctl load ~/Library/LaunchAgents/com.kiro.proxy.plist

# 启动
launchctl start com.kiro.proxy

# 停止
launchctl stop com.kiro.proxy

# 卸载
launchctl unload ~/Library/LaunchAgents/com.kiro.proxy.plist

Windows (任务计划程序)

方法一:使用 PowerShell 创建计划任务

# 创建计划任务(开机自启)
$action = New-ScheduledTaskAction -Execute "C:\KiroProxy\KiroProxy.exe"
$trigger = New-ScheduledTaskTrigger -AtStartup
$principal = New-ScheduledTaskPrincipal -UserId "SYSTEM" -LogonType ServiceAccount
Register-ScheduledTask -TaskName "KiroProxy" -Action $action -Trigger $trigger -Principal $principal

# 立即启动
Start-ScheduledTask -TaskName "KiroProxy"

# 停止
Stop-ScheduledTask -TaskName "KiroProxy"

# 删除
Unregister-ScheduledTask -TaskName "KiroProxy" -Confirm:$false

方法二:使用 NSSM 创建 Windows 服务

  1. 下载 NSSM: https://nssm.cc/download
  2. 解压并运行:
nssm install KiroProxy C:\KiroProxy\KiroProxy.exe
nssm start KiroProxy

# 停止
nssm stop KiroProxy

# 删除
nssm remove KiroProxy confirm

方法三:创建 VBS 启动脚本

创建 start-kiro.vbs

Set WshShell = CreateObject("WScript.Shell")
WshShell.Run "C:\KiroProxy\KiroProxy.exe", 0, False

将此文件放入启动文件夹:shell:startup


反向代理配置

Nginx

server {
    listen 80;
    server_name kiro.example.com;

    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        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 86400;
    }
}

启用 HTTPS(使用 Certbot):

sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d kiro.example.com

Caddy

kiro.example.com {
    reverse_proxy localhost:8080
}

Caddy 会自动申请和续期 HTTPS 证书。

Apache

<VirtualHost *:80>
    ServerName kiro.example.com
    
    ProxyPreserveHost On
    ProxyPass / http://127.0.0.1:8080/
    ProxyPassReverse / http://127.0.0.1:8080/
    
    # SSE 支持
    SetEnv proxy-sendchunked 1
</VirtualHost>

常见问题

端口被占用

# 查看端口占用
lsof -i :8080  # Linux/macOS
netstat -ano | findstr :8080  # Windows

# 使用其他端口
./KiroProxy 8081

防火墙配置

Ubuntu/Debian (ufw):

sudo ufw allow 8080/tcp

CentOS/RHEL (firewalld):

sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --reload

Windows:

New-NetFirewallRule -DisplayName "KiroProxy" -Direction Inbound -Port 8080 -Protocol TCP -Action Allow

权限问题

# 如果遇到权限问题
chmod +x KiroProxy
sudo chown -R $USER:$USER /opt/kiro-proxy

查看日志

# systemd
sudo journalctl -u kiro-proxy -f

# 直接运行时
./KiroProxy 2>&1 | tee kiro.log

更新版本

预编译二进制:

# 停止服务
sudo systemctl stop kiro-proxy

# 下载新版本
sudo wget -O /opt/kiro-proxy/KiroProxy https://github.com/petehsu/KiroProxy/releases/latest/download/KiroProxy-1.7.1-linux-x86_64
sudo chmod +x /opt/kiro-proxy/KiroProxy

# 启动服务
sudo systemctl start kiro-proxy

源码方式:

cd /opt/KiroProxy
git pull origin main
pip install -r requirements.txt
sudo systemctl restart kiro-proxy