搭建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. 把框里的内容填进去

4. 填完后,这里会记录,双击打开它

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

购买域名

在雨云这里注册一个域名,选择一个最便宜的就好

域名服务 | 雨云 (rainyun.com)

须知事项

如果你的服务器是海外的,那么就不需要备案,国内的服务器都需要备案,才可以用域名,否则买了之后是用不了的,香港除外,因为香港是特别行政区,香港服务器可以不备案就用

注册ssl证书

打开雨云证书申请SSL 证书中心 | 雨云 (rainyun.com),填入购买的域名,然后解析

像这样分别填入,验证成功获得域名之后就可以删了

接下来配置证书,打开证书,从雨云那里粘贴过来

图形用户界面, 应用程序, Teams

描述已自动生成

反代理

最后一步就是反代理网站,首先先在dns解析解析你的ip

再回到面板创建反代理网站

图形用户界面, 文本, 应用程序, 电子邮件

描述已自动生成

配置https

在这里开启https,选择刚才粘贴到面板的证书,最后点击保存就OK了

图形用户界面, 文本, 应用程序, 电子邮件

描述已自动生成

配置One API外观

默认主题外观是这样的

berry主题,启用方式:启动的时候添加环境变量 THEME=berry 即可

air主题设置,启用方式:启动的时候添加环境变量 THEME=air 即可

主题设置方法

图形用户界面, 应用程序

描述已自动生成

消息盒子

# 暂无消息 #

只显示最新10条未读和已读信息