服务器部署指南
本文档详细介绍如何在各种服务器环境中部署 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
账号配置
服务器通常没有浏览器,有以下几种方式添加账号:
方式一:远程登录链接(推荐)
- 在服务器上启动 KiroProxy
- 在本地浏览器打开
http://服务器IP:8080 - 点击「远程登录链接」按钮
- 复制生成的链接,在本地浏览器打开
- 完成 Google/GitHub 授权
- 账号自动添加到服务器
方式二:导入导出
本地电脑:
# 运行 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
- 在本地 Kiro IDE 登录
- 找到
~/.aws/sso/cache/目录下的 JSON 文件 - 复制
accessToken和refreshToken
服务器上:
# 交互式添加
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 服务
- 下载 NSSM: https://nssm.cc/download
- 解压并运行:
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