说明
本文档使用单台服务器进行部署,配置如下:
系统 |
centos7.6 |
内网IP |
192.168.43.10 |
外网IP |
42.194.187.243 |
域名 |
www.boxim.online |
- 本文档中所涉及的IP和域名,请替换成自己的
- 本文档的所涉及的密码均已脱敏(语雀文档官方要求,否则无法发布),建议各位搭建时,自行重新生成每个组件的密码
- 本文档采用的是命令行的方式进行部署,如果希望使用宝塔部署,可以参考这位小伙伴写的文档:https://blog.ovim.cn/1.html
1. 准备工作
1.1. 服务器
购买(云)服务器,并开放以下端口:
端口 |
协议 |
端口占用组件 |
80 |
tcp |
nginx |
443 |
tcp |
nginx |
3306 |
tcp |
mysql |
6379 |
tcp |
redis |
9001 |
tcp |
minio |
9002 |
tcp |
minio |
3478 |
tcp/udp |
coturn |
5349 |
tcp |
coturn |
40000-65535 |
udp |
coturn |
注意:腾讯云服务器开放范围端口是用”,”分隔,所以最后一条开放端口应配置:40000,65535
1.2. ssl证书
注:非必须,如果需要使用语音和视频功能,则必须要有ssl证书,可以选购买或自签的方式获取证书
1.2.1. 购买证书
可以直接选择向云厂商购买ssl证书,然后将证书放置/opt/ssl目录下,将私钥命名为server.key,证书命名为server.crt
1.2.2. 自签证书(浏览器会有警告)
自签证书流程:
1.3. 域名
注:非必须,但如果要上线微信小程序,则必须要有域名
域名可向云厂商购买,大陆的服务器需要进行域名备案才可正常使用。
2. 环境安装
2.1. 安装必要工具
2.2. 安装jdk17
2.2.1. 安装
2.2.2. 配置环境变量
在/etc/profile最下方添加:
2.2.3. 刷新环境变量
2.3. 安装mysql8.0
2.3.1. 安装
2.3.2. 修改密码
2.3.3. 开启远程访问
2.3.4. 执行初始化脚本
在mysql中新建一个名为im_platform的数据库,然后执行db目录下的im-platform.sql
2.4. 安装redis6.2
2.4.1. 下载并安装
2.4.2. 修改配置
2.4.3. 安装服务
在/etc/systemd/system下创建redis.service
2.4.4. 启动
2.5. 安装minio
2.5.1. 下载并安装
2.5.2. 创建配置文件
在/opt/minio下创建minio.conf:
2.5.3. 安装服务
在/etc/systemd/system下创建minio.service
2.5.4. 启动服务
2.6. 安装nginx
2.6.1. 下载并安装
下载地址:https://nginx.org/en/download.html,下载1.22.1版本,拷贝至服务器的/usr/local/data目录
2.6.2. 修改配置
2.6.3. 安装服务
在/etc/systemd/system下创建nginx.service
2.6.4. 启动服务
2.7. 安装coturn(视频聊天)
说明:
- 如果不需要音视频通话功能,无需部署coturn
- 如果在外网使用通话功能,必须部署coturn,且服务器必须要有公网ip
- 如果是在内网使用,且所有用户都在同一网段,无需部署coturn
- 如果是在内网使用,且不止一个网段,这种情况理论上只要选择一个所有用户都能访问到的服务器部署coturn即可,建议直接和nginx部署在同一台服务器(这种情况作者未测试过,但理论上是没问题的)
2.7.1. 下载
下载并拷贝至服务器的/usr/local/data目录
2.7.2. 编译安装
2.7.3. 创建用户
2.7.4. 生成证书
2.7.5. 修改配置
2.7.6. 启动
2.7.7. 验证
检测生效网站:点这里,出现done提示表示成功
3. 部署服务
3.1. 部署后端服务
3.1.1. 修改im-platfrom配置文件
im-platfrom的resource目录修改application-prod.yml文件
3.1.2. 修改im-server配置文件
im-server的resource目录修改application-prod.yml文件
3.1.3. 编译
进入盒子IM代码根目录,执行
将生成的im-platform.jar和im-server.jar拷贝到服务器的/data/boxim目录
3.1.4. 启动
3.2. 部署web端
修改im-web的配置文件.env.production (主要是将www.boxim.online换成自己的域名或ip)
这里注意:如有您没有部署ssl证书,https需要改成http,wss需要改成ws,很多小伙伴都栽在这里
在im-web目录进入命令行,执行打包命令:
将生成的dist目录压缩,拷贝至服务器的/opt/nginx目录,执行命令:
web部署完成,访问地址:
3.3. 部署h5端
修改im-uiapp的.env.js,将ENV变量修改为“PROD”,并将url中的www.boxim.online换成自己的域名或IP:
通过hbuilderx打开im-uniapp目录,选择项目,然后选择菜单:发行->网站PC-web或H5
输入域名,点击“发行”:
将导出的h5目录(新版的hbuilderx也可能是web目录)压缩,拷贝至服务器的/opt/nginx目录并解压,修改包名为im-h5
h5部署完成,访问地址:
3.4. 部署微信小程序
注:打包小程序前需安装注册账号并获取appid
同样的方式修改im-uiapp的.env.js,可参考H5打包
通过hbuilderx打开im-uniapp目录,选择项目,然后选择菜单:发行->自定义发行->开发环境-微信小程序,填入您的appid后,点击”发行按钮”:
点击”上传”,填写版本号和备注信息后,然后上传
登录微信公众平台,提交审核:
提交后等待审核通过,然后发布审核版本即可。
注:从作者发布小程序的经历来看,小程序的审核不通过的概率非常高,但是理由却非常不固定,所以千万不要一次不通过就放弃,失败后进行申诉或者多提交几次,说不定就过了。
3.5. 打包安卓APP
同样的方式修改im-uiapp的.env.js,可参考H5打包
打包安卓APP前需要先生成证书,打开cmd执行:
输入密码和相关的信息后,会在当前目录生成证书文件boxim.keystore,然后在hubilderx选择菜单 发行->原生APP-云打包:
按图中填写信息,完成后右下角点击”打包”,打包生成后,控制台会打印apk下载链接:
通过链接下载,然后后发布到应用市场即可
3.6. 打包IOS APP(略)
4. 部署后台管理
4.1. 部署后台服务
4.1.1. 下载代码
下载后台管理代码,开源版地址:https://gitee.com/bluexsx/box-im-admin
4.1.2. 创建数据库
在mysql中新建一个名为im_admin的数据库,然后执行代码中db目录下的im-admin.sql
4.1.3. 修改im-admin配置文件
在ruoyi-admin包里面的application-prod.yml
4.1.4. 编译
进入盒子IM管理端代码根目录,执行
将生成的im-admin.jar拷贝到服务器的/data/boxim目录
4.1.5. 启动
4.2. 部署后台web端
修改im-admin-ui里面的.env.production,主要是替换VITE_APP_BASE_API的域名:
在im-admin-ui目录进入命令行,执行打包命令:
将生成的dist目录压缩,拷贝至服务器的/opt/nginx目录,执行命令:
暂无评论内容