搭建One API 管理多平台key集于一身
支持模型
OpenAI 接口管理 & 分发系统,支持 Azure、Anthropic Claude、Google PaLM 2 & Gemini、智谱 ChatGLM、百度文心一言、讯飞星火认知、阿里通义千问、360 智脑以及腾讯混元,可用于二次分发管理 key,仅单可执行文件,已打包好 Docker 镜像,一键部署,开箱即用.
为什么你会需要?
国内中转API有很多,贵的便宜的都有,可以放在one api 上一起用,同时支持很多国产模型,真正实现一个key调用天下所有模型
正式搭建
基于 Docker 进行部署
# 使用 SQLite 的部署命令:
docker run --name one-api -d --restart always -p 3000:3000 -e TZ=Asia/Shanghai -v /home/ubuntu/data/one-api:/data justsong/one-api
# 使用 MySQL 的部署命令,在上面的基础上添加 -e SQL_DSN="root:123456@tcp(localhost:3306)/oneapi",请自行修改数据库连接参数,不清楚如何修改请参见下面环境变量一节。
# 例如:
docker run --name one-api -d --restart always -p 3000:3000 -e SQL_DSN="root:123456@tcp(localhost:3306)/oneapi" -e TZ=Asia/Shanghai -v /home/ubuntu/data/one-api:/data justsong/one-api
其中,-p 3000:3000 中的第一个 3000 是宿主机的端口,可以根据需要进行修改。
数据和日志将会保存在宿主机的 /home/ubuntu/data/one-api 目录,请确保该目录存在且具有写入权限,或者更改为合适的目录。
如果启动失败,请添加 --privileged=true,具体参考 #482 。
如果上面的镜像无法拉取,可以尝试使用 GitHub 的 Docker 镜像,将上面的 justsong/one-api 替换为 ghcr.io/songquanpeng/one-api 即可。
如果你的并发量较大,务必设置 SQL_DSN,详见下面环境变量一节。
更新命令:
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower -cR
Nginx 的参考配置:
server{
server_name openai.justsong.cn; # 请根据实际情况修改你的域名
location / {
client_max_body_size 64m;
proxy_http_version 1.1;
proxy_pass http://localhost:3000; # 请根据实际情况修改你的端口
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_cache_bypass $http_upgrade;
proxy_set_header Accept-Encoding gzip;
proxy_read_timeout 300s; # GPT-4 需要较长的超时时间,请自行调整
}
}
之后使用 Let's Encrypt 的 certbot 配置 HTTPS:
# Ubuntu 安装 certbot:
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
# 生成证书 & 修改 Nginx 配置
sudo certbot --nginx
# 根据指示进行操作
# 重启 Nginx
sudo service nginx restart
初始账号用户名为 root,密码为 123456。
基于 Docker Compose 进行部署
仅启动方式不同,参数设置不变,请参考基于 Docker 部署部分
目前支持 MySQL 启动,数据存储在 ./data/mysql 文件夹内
docker-compose up -d
查看部署状态
docker-compose ps
手动部署
从 GitHub Releases 下载可执行文件或者从源码编译:
git clone https://github.com/songquanpeng/one-api.git
# 构建前端
cd one-api/web/default
npm install
npm run build
# 构建后端
cd ../..
go mod download
go build -ldflags "-s -w" -o one-api
运行:
chmod u+x one-api
./one-api --port 3000 --log-dir ./logs
访问 http://localhost:3000/ 并登录。初始账号用户名为 root,密码为 123456。
傻瓜式部署(萌新推荐
购买服务器
建议买雨云的服务器https://app.rainyun.com,这里就建议按照图中选择,系统自己选下面安装命令有的(推荐Ubuntu系统)
等待服务器创建好了后,记住这3个值
需要准备的软件
官方下载地址:https://www.hostbuf.com/
开始搭建
1. 打开软件,点击箭头所示按钮
2. 会跳出个窗口,接着点击箭头所示按钮,点击SSH链接
3. 把框里的内容填进去
5. 即可链接成功
安装1panel
RedHat / CentOS系统安装指令
curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && sh quick_start.sh
Ubuntu系统安装指令
curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && sudo bash quick_start.sh
Debian系统安装指令
curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && bash quick_start.sh
安装成功后,控制台会打印面板访问信息,可通过浏览器访问 1Panel:
http://目标服务器 IP 地址:目标端口/安全入口
如果使用的是云服务器,请至安全组开放目标端口。
ssh 登录 1Panel 服务器后,执行 1pctl user-info 命令可获取安全入口(entrance)
下载oneapi
部署网站
记住你的ip地址+端口号,例如http:127.0.0.1:3000
购买域名
在雨云这里注册一个域名,选择一个最便宜的就好
须知事项
如果你的服务器是海外的,那么就不需要备案,国内的服务器都需要备案,才可以用域名,否则买了之后是用不了的,香港除外,因为香港是特别行政区,香港服务器可以不备案就用
注册ssl证书
打开雨云证书申请SSL 证书中心 | 雨云 (rainyun.com),填入购买的域名,然后解析
像这样分别填入,验证成功获得域名之后就可以删了
接下来配置证书,打开证书,从雨云那里粘贴过来
反代理
最后一步就是反代理网站,首先先在dns解析解析你的ip
再回到面板创建反代理网站
配置https
在这里开启https,选择刚才粘贴到面板的证书,最后点击保存就OK了
配置One API外观
默认主题外观是这样的
berry主题,启用方式:启动的时候添加环境变量 THEME=berry 即可
air主题设置,启用方式:启动的时候添加环境变量 THEME=air 即可