搬瓦工 VPS 部署 One API 大模型 API 密钥管理平台教程
One API 是一款开源的大模型 API 管理和分发平台,它将多个模型提供商的 API 统一封装为 OpenAI 兼容格式,提供统一的接口给下游应用调用。通过 One API,你可以集中管理多个 API 密钥、设置用量配额、实现负载均衡和故障转移。本教程将介绍在搬瓦工 VPS 上部署 One API 的完整流程。
一、One API 核心功能
- 多提供商聚合:统一接入 OpenAI、Azure、Claude、Gemini、本地模型等。
- OpenAI 兼容:所有接口统一为 OpenAI 格式,下游应用无需修改。
- 令牌管理:创建多个令牌,设置不同的权限和配额。
- 负载均衡:同一模型的多个渠道自动轮询和故障转移。
- 用量统计:详细的 Token 使用量和费用统计。
- 用户管理:多用户支持,可分配不同额度。
二、环境要求
- 操作系统:Ubuntu 20.04 或更高版本。
- 内存:至少 512MB。
- Docker:需要 Docker 环境。
部署前需安装 Docker,参考 Docker 安装教程。选购 VPS 请参考 全部方案。
三、Docker 部署
3.1 使用 SQLite(轻量部署)
docker run -d \
--name one-api \
-p 3300:3000 \
-v /opt/one-api/data:/data \
-e TZ=Asia/Shanghai \
--restart unless-stopped \
justsong/one-api:latest
3.2 使用 Docker Compose(推荐)
mkdir -p /opt/one-api && cd /opt/one-api
cat > docker-compose.yml <<'EOF'
version: '3.8'
services:
one-api:
image: justsong/one-api:latest
ports:
- "3300:3000"
volumes:
- ./data:/data
environment:
- TZ=Asia/Shanghai
- SQL_DSN= # 留空使用 SQLite
- REDIS_CONN_STRING= # 留空不使用 Redis
- SESSION_SECRET=your_random_session_secret
restart: unless-stopped
EOF
docker compose up -d
3.3 使用 MySQL 后端(生产环境)
cat > docker-compose-mysql.yml <<'EOF'
version: '3.8'
services:
mysql:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: rootpassword
MYSQL_DATABASE: one_api
MYSQL_USER: oneapi
MYSQL_PASSWORD: oneapi_password
volumes:
- mysql_data:/var/lib/mysql
restart: unless-stopped
one-api:
image: justsong/one-api:latest
ports:
- "3300:3000"
volumes:
- ./data:/data
environment:
- TZ=Asia/Shanghai
- SQL_DSN=oneapi:oneapi_password@tcp(mysql:3306)/one_api
- SESSION_SECRET=your_random_session_secret
depends_on:
- mysql
restart: unless-stopped
volumes:
mysql_data:
EOF
docker compose -f docker-compose-mysql.yml up -d
四、首次配置
访问 http://your-ip:3300,使用默认管理员账号登录:
- 用户名:
root - 密码:
123456
登录后请立即修改默认密码。
五、添加渠道
在管理后台的 Channel(渠道)页面添加上游 API:
- 添加本地模型渠道:类型选择 OpenAI,Base URL 填本地推理服务地址(如
http://host.docker.internal:8080),Key 可填任意值。 - 添加 OpenAI 渠道:类型选择 OpenAI,填入你的 API Key。
- 添加其他渠道:支持 Azure、Claude、Gemini 等,选择对应类型并填入密钥。
每个渠道可以选择它支持的模型列表,同一模型可以配置多个渠道实现负载均衡。
六、创建令牌
在 Token(令牌)页面创建 API 令牌给下游应用使用:
- 设置令牌名称,方便识别用途。
- 设置过期时间和额度限制。
- 选择允许使用的模型。
创建后获得格式为 sk-xxxx 的令牌,在下游应用中作为 API Key 使用。
七、对接下游应用
任何支持 OpenAI API 的应用都可以通过 One API 调用:
# 测试 API 调用
curl http://localhost:3300/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-your-one-api-token" \
-d '{
"model": "gpt-3.5-turbo",
"messages": [{"role": "user", "content": "你好"}]
}'
对接各种聊天界面:
- ChatGPT Next Web:BASE_URL 设为 One API 地址。
- Open WebUI:OPENAI_API_BASE_URL 设为 One API 地址。
- LobeChat:OPENAI_PROXY_URL 设为 One API 地址。
八、Nginx 反向代理
cat > /etc/nginx/sites-available/one-api <<'EOF'
server {
listen 80;
server_name api.yourdomain.com;
location / {
proxy_pass http://127.0.0.1:3300;
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_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_buffering off;
}
}
EOF
ln -s /etc/nginx/sites-available/one-api /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx
九、数据备份
# SQLite 模式备份
cp /opt/one-api/data/one-api.db /opt/backups/one-api-$(date +%Y%m%d).db
# MySQL 模式备份
docker compose exec mysql mysqldump -u oneapi -poneapi_password one_api > /opt/backups/one-api-$(date +%Y%m%d).sql
十、常见问题
渠道测试失败
确认上游 API 地址和密钥正确。对于本地模型,注意 Docker 容器内使用 host.docker.internal 访问宿主机。
请求超时
大模型推理可能需要较长时间。在渠道设置中增加超时时间,Nginx 代理也需要设置足够的超时。
总结
One API 是管理多个大模型 API 密钥的理想工具,通过统一接口简化了下游应用的对接工作。同类工具还有 New API。选购搬瓦工 VPS 请查看 全部方案,使用优惠码 NODESEEK2026 可享受 6.77% 的折扣,购买链接:bwh81.net。