快速部署
准备工作
JDK >= 1.8 (推荐1.8版本)
Mysql >= 5.7.0 (推荐5.7版本)
Redis >= 3.0
Maven >= 3.0
Node >= 12
ZLMediaKit 建议使用稳定版本
修改配置文件
- 修改application-druid.yml下的mysql连接配置
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driverClassName: com.mysql.cj.jdbc.Driver
druid:
# 主库数据源
master:
url: jdbc:mysql://127.0.0.1:3306/ry-wvp?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&rewriteBatchedStatements=true&allowMultiQueries=true
username: root # 数据源账号
password: root # 数据源密码
- 修改application.yml下的redis配置、zlm配置、isup配置
spring:
redis:
# 地址
host: localhost
# 端口,默认为6379
port: 6379
# 数据库索引
database: 8
# 密码
password:
# 连接超时时间
timeout: 10s
# 作为28181服务器的配置
sip:
# [可选] 28181服务监听的端口
port: 8116
# 根据国标6.1.2中规定,domain宜采用ID统一编码的前十位编码。国标附录D中定义前8位为中心编码(由省级、市级、区级、基层编号组成,参照GB/T 2260-2007)
# 后两位为行业编码,定义参照附录D.3
# 3701020049标识山东济南历下区 信息行业接入
# [可选]
domain: 4101050000
# [可选]
id: 41010500002000000001
# [可选] 默认设备认证密码,后续扩展使用设备单独密码, 移除密码将不进行校验
password: 12345678
# 是否存储alarm信息
alarm: false
#zlm 默认服务器配置
media:
id: zlmediakit-local #zlm服务器的mediaServerId
# [必须修改] zlm服务器的内网IP
ip: 192.168.**.**
# [必须修改] zlm服务器的http.port
http-port: 8092
# [必选选] zlm服务器的secret
secret: TWSYFgYJOQWB4ftgeYut8DW4wbs7pQnj
# 启用多端口模式, 多端口模式使用端口区分每路流,兼容性更好。 单端口使用流的ssrc区分, 点播超时建议使用多端口测试
rtp:
# [可选] 是否启用多端口模式, 开启后会在portRange范围内选择端口用于媒体流传输
enable: true
# [可选] 在此范围内选择端口用于媒体流传输, 必须提前在zlm上配置该属性,不然自动配置此属性可能不成功
port-range: 40000,40300 # 端口范围
# [可选] 国标级联在此范围内选择端口发送媒体流,
send-port-range: 40000,40300 # 端口范围
# ISUP配置(付费版才有)
isup:
#注册服务器监听地址(服务器本地地址)
IP: 192.168.**.**
route: Isup
cmsServer:
Port: 7660
# 取流服务器地址端口(公网对接填入公网地址和端口)
smsServer:
Port: 7665
#取流服务器监听地址端口(服务器本地地址)
ListenIP: 192.168.**.**
ListenPort: 7665
# ISUP5.0登录秘钥
isupKey: 12345678
部署系统
ZLMediaKit部署-移步文档
WebRTC-Streamer部署(付费版才需要)
- 拉取WebRTC-Streamer镜像并且创建容器
docker pull mpromonet/webrtc-streamer
docker run -id -p 8000:8000 --name webrtc-streamer -it mpromonet/webrtc-streamer
ruoyi-wvp后台部署
- 打开idea找到maven项目,右键点击选择
maven
->package
,执行打包操作
- 打包成功后,在
target
目录下找到ruoyi-admin.jar
文件
ruoyi-admin.jar
文件上传到宝塔,并且创建ruoyi-isup文件夹
,在ruoyi-isup
文件夹下创建linux-lib
(注意:付费版才要创建)
- 把
ruoyi-isup下linux-lib
全部上传宝塔linux-lib
文件夹中 (注意:付费版才要上传)
- 在宝塔中创建
ruoyi-admin
网站,并且配置ruoyi-admin.jar
文件,点击确定并查看日记,出现以下内容就代表启动成功
出现这个就代表启动成功
(♥◠‿◠)ノ゙ ruoyi-wvp启动成功 ლ(´ڡ`ლ)゙
_
(_)
_ __ _ _ ___ _ _ _ ________ ____ ___ __
| '__| | | |/ _ \| | | | |______\ \ /\ / /\ \ / / '_ \
| | | |_| | (_) | |_| | | \ V V / \ V /| |_) |
|_| \__,_|\___/ \__, |_| \_/\_/ \_/ | .__/
__/ | | |
|___/ |_|
前端部署
- 当项目开发完毕,只需要运行一行命令就可以打包你的应用
# 打包正式环境
npm run build:prod
# 打包预发布环境
npm run build:stage
构建打包成功之后,会在根目录生成 dist 文件夹,里面就是构建打包好的文件,通常是 .js 、.css、index.html 等静态文件。
通常情况下 dist 文件夹的静态文件发布到你的 nginx 或者静态服务器即可,其中的 index.html 是后台服务的入口页面。
- Nginx配置
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
charset utf-8;
location / {
root /home/ruoyi/projects/ruoyi-ui;
try_files $uri $uri/ /index.html;
index index.html index.htm;
}
location /prod-api/ {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://localhost:8080/;
}
# springdoc proxy
location ~ ^/v3/api-docs/(.*) {
proxy_pass http://localhost:8080/v3/api-docs/$1;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
- 建议开启Gzip压缩,开启后可以加快传输速度,提升用户体验
在http配置中加入如下代码对全局的资源进行压缩,可以减少文件体积和加快网页访问速度。
# 开启gzip压缩
gzip on;
# 不压缩临界值,大于1K的才压缩,一般不用改
gzip_min_length 1k;
# 压缩缓冲区
gzip_buffers 16 64K;
# 压缩版本(默认1.1,前端如果是squid2.5请使用1.0)
gzip_http_version 1.1;
# 压缩级别,1-10,数字越大压缩的越好,时间也越长
gzip_comp_level 5;
# 进行压缩的文件类型
gzip_types text/plain application/x-javascript text/css application/xml application/javascript;
# 跟Squid等缓存服务有关,on的话会在Header里增加"Vary: Accept-Encoding"
gzip_vary on;
# IE6对Gzip不怎么友好,不给它Gzip了
gzip_disable "MSIE [1-6]\.";
常见问题
- 如果使用Mac需要修改application.yml文件路径profile
- 如果使用Linux 提示表不存在,设置大小写敏感配置在/etc/my.cnf添加lower_case_table_names=1,重启MYSQL服务
- 如果提示当前权限不足,无法写入文件请检查application.yml中的profile路径或logback.xml中的log.path路径是否有可读可写操作权限
- 如遇到无法解决的问题请到Issues (opens new window)反馈,会不定时进行解答。
遇到问题
- 微信: ruoyi-wvp888 备注:
ruoyi-wvp
- 微信: qsh-network 备注:
ruoyi-wvp

