# 项目介绍
RuoyiFlow (opens new window) 是基于 Ruoyi-Vue分离版 深度集成的 工作流引擎平台,无缝兼容 Camunda、Flowable、Activiti 三大引擎,提供 文档+源码+视频 的全方位学习支持,助力开发者快速掌握工作流开发,
并为中小企业提供 OA、ERP、CRM 等场景的开箱即用 解决方案。
我们也提供工作流相关业务定制开发,欢迎咨询!
Ruoyi分离版 (opens new window) Swagger-UI (opens new window)
# 目标用户
✅ 面向Java开发者 :正在学习或使用若依(RuoYi)框架的Java开发者
✅ IT从业者 :需要为项目(毕业设计、公司系统、外包项目)快速集成工作流功能的IT从业者
✅ 高校计算机专业学生、职业培训机构的老师和学员:需要用ruoyi完成毕设开发或者教学任务
# 联系我们
| 客服微信 | 微信公众号 | 微信小程序 |
|---|---|---|
![]() | ![]() | ![]() |
# 产品信息
RuoyiFlow官网 (opens new window)
B站视频教程 (opens new window)
Ruoyi-Vue2演示地址 (opens new window)
Ruoyi-Vue3演示地址 (opens new window)
# 环境部署
JDK >= 1.8 (推荐1.8版本)
Mysql >= 5.7.0 (推荐5.7版本)
Redis >= 3.0
Maven >= 3.0
Node >= 23
前端安装完node后,最好设置下淘宝的镜像源,不建议使用cnpm(可能会出现奇怪的问题)
# 运行系统
购买RuoyiFlow (opens new window)产品后,通过IDEA和VsCode打开项目, 分别运行前后端项目。
# 后端运行
构建数据库,新建一个数据库,依次执行sql文件夹下面的脚本quartz.sql和quartz.ry_flow.sql
在项目启动后,系统会自动创建camunda相关的表结构,以act_开头,至此就完成了数据库的创建。
修改application.yml中的redis配置
# redis 配置
redis:
# 地址
host: xxxx
# 端口,默认为6379
port: 6379
# 数据库索引
database: 0
# 密码
password: 'xxx'
# 连接超时时间
timeout: 10s
- application-druid.yaml中的数据地址配置
master:
url: jdbc:mysql://rm-bp1a466bb62123091co.mysql.rds.aliyuncs.com/ruoyi-3-9-0?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true
username: xx
password: xxx@2024
- 部署流程模型
1. ruoyi-admin 下resources/processes文件夹下存放着交付的测试模型
2. 登陆系统->模型管理->模型列表,将会自动导入这个文件夹下的流程模型
以上是Camunda项目交付后,后端项目部署流程,Activiti,Flowable也是同样的步骤
# 前端运行
# 进入项目目录
cd ruoyi-ui
# 安装依赖
npm install
# 强烈建议不要用直接使用 cnpm 安装,会有各种诡异的 bug,可以通过重新指定 registry 来解决 npm 安装速度慢的问题。
npm install --registry=https://registry.npmmirror.com
# 本地开发 启动项目
npm run dev
# 线上部署
# 前端
erver {
server_name demo.ruoyiflow.com
listen 80;
gzip on;
gzip_min_length 1k;
gzip_comp_level 9;
gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
location / {
root /home/ruoyi/dist;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
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 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
以上是nginx脚本,用于部署前端, 需要您在自己的服务器安装nginx,并且做好域名的转发, 然后将上面的命令安装即可。
# 后端
#!/bin/bash
# 定义变量,方便维护
APP_NAME="ruoyi-admin"
JAR_PATH="/home/ruoyi/ruoyi-admin.jar"
LOG_DIR="/home/ruoyi/Logs"
PID_FILE="/home/ruoyi/${APP_NAME}.pid"
# 创建日志目录(如果不存在)
mkdir -p ${LOG_DIR}
# 检查JAR文件是否存在
if [ ! -f "${JAR_PATH}" ]; then
echo "Error: JAR file not found at ${JAR_PATH}"
exit 1
fi
# 停止进程的函数
stop_application() {
# 尝试多种方式获取PID:先查进程,再看pid文件
local pid=$(ps -ef | grep "${JAR_PATH}" | grep -v grep | awk '{print $2}')
if [ -f "${PID_FILE}" ]; then
local pid_from_file=$(cat "${PID_FILE}")
if [ -n "${pid_from_file}" ]; then
pid="${pid_from_file}"
fi
fi
if [ -n "$pid" ]; then
echo "Stopping ${APP_NAME} with PID $pid..."
# 先尝试优雅终止(SIGTERM, signal 15)
kill -15 $pid
sleep 5
# 如果进程仍在,则强制杀死(SIGKILL, signal 9)
if ps -p $pid > /dev/null 2>&1; then
echo "Process did not stop gracefully, forcing kill..."
kill -9 $pid
else
echo "${APP_NAME} stopped successfully."
fi
# 删除pid文件
rm -f "${PID_FILE}"
else
echo "${APP_NAME} is not running."
fi
}
# 启动进程的函数
start_application() {
echo "Starting ${APP_NAME}..."
nohup java \
-Xms512m \
-Xmx1024m \
-XX:MetaspaceSize=256m \
-XX:+UseG1GC \
-XX:MaxGCPauseMillis=200 \
-XX:InitiatingHeapOccupancyPercent=45 \
-XX:+PrintGCDetails \
-XX:+PrintGCDateStamps \
-Xloggc:${LOG_DIR}/gc-%t.log \
-XX:+HeapDumpOnOutOfMemoryError \
-XX:HeapDumpPath=${LOG_DIR}/oom_error.hprof \
-XX:ErrorFile=${LOG_DIR}/hs_err_pid%p.log \
-jar ${JAR_PATH} > ${LOG_DIR}/ruoyi.log 2>&1 &
# 获取新进程的PID并写入文件
local new_pid=$!
echo $new_pid > ${PID_FILE}
echo "${APP_NAME} started with PID $new_pid"
echo "Log output: ${LOG_DIR}/ruoyi.log"
}
# 主执行逻辑
stop_application
sleep 2 # 等待一下确保进程完全停止
start_application
以上是boot项目的部署脚本, 需要您现在服务器上安装jdk8!
# 我们的优势
✔ 比开源更易用:降低90%的配置成本,新手也能快速上手
✔ 比商业软件更灵活:支持多引擎切换,避免厂商锁定
✔ 全栈解决方案:从设计到运维,覆盖企业级流程开发全流程
✔ 技术答疑:提供售后会员服务,解决您工作流相关问题


