293 lines
11 KiB
Markdown
293 lines
11 KiB
Markdown
# ChatMASTER 部署运行教程
|
||
|
||
> 若需要本地运行及开发建议您参考[运行](#运行适用于windowsmaclinux)教程,若您是小白只想直接使用,可以查看[一键部署](#docker-compose-一键部署推荐)
|
||
- 后台管理系统默认密码为admin 123456
|
||
- 客户端账号密码自行注册,登录即注册
|
||
|
||
## 目录
|
||
- 安装Docker
|
||
- Docker Compose [一键部署](#docker-compose-一键部署推荐)(推荐)
|
||
- docker[部署](#docker部署)
|
||
- 手动[部署](#手动部署)
|
||
- 本地[运行](#运行适用于windowsmaclinux)
|
||
|
||
## 安装Docker
|
||
|
||
> 数据库名称chat_master,账号chat_master 密码chat_master
|
||
|
||
### 安装Docker(如已安装则跳过,可能会出现镜像源无法拉取问题自行百度)
|
||
|
||
```shell
|
||
# 设置仓库
|
||
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
|
||
|
||
# 设置稳定的仓库
|
||
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
|
||
|
||
# 安装Docker
|
||
sudo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin
|
||
|
||
# 启动Docker
|
||
sudo systemctl start docker
|
||
|
||
# 开机默认启动
|
||
systemctl enable docker
|
||
|
||
```
|
||
> 定位自己的工作目录,如/usr/local/data/,如没有data文件夹,可创建。
|
||
```shell
|
||
# 创建目录
|
||
mkdir -p /usr/local/data/
|
||
# 进入文件夹
|
||
cd /usr/local/data/
|
||
```
|
||
|
||
## Docker Compose 一键部署(推荐)
|
||
|
||
### 安装Docker
|
||
- [安装教程](#docker部署)
|
||
|
||
### 安装DockerCompose
|
||
> 安装教程以Linux系统为例,Windows系统可下载DockerDesktop安装包,并安装。
|
||
|
||
- 根据自己的系统下载对应版本的DockerCompose压缩包,如下面命令不成功,可选择手动下载。[下载地址](https://github.com/docker/compose/releases)
|
||
```shell
|
||
sudo curl -L "https://github.com/docker/compose/releases/download/v2.34.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
|
||
```
|
||
- 如手动下载,将文件上传到/usr/local/bin 目录,并重命名
|
||
```shell
|
||
mv docker-compose-linux-x86_64 docker-compose
|
||
```
|
||
- 应用可执行权限
|
||
```shell
|
||
sudo chmod +x /usr/local/bin/docker-compose
|
||
```
|
||
|
||
- 测试是否安装成功
|
||
```shell
|
||
docker-compose --version
|
||
[root@localhost ~]# docker-compose --version
|
||
Docker Compose version v2.34.0
|
||
```
|
||
|
||
### 运行DockerCompose
|
||
|
||
- 下载 Chat-Master代码
|
||
> 如有需要可自行修改/server/application.yml及nginx/nginx.conf配置文件
|
||
|
||
```shell
|
||
git clone https://gitee.com/panday94/chat-master
|
||
```
|
||
|
||
- 启动
|
||
|
||
```shell
|
||
cd deploy/
|
||
# 启动docker-compose
|
||
docker-compose up -d
|
||
```
|
||
|
||
### 访问
|
||
|
||
- 打开ChatMaster客户端,访问地址:http://你的ip
|
||
|
||
- 打开ChatMaster管理端,访问地址:http://你的ip/admin
|
||
|
||
## Docker部署
|
||
|
||
### 安装Docker For Mysql5.7 或自行安装
|
||
|
||
> 1、需要将./mysql/conf/my.cnf 配置文件 上传到自己服务器/usr/local/data/mysql/conf/目录下。 该目录在创建容器的时候可自行修改,ChatMaster数据库默认账号密码都为`chat_master`,请勿擅自修改,否则会导致服务连接不上数据库。
|
||
|
||
> 2、将./mysql/init.d/ 下的sql文件上传到自己服务器/usr/local/data/mysql/init.d/目录下。
|
||
|
||
```shell
|
||
# 拉取Mysql镜像
|
||
docker pull mysql:5.7
|
||
|
||
# 创建容器
|
||
docker run --network="host" -p 3306:3306 --name mysql -v /usr/local/data/mysql/conf:/etc/mysql/conf.d -v /usr/local/data/mysql/logs:/logs -v /usr/local/data/mysql/data:/var/lib/mysql -v /usr/local/data/mysql/init.d:/docker-entrypoint-initdb.d -e MYSQL_ROOT_PASSWORD=12345678 -e MYSQL_DATABASE=chat_master -e MYSQL_USER=chat_master -e MYSQL_PASSWORD=chat_master -d mysql:5.7
|
||
|
||
# 如需mysql远程连接,需要进入Mysql容器内部
|
||
[root@bogon /]# docker exec -it 容器id /bin/bash
|
||
|
||
root@74442a33569c:/# mysql -uroot -p
|
||
# 允许远程连接
|
||
mysql> grant all privileges on *.* to 'root'@'%';
|
||
# 刷新权限
|
||
flush privileges;
|
||
```
|
||
|
||
### 安装Docker For Redis 或自行安装
|
||
|
||
> 需要将./redis/conf/redis.conf 配置文件 上传到自己服务器/usr/local/data/redis/conf/目录下。 该目录在创建容器的时候可自行修改,ChatMaster服务默认未设置redis密码,如需需要设置密码,请自行修改redis.conf文件中的requirepass配置和重新打包。
|
||
|
||
```shell
|
||
# 拉取Redis镜像
|
||
docker pull redis:latest
|
||
|
||
# 创建容器
|
||
docker run --network="host" -d --name redis --restart always -p 6379:6379 -v /usr/local/data/redis/conf:/etc/redis -v /usr/local/data/redis/data:/data redis redis-server /etc/redis/redis.conf --appendonly yes
|
||
```
|
||
|
||
### 运行ChatMaster服务端
|
||
> 服务端版本号:1.1.9,
|
||
|
||
```shell
|
||
# 拉取Chat-Master服务端镜像
|
||
docker pull registry.cn-beijing.aliyuncs.com/chat-master/master-server:[服务端版本号]
|
||
# 运行Chat-Master服务端容器
|
||
# SPRING_PROFILES_ACTIVE变量可切换服务端的配置文件启动,如dev、test、prod
|
||
docker run --network="host" --name chat-master-server --restart always -p 8088:8088 -d registry.cn-beijing.aliyuncs.com/chat-master/master-server:1.1.9 --SPRING_PROFILES_ACTIVE=dev
|
||
```
|
||
|
||
### 运行ChatMaster客户端
|
||
> 客户端版本号:1.1.9
|
||
|
||
```shell
|
||
# 拉取Chat-Master服务端镜像
|
||
docker pull registry.cn-beijing.aliyuncs.com/chat-master/master-nginx:[客户端版本号]
|
||
|
||
# 简易版启动
|
||
docker run --network="host" --name chat-master-nginx --restart always -p 80:80 -p 443:443 -d registry.cn-beijing.aliyuncs.com/chat-master/master-nginx:1.1.9
|
||
|
||
# 如需自定义nginx配置,请自行修改./nginx/nginx.conf文件,并上传到自己服务器/usr/local/data/nginx/conf/目录下。如域名配置,自行修改nginx.conf文件中的server_name配置。
|
||
# 如需自定义证书,请自行修改./nginx/cert/目录文件,并上传到自己服务器/usr/local/data/nginx/cert/目录下。
|
||
# 如需更换前端打包文件,请将打包好的web端及admin内容分别上传到自己服务器'/usr/local/data/nginx/html/chat-master/'及'/usr/local/data/nginx/html/chat-master/admin/'目录下。
|
||
docker run --network="host" --name chat-master-nginx -p 80:80 -p 443:443 -v /usr/local/data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /usr/local/data/nginx/cert:/etc/nginx/cert -v /usr/local/data/nginx/html:/usr/local/html -d registry.cn-beijing.aliyuncs.com/chat-master/master-nginx:1.1.9
|
||
```
|
||
> 如四个容器全都运行成功如下所示,试着打开以下地址确认是否部署成功,如已成功访问,即代表部署成功。
|
||
|
||
```shell
|
||
$ docker ps
|
||
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
|
||
a13d54bbff81 registry.cn-beijing.aliyuncs.com/chat-master/master-nginx:1.1.9 "/docker-entrypoint.…" 13 minutes ago Up 13 minutes chat-master-nginx
|
||
e44ba185b8c0 registry.cn-beijing.aliyuncs.com/chat-master/master-server:1.1.9 "java -Djava.securit…" 6 hours ago Up 6 hours chat-master-server
|
||
a684fe52d5c6 mysql:5.7 "docker-entrypoint.s…" 20 hours ago Up 20 hours mysql
|
||
1ed1557351cd redis "docker-entrypoint.s…" 21 hours ago Up 21 hours redis
|
||
```
|
||
|
||
- 打开ChatMaster客户端,访问地址:http://你的ip
|
||
|
||
- 打开ChatMaster管理端,访问地址:http://你的ip/admin
|
||
|
||
## 手动部署
|
||
|
||
### 打包服务端(chat-master-server)
|
||
> 使用idea中Maven插件打包 或 maven clean package 手动打包
|
||
|
||
### 打包管理端(chat-master-admin)
|
||
```shell
|
||
# 构建测试环境
|
||
cp .env.development .env.staging
|
||
# 修改测试环境配置信息
|
||
npm run build:stage
|
||
|
||
# 构建生产环境
|
||
cp .env.development .env.production
|
||
# 修改生成环境配置信息
|
||
npm run build:prod
|
||
```
|
||
|
||
### 打包客户端(chat-master-web)
|
||
```shell
|
||
# 构建生产环境
|
||
# 注意:需切换至node 18版本 并安装pnpm
|
||
cp .env.development .env.production
|
||
# 修改生成环境配置信息
|
||
pnpm build:prod
|
||
```
|
||
|
||
## 运行(适用于windows/mac/linux)
|
||
|
||
### 运行服务端(chat-master-server)
|
||
- 环境安装(选择下方的下载链接或自行百度下载)
|
||
- Jdk1.8([Windows](https://www.oracle.com/java/technologies/downloads/#java8) / [Linux、Mac](https://www.oracle.com/java/technologies/downloads/#java8))
|
||
- Mysql5.7([Windows](https://dev.mysql.com/downloads/installer/) / [Linux、Mac](https://dev.mysql.com/downloads/mysql/5.7.html))
|
||
- Redis([Windows](https://github.com/microsoftarchive/redis/releases) / [Linux、Mac](https://redis.io/download))
|
||
- Maven([Windows](https://maven.apache.org/download.cgi) / [Linux、Mac](https://maven.apache.org/download.cgi))
|
||
|
||
- 运行
|
||
|
||
1. idea导入chat-master项目,请更换spring.profiles.active为dev
|
||
2. 使用navicat或其他数据库管理工具导入../chat-master-server/sql/chat_master全量sql文件,在gpt_model配置可运行模型信息,在gpt_openkey配置模型密钥信息
|
||
3. 版本更新时候需执行doc/sql/update.sql或者查看版本更新记录获取最新sql
|
||
4. 更改application-dev中redis连接和mysql连接配置
|
||
5. 启动ChatApplication中main方法
|
||
|
||
- 主要实现
|
||
- com.master.chat.api.config.InitBean 初始化模型
|
||
- com.master.chat.llm.base.service.LLMService 模型接口实现
|
||
|
||
### 运行管理端(chat-master-admin)
|
||
> 如不更改配置无需运行管理端,修改密钥可在mysql数据库直接更改。
|
||
|
||
> node 建议18,建议使用nvm 安装node版本,可进行切换多版本控制,[安装nvm](https://github.com/nvm-sh/nvm) 或直接安装node,[安装node](https://nodejs.org/zh-cn/download)
|
||
|
||
```shell
|
||
# 使用nvm安装node
|
||
nvm install 18
|
||
|
||
# 切换不同node版本
|
||
nvm use 18
|
||
|
||
# 前提已安装好node,进入目录
|
||
cd chat-master-admin
|
||
|
||
# 安装依赖
|
||
npm i
|
||
|
||
# 运行管理端项目
|
||
npm run dev
|
||
```
|
||
|
||
### 运行客户端(chat-master-web)
|
||
> 因客户端使用vue3,node 需要 `^14 || ^16 || ^18 || ^19` 版本(`node >= 14` 需要安装 [fetch polyfill](https://github.com/developit/unfetch#usage-as-a-polyfill)),建议使用nvm 安装node版本,可进行切换多版本控制,[安装nvm](https://github.com/nvm-sh/nvm) 或直接安装node,[安装node](https://nodejs.org/zh-cn/download)
|
||
|
||
> 避免出现不必要问题,建议使用 node 18
|
||
|
||
```shell
|
||
# 使用nvm安装node
|
||
nvm install 18
|
||
|
||
# 切换不同node版本
|
||
nvm use 18
|
||
|
||
# 前提已安装好node,进入目录
|
||
cd chat-master-web
|
||
|
||
# 如果你没有安装过 `pnpm`
|
||
npm install pnpm -g
|
||
```
|
||
- pnpm和npm 命令二选一, 安装pnpm时
|
||
|
||
```shell
|
||
# 安装依赖
|
||
pnpm bootstrap
|
||
|
||
# 运行客户端项目
|
||
pnpm dev
|
||
```
|
||
- 没安装pnpm时
|
||
|
||
```shell
|
||
# 安装依赖
|
||
npm i
|
||
|
||
# 运行客户端项目
|
||
npm run dev
|
||
```
|
||
|
||
## 防止爬虫抓取
|
||
|
||
**nginx**
|
||
|
||
将下面配置填入nginx配置文件中,可以参考 `docker-compose/nginx/nginx.conf` 文件中添加反爬虫的方法
|
||
|
||
```
|
||
# 防止爬虫抓取
|
||
if ($http_user_agent ~* "360Spider|JikeSpider|Spider|spider|bot|Bot|2345Explorer|curl|wget|webZIP|qihoobot|Baiduspider|Googlebot|Googlebot-Mobile|Googlebot-Image|Mediapartners-Google|Adsbot-Google|Feedfetcher-Google|Yahoo! Slurp|Yahoo! Slurp China|YoudaoBot|Sosospider|Sogou spider|Sogou web spider|MSNBot|ia_archiver|Tomato Bot|NSPlayer|bingbot")
|
||
{
|
||
return 403;
|
||
}
|
||
``` |