服务器部署chat2db
环境准备
java 运行 Open JDK 17
Node 运行环境 Node16 Node.js
#java版本
java -version
#openjdk version "17.0.8.1" 2023-08-24
#node版本
node --version
#v18.18.0
新版本需要node V18以上版本
部署运行
- git clone 到本地 or 下载zip包解压
git clone https://github.com/chat2db/Chat2DB.git
- 前端调试
cd Chat2DB/chat2db-client
yarn
yarn run start:web
- 后端调试
cd ../chat2db-server
mvn clean install # 需要安装maven 3.8以上版本
cd chat2db-server/chat2db-server-start/target/
java -jar -Dloader.path=lib -Dchatgpt.apiKey=xxxxx chat2db-server-start.jar # 启动应用 chatgpt.apiKey 需要输入ChatGPT的key,如果不输入无法使用AIGC功能
-Dloader.path 这里需要主要文件路径是否正确
-Dchatgpt.apiKey 替换成自己的apiKey(可以通过关注官方公众号获取)
问题解决及环境配置
前后端测试命令有可能会遇到权限问题,建议加上sudo 或者 sudo su环境下执行
- 更新依赖
E: Failed to fetch http://mirrors.tencentyun.com/ubuntu/pool/main/c/cups/libcups2_2.4.1op1-1ubuntu4.4_amd64.deb 404 Not Found [IP: 169.254.0.3 80]
E: Failed to fetch http://mirrors.tencentyun.com/ubuntu/pool/universe/o/openjdk-17/openjdk-17-jre-headless_17.0.7%2b7%7eus1-0ubuntu1%7e22.04.2_amd64.deb 404 Not Found [IP: 169.254.0.3 80]
E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?
解决
#运行以下命令更新软件包列表
sudo apt-get update
#尝试修复缺失的软件包或依赖项
sudo apt-get install --fix-missing
- jdk17安装
#安装jdk
sudo apt install openjdk-17-jre-headless
- node.js18安装
#使用以下命令安装Node.js版本管理工具n
npm install -g n
#在Node.js官方网站(https://nodejs.org/)上查找最新的稳定版本
#使用以下命令升级Node.js到指定的版
sudo n <version>
#将`<version>`替换为您要升级到的具体版本号
sudo n stable #sudo n v18.18.0
#查看版本是否更新
node --version
#未更新重新打开窗口运行以下命令重置哈希表
hash -r
rehash
- 更新maven版本
#查看版本
mvn --version
#如果不是3.8版本以上版本需要更新到3.8以上
#使用以下命令尝试更新
sudo apt-get update
sudo apt-get install maven
#不适合时maven下载合适版本并自行配置环境变量
tar -xvf <maven_file.tar.gz>
- yarn下载及配置镜像
#查看yarn版本
yarn --version
#没有时下载
sudo apt install yarn
#配置镜像否则下载依赖时容易超时,在根目录下新建.yarnrc文件
#我生效的是在/home/${user}/新建一个.yarnrc文件,并将以下内容写进去
registry "https://registry.npmmirror.com"
sass_binary_site "https://npmmirror.com/mirrors/node-sass/"
phantomjs_cdnurl "http://cnpmjs.org/downloads"
electron_mirror "https://npmmirror.com/mirrors/electron/"
sqlite3_binary_host_mirror "https://foxgis.oss-cn-shanghai.aliyuncs.com/"
profiler_binary_host_mirror "https://npmmirror.com/mirrors/node-inspector/"
chromedriver_cdnurl "https://npmmirror.com/mirrors/chromedriver/"
- 后端缺少classPath报错
java -jar -Dloader.path=lib -Dchatgpt.apiKey=xxxxx chat2db-server-start.jar # 启动应用 chatgpt.apiKey 需要输入ChatGPT的key,如果不输入无法使用AIGC功能
-Dloader.path 检查lib路径是否正确
- 缺少slf4j类
Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
at ai.chat2db.server.start.Application.<clinit>(Application.java:30)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:49)
at org.springframework.boot.loader.Launcher.launch(Launcher.java:95)
at org.springframework.boot.loader.Launcher.launch(Launcher.java:58)
at org.springframework.boot.loader.PropertiesLauncher.main(PropertiesLauncher.java:466)
Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory
#解决 (也有可以能是执行命令时未加上sudo)
sudo apt install libslf4j-java
web展示
前后端服务运行起来后,登录web页面
前端服务中会显示服务端口
║ App listening at: ║
║ > Local: http://localhost:8000 ║
ready - ║ > Network: http://ip:8000 ║
║ ║
║ Now you can open browser with the above addresses↑ ║
祝各位一次成功,fighting