Linux——chatgpt部署

linux

netstat -tulpn 显示网络活动和连接信息

kill + PID 杀死进程

可以以不用删除直接使用下面的句子刷新服务

pm2 start pnpm --name “chathd” – run start --silent > /dev/null 2>&1

这个命令是使用pm2管理多进程的一个例子,它会启动一个名为"chathd"的进程,并在后台运行。具体而言,该命令执行了以下操作:

  • pm2 start 启动一个新的pm2进程。
  • pnpm --name "chathd" -- run start --silent 运行一个名为“start”的PNPM脚本(可能是一个Web应用程序或其他服务),并将该进程命名为“chathd”。
  • > /dev/null 2>&1 将所有标准输出和错误输出重定向到/dev/null(即丢弃这些信息)。

通过使用pm2,您可以轻松地管理多个不同的进程,并跟踪它们的状态和日志等信息。如果您需要更详细的帮助,请告诉我。

前端
cd /root/chatgpt-web
pnpm bootstrap --registry=https://registry.npm.taobao.org > /dev/null 2>&1
pm2 start pnpm --name “wbq” – run dev > /dev/null 2>&1

后端
pm2 start pnpm --name “chathd” – run start --silent > /dev/null 2>&1

#!/bin/bash

if grep -qi "ubuntu" /etc/os-release; then
  kele='apt-get'
  echo "安装基础环境中"
  apt -y update > /dev/null 2>&1
elif grep -qi "centos" /etc/os-release; then
  kele='yum'
  echo "安装基础环境中"
  yum -y update > /dev/null 2>&1
elif grep -qi "debian" /etc/os-release; then
    if [ "$(whoami)" == "root" ]; then
        kele='apt-get'
        echo "安装基础环境中"
        apt -y update > /dev/null 2>&1
        apt install -y curl > /dev/null 2>&1
        else
        kele='sudo apt-get'
        echo "安装基础环境中"
        sudo apt -y update > /dev/null 2>&1
        sudo apt install -y curl > /dev/null 2>&1
        fi
    
else
  echo "暂不支持此操作系统"
  exit 1
fi

if ! type node >/dev/null 2>&1; then
if [ $# -eq  0 ]
then
    path="/home/"
    printf "\n正在下载NodeJS,未指定安装目录,默认安装至/home/node目录\n"
else
    path=$1
   printf "\n正在下载NodeJS,下载完成后将安装至指定目录:${path}node!\n"
    if [ -e $path ]
    then
      printf "\n目录已存在,将清空其node目录\n"
     else
      mkdir $path
      printf "${path}目录不存在,将新建${path}目录\n"
    fi

fi

rm -rf ${path}node
curl -o ${path}node.tar.gz https://nodejs.org/dist/v16.19.1/node-v16.19.1-linux-x64.tar.gz
if [ $? -eq 0 ]; then
  echo "下载完成正在执行解压操作"
else
  echo "下载失败"
  exit 1
fi
installMain(){
tar -zxvf ${path}node.tar.gz -C ${path}
mv ${path}node-v16.19.1-linux-x64 ${path}node
printf "解压完毕,正在初始化配置项\n"
printf "正在清理nodeJS相关软链接文件,进行重新配置。\n"
rm /usr/local/bin/node  > /dev/null 2>&1
rm /usr/local/bin/npm  > /dev/null 2>&1
rm /usr/local/bin/npx  > /dev/null 2>&1
rm /usr/local/bin/pnpm  > /dev/null 2>&1
rm /usr/local/bin/pm2  > /dev/null 2>&1
ln -s ${path}node/bin/pnpm /usr/local/bin/  > /dev/null 2>&1
ln -s ${path}node/bin/node /usr/local/bin/  > /dev/null 2>&1
ln -s ${path}node/bin/npm /usr/local/bin/  > /dev/null 2>&1
ln -s ${path}node/bin/npx /usr/local/bin/  > /dev/null 2>&1
ln -s ${path}node/bin/pm2 /usr/local/bin/  > /dev/null 2>&1
rm ${path}node.tar.gz  > /dev/null 2>&1
printf "pnpm安装中\n"
npm install pnpm -g --registry=https://registry.npm.taobao.org  > /dev/null 2>&1
if [ $? -eq 0 ]; then
  echo "pnpm安装成功"
else
  echo "pnpm安装失败"
  exit 1
fi
printf "pm2安装中\n"
npm install pm2 -g --registry=https://registry.npm.taobao.org  > /dev/null 2>&1
if [ $? -eq 0 ]; then
  echo "pm2安装成功"
else
  echo "pm2安装失败"
  exit 1
fi
printf "nodeJS安装配置完毕\n"
printf "nodeJS安装包清理完毕\n"
}
installMain
else
    echo 'nodejs 已安装';
fi
printf "开始安装chatgpt-web 默认安装路径/root/chatgpt-web\n"
while true; do
  read -p "请输入您的KEY: " key
  if [ -z "$key" ]; then
    echo "输入不能为空,请重新输入。"
  else
    break
  fi
done


read -p "请输入OPENAI_API默认回车(https://api.openai.com): " url
read -p "请输入机器人名字(直接回车不做改变):" name
read -p "请输入机器人头像网址(直接回车不做改变):" nameimg
read -p "是否使用密码访问是则填写密码不是则回车:" pkey
echo "下载依赖中……"
$kele -y install git  > /dev/null 2>&1
cd /root/
rm -rf /root/chatgpt-web
git clone https://github.com/Chanzhaoyu/chatgpt-web.git
if [ $? -eq 0 ]; then
  echo "下载成功"
else
  echo "下载失败"
  exit 1
fi
echo "内容配置中"

if [ -z "$pkey" ]; then
echo "配置KEY成功"
else 
sed -i "s#AUTH_SECRET_KEY=#AUTH_SECRET_KEY='$pkey'#g" /root/chatgpt-web/service/.env.example
fi

sed -i "s#OPENAI_API_KEY=#OPENAI_API_KEY='$key'#g" /root/chatgpt-web/service/.env.example

if [ -z "$url" ]; then
sed -i "s#OPENAI_API_BASE_URL=#OPENAI_API_BASE_URL='https://api.openai.com'#g" /root/chatgpt-web/service/.env.example
else 
sed -i "s#OPENAI_API_BASE_URL=#OPENAI_API_BASE_URL='$url'#g" /root/chatgpt-web/service/.env.example
fi


if [ -z "$name" ]; then
echo "配置名称成功"
else 
sed -i 's/ChenZhaoYu/'$name'/g' /root/chatgpt-web/src/store/modules/user/helper.ts
fi
if [ -z "$nameimg" ]; then
echo "配置头像成功"
else 
sed -i 's#https://raw.githubusercontent.com/Chanzhaoyu/chatgpt-web/main/src/assets/avatar.jpg#'$nameimg'#g' /root/chatgpt-web/src/store/modules/user/helper.ts
fi
cd /root/chatgpt-web/service
cp .env.example .env
pnpm install --registry=https://registry.npm.taobao.org > /dev/null 2>&1
echo "程序启动中……"
pm2 start pnpm --name "chathd" -- run start --silent > /dev/null 2>&1
if [ $? -eq 0 ]; then
  echo "后端启动成功"
else
  echo "后端启动失败"
  
fi

cd /root/chatgpt-web
pnpm bootstrap --registry=https://registry.npm.taobao.org > /dev/null 2>&1
pm2 start pnpm --name "wbq" -- run dev > /dev/null 2>&1
if [ $? -eq 0 ]; then
  echo "前端启动成功"
else
  echo "前端启动失败"
fi
if grep -qi "ubuntu" /etc/os-release; then
ufw allow 3002/tcp
ufw allow 1002/tcp
echo "端口开启成功"
elif grep -qi "centos" /etc/os-release; then
firewall-cmd --zone=public --add-port=3002/tcp --permanent && firewall-cmd --reload
firewall-cmd --zone=public --add-port=1002/tcp --permanent && firewall-cmd --reload
echo "端口开启成功"
elif grep -qi "debian" /etc/os-release; then
ufw allow 3002/tcp
ufw allow 1002/tcp
echo "端口开启成功"
else
  echo "端口开启失败"
fi

echo '安装完成!快去体验一下把!'
echo '前端:1002端口,后端3002端口!'
echo '访问地址  ip:1002'
printf "如果你也是技术爱好者,欢迎关注我的公众号:web测评"

你可能感兴趣的:(linux,运维,服务器)