国内访问ChatGPT,网站搭建
1.一台云服务器,一个域名,域名解析到云服务器。
2.github开源代码下载
https://github.com/Chanzhaoyu/chatgpt-web
3.安装Node node
需要 ^16 || ^18 || ^19
版本
- 1,用宝塔安装nodejs,用于启动后端服务
- 2,在本地电脑安装Node并添加环境变量,用于编译前端服务,如果服务器内存大于4G,则可以跳过该步骤。不然在服务器中编译会报错。 官网地址。
- 检验安装是否成功
C:\Users\win10>node -v
v19.8.1
4.本地和服务器都需安装pnpm
- 1.服务器安装命令
admin@iZt4nbl7gin6la3gtw6b4yZ:~$ sudo npm install pnpm -g
admin@iZt4nbl7gin6la3gtw6b4yZ:~$ pnpm -v
7.30.3
- 2.本地安装命令
C:\Users\win10>npm install pnpm -g
C:\Users\win10>pnpm -v
8.2.0
5.宝塔建立一个空站点。
- 1.将空站点的所有文件都删除。
6.后端操作步骤
- 1.将service文件夹上传到网站根目录
- 2.复制service/.env.example文件,改为.env,并修改.env文件
# OpenAI API Key - https://platform.openai.com/overview
OPENAI_API_KEY=填入自己的API KEY
- 3.进入服务器中的根目录下service文件夹中安装依赖
admin@iZt4nbl7gin6la3gtw6b4yZ:/www/wwwroot/xinjian$ sudo pnpm install
- 4.编译
admin@iZt4nbl7gin6la3gtw6b4yZ:/www/wwwroot/xinjian$ sudo pnpm build
- 运行后端,关闭命令行也能继续运行。
admin@iZt4nbl7gin6la3gtw6b4yZ:/www/wwwroot/xinjian$ sudo nohup pnpm start &
- 检查后端是否在运行
admin@iZt4nbl7gin6la3gtw6b4yZ:/www/wwwroot/xinjian$ sudo lsof -i:3002
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
node 218613 root 19u IPv6 1377637 0t0 TCP *:3002 (LISTEN)
7.前端操作
1.修改本地文件夹根目录下的.env文件
# Glob API URL
VITE_GLOB_API_URL=http://反代域名:3002/
2.cmd进入到根目录下安装依赖
C:\Users\win10\Downloads\chatgpt-web-main>pnpm bootstrap
3.编译,将编译生成的dist
文件夹内的文件复制到你网站服务的根目录下。
C:\Users\win10\Downloads\chatgpt-web-main>pnpm build
8.设置反向代理
新建一个站点,配置反代,马赛克位置填阿里云公网地址。
9.错误解决办法
admin@iZt4nbl7gin6la3gtw6b4yZ:/www/wwwroot/test.chuanwen.top/service$ pnpm start
> chatgpt-web-service@1.0.0 start /www/wwwroot/test.chuanwen.top/service
> esno ./src/index.ts
node:internal/errors:490
ErrorCaptureStackTrace(err);
^
Error [ERR_MODULE_NOT_FOUND]: Cannot find module '/www/wwwroot/test.chuanwen.top/service/node_modules/.pnpm/esno@0.16.3/node_modules/tsx/cli' imported from /www/wwwroot/test.chuanwen.top/service/node_modules/.pnpm/esno@0.16.3/node_modules/esno/esno.js
at new NodeError (node:internal/errors:399:5)
at finalizeResolution (node:internal/modules/esm/resolve:326:11)
at moduleResolve (node:internal/modules/esm/resolve:945:10)
at defaultResolve (node:internal/modules/esm/resolve:1153:11)
at nextResolve (node:internal/modules/esm/loader:163:28)
at ESMLoader.resolve (node:internal/modules/esm/loader:838:30)
at ESMLoader.getModuleJob (node:internal/modules/esm/loader:424:18)
at ESMLoader.import (node:internal/modules/esm/loader:525:22)
at importModuleDynamically (node:internal/modules/cjs/loader:1186:29)
at importModuleDynamicallyWrapper (node:internal/vm/module:429:21) {
code: 'ERR_MODULE_NOT_FOUND'
}
Node.js v18.15.0
ELIFECYCLE Command failed with exit code 1.
解决方法
admin@iZt4nbl7gin6la3gtw6b4yZ:/www/wwwroot/test.chuanwen.top/service$ sudo pnpm update