在serv00中部署gptload
项目原地址:
此项目是一个基于newapi改造的智能api轮询系统,具备负载均衡和报错重试的功能,在github上拥有2k个star。
由于serv00独特的freebsd二进制系统,不能像ubantu/dabian那样通过docker(compose)进行安装,需要采取二进制源码编译,基本方法如下:
克隆并进行构建:
git clone https://github.com/tbphp/gpt-load.git
cd gpt-load
go mod tidy
创建和修改配置:
cp .env.example .env
#随后使用nano/vim编辑器进行编辑.env文件
nano .env
主要是修改登录后台的认证key和放行的端口为在panel后台中放行的TCP端口(这里以6308为例):
在安装完npm,golang后启动程序,程序需要构建一段时间,大约7分钟:
make run
随后再浏览器中输入网址http://sx.serv00.com:6083
,其中sx需要根据serv00的版本号进行调整,6083也要根据自己所设定的放行端口进行修改。登陆界面如图所示:
输入预设的认证密码之后即可食用。
使用PM2进行进程保活
由于serv00虚拟机的特殊性,会不定时关闭某些进程,因此这里采用pm2的方式进行gpt-load的保活.
首先创建一个用于存放全局包的目录:
mkdir ~/.npm-global
# 在 .npm-global 文件夹内,创建 bin 和 lib 两个子文件夹
mkdir ~/.npm-global/bin
mkdir ~/.npm-global/lib
设置npm的全局安装路径:
npm config set prefix '~/.npm-global'
修改系统环境变量,由于其shell可能是csh或者sh,因此需要对两种配置都进行修改:
编辑profile文件:
nano ~/.profile
在文件的最后加上两行系统环境路径:
export PATH=~/.npm-global/bin:$PATH
随后修改./cshrc文件:
nano ./cshrc
在配置文件的最后加上一行:
set path = (~/.npm-global/bin $path)
执行以下命令,使环境变量重新生效:
source ~/.profile
source ~/.cshrc
在目录下安装pm2:
npm install pm2 -g
随后再cd到gpt-load文件夹下,找到main.go文件,在同级文件夹下使用go语言编译总程序:
go build -o gpt-load-server .
当再次ls时,目录下出现gpt-load-server时表示编译成功。随后使用pm2进行保活:
pm2 start ./gpt-load-server --name gpt-load