RuoYi-CCFast 企业级快速开发框架部署教程
适用版本:RuoYi-CCFast(基于 RuoYi-Vue3)
适用系统:Ubuntu 22.04(推荐)或 CentOS 7.6+
服务器配置:2核4G 起步,生产环境建议 4核8G
一、部署前必须知道的硬性要求
在开始部署前,请确保服务器满足以下环境要求,这是保障系统稳定运行的基石:
- JDK:版本 1.8+(推荐 1.8 或 11,需与项目编译版本保持一致)
- MySQL:5.7+ 或 8.0+(字符集必须为 utf8mb4,排序规则 utf8mb4_general_ci)
- Redis:3.0+(推荐 5.0+,用于缓存与权限控制)
- Maven:3.0+(推荐 3.6+,用于后端依赖管理)
- Node.js:12+(Vue3 版本需 Node 16+,推荐 16.x 或 18.x)
- 端口要求:8080(后端)、80/9527(前端)、6379(Redis)、3306(MySQL)
- 磁盘空间:20GB 以上(日志与数据库增长需预留空间)
- 特别说明:支持 10+ 种国产数据库(达梦、人大金仓等),但首次部署建议使用 MySQL 以降低排错成本。
二、部署方式与安装步骤
方式一:源码编译部署(生产环境推荐)
1. 安装 JDK
为什么:Spring Boot 运行环境依赖,版本不匹配会导致编译或启动失败。
Ubuntu 命令:
$ sudo apt update
$ sudo apt install openjdk-11-jdk -y
$ java -versionCentOS 命令:
$ sudo yum install java-11-openjdk java-11-openjdk-devel -y
$ java -version2. 安装 MySQL 并初始化数据库
为什么:RuoYi-CCFast 核心业务数据、工作流引擎表均存储在 MySQL 中,字符集错误会导致中文乱码或索引失效。
Ubuntu 命令:
$ sudo apt install mysql-server-8.0 -y
$ sudo systemctl enable mysql && sudo systemctl start mysqlCentOS 命令:
$ sudo yum install mysql-server -y
$ sudo systemctl enable mysqld && sudo systemctl start mysqld创建数据库并导入 SQL:
$ mysql -u root -p
CREATE DATABASE ruoyi_ccfast DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
CREATE USER 'ruoyi'@'localhost' IDENTIFIED BY 'YourStrongPassword@2024';
GRANT ALL PRIVILEGES ON ruoyi_ccfast.* TO 'ruoyi'@'localhost';
FLUSH PRIVILEGES;
EXIT;
$ mysql -u ruoyi -p ruoyi_ccfast < sql/ry_20240101.sql
$ mysql -u ruoyi -p ruoyi_ccfast < sql/quartz.sql
$ mysql -u ruoyi -p ruoyi_ccfast < sql/ccflow.sql3. 安装 Redis
为什么:系统使用 Redis 存储 Token、验证码及热点数据缓存,缺失将导致登录失败。
Ubuntu 命令:
$ sudo apt install redis-server -y
$ sudo systemctl enable redis-server && sudo systemctl start redis-serverCentOS 命令:
$ sudo yum install epel-release -y
$ sudo yum install redis -y
$ sudo systemctl enable redis && sudo systemctl start redis4. 安装 Maven 和 Node.js
为什么:Maven 用于编译后端 Java 代码,Node.js 用于构建 Vue3 前端静态资源。
Ubuntu 命令:
$ sudo apt install maven nodejs npm -y
$ sudo npm install -g n
$ sudo n 16
$ hash -r
$ node -v && npm -v && mvn -vCentOS 命令:
$ sudo yum install maven -y
$ curl -fsSL https://rpm.nodesource.com/setup_16.x | sudo bash -
$ sudo yum install nodejs -y
$ node -v && npm -v && mvn -v5. 克隆源码、配置并编译启动
为什么:完成从代码到可运行服务的完整转化。
$ git clone https://gitee.com/opencc/RuoYi-CCFast.git
$ cd RuoYi-CCFast修改后端配置 (ruoyi-admin/src/main/resources/application-druid.yml):
spring:
datasource:
druid:
master:
url: jdbc:mysql://localhost:3306/ruoyi_ccfast?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: ruoyi
password: YourStrongPassword@2024修改 Redis 配置 (ruoyi-admin/src/main/resources/application.yml):
spring:
redis:
host: 127.0.0.1
port: 6379
password: # 若设置了密码请在此填写
database: 0编译后端:
$ mvn clean package -DskipTests编译前端:
$ cd ruoyi-ui
$ npm install --registry=https://registry.npmmirror.com
$ npm run build:prod
$ cd ..启动后端:
$ nohup java -jar ruoyi-admin/target/ruoyi-admin.jar --spring.profiles.active=druid > logs/admin.log 2>&1 &配置 Nginx 启动前端:
$ sudo apt install nginx -y # Ubuntu
$ sudo yum install nginx -y # CentOSNginx 配置 (/etc/nginx/conf.d/ruoyi.conf):
server {
listen 80;
server_name your-domain.com;
location / {
root /path/to/RuoYi-CCFast/ruoyi-ui/dist;
try_files uriuri/ /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://127.0.0.1:8080/;
}
}
$ sudo nginx -t && sudo systemctl restart nginx方式二:Docker 容器化部署
为什么:环境隔离,一键部署,适合测试或快速验证。
docker-compose.yml:
version: '3.8'
services:
mysql:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: RootPass@2024
MYSQL_DATABASE: ruoyi_ccfast
ports:
- "3306:3306"
volumes:
- ./sql:/docker-entrypoint-initdb.d
- mysql_data:/var/lib/mysql
redis:
image: redis:6-alpine
ports:
- "6379:6379"
backend:
build: ./ruoyi-admin
ports:
- "8080:8080"
depends_on:
- mysql
- redis
environment:
SPRING_DATASOURCE_URL: jdbc:mysql://mysql:3306/ruoyi_ccfast?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8
SPRING_REDIS_HOST: redis
frontend:
build: ./ruoyi-ui
ports:
- "80:80"
depends_on:
- backend
volumes:
mysql_data:一键启动:
$ docker-compose up -d方式三:1Panel 面板部署
为什么:适合不熟悉命令行的运维人员,图形化操作降低门槛。
- 安装 1Panel 面板。
- 进入「应用商店」→ 搜索 RuoYi 或 RuoYi-CCFast。
- 点击「安装」,填写数据库密码、端口等参数。
- 等待容器启动完成,访问 http://服务器IP:端口 即可。
三、登录与快速上手
- 默认账号:admin
- 默认密码:admin123
四步操作流程
- 基础配置:登录后立即修改默认密码,进入「系统管理 → 参数设置」配置系统名称、Logo 等。
- 创建业务模块:进入「系统工具 → 代码生成」,导入业务表,配置字段后一键生成 CRUD 代码并导入项目。
- 配置工作流:进入「工作流管理 → 流程设计」,使用 BPM 引擎拖拽设计审批节点、条件分支、表单绑定。
- 发布与集成:前端修改后重新 npm run build:prod,Nginx 自动生效;后端修改后重新打包并重启服务。
四、环境配置说明
| 部署方式 | 适用场景 | 端口配置 | 持久化路径 | 优点 | 缺点 |
| 源码编译 | 生产环境 | 自定义 | 服务器本地 | 性能最优,可控性强 | 部署复杂,需手动维护 |
| Docker | 测试/开发 | 固定映射 | Volume | 环境一致,迁移方便 | 性能略有损耗,调试复杂 |
| 1Panel | 个人/小团队 | 面板管理 | 面板目录 | 操作简单,可视化 | 依赖面板,灵活性受限 |
五、安全加固(上线前必做)
⚠️ 警告:以下操作为生产环境强制要求,未完成请勿对外开放访问!
1. 修改默认管理员密码:使用强密码(大小写+数字+特殊字符,12位以上)。
2. 修改后端默认端口:将 8080 改为非标准端口,减少扫描攻击。
3. ufw 防火墙配置:
$ sudo ufw allow 22/tcp
$ sudo ufw allow 80/tcp
$ sudo ufw allow 443/tcp
$ sudo ufw enable
$ sudo ufw status4. MySQL 安全加固:
DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1');
DROP DATABASE IF EXISTS test;
FLUSH PRIVILEGES;5. Redis 安全加固:编辑 redis.conf,设置 bind 127.0.0.1,配置 requirepass YourRedisPass@2024。
6. ginx HTTPS 配置:
$ sudo apt install certbot python3-certbot-nginx -y
$ sudo certbot --nginx -d your-domain.com7. 关闭 Swagger 文档:在 application.yml 中设置 knife4j.production: true。
六、常见报错与解决方案
| 问题类型 | 报错现象 | 解决方案 |
| 后端启动报错 | UnsupportedClassVersionError | 检查 JDK 版本是否与编译版本一致 |
| 数据库连接失败 | Access denied for user | 检查用户名密码、Host 权限、字符集 |
| Redis 连接超时 | Connection refused | 检查防火墙、Redis bind 配置、密码 |
| 前端编译失败 | npm ERR! code ELIFECYCLE | 切换 Node 16+,清理 node_modules 重装 |
| 代码生成器报错 | Table comment is null | 为数据库表添加注释,主键必须为自增 |
| 工作流启动失败 | CCFlow table not found | 确认 ccflow.sql 已完整导入 |
七、日常运维规范
服务启停命令
# 后端
ps −ef | grep ruoyi−admin.jar | grep −v grep | awk '{print 2}' | xargs kill -9
$ nohup java -jar ruoyi-admin.jar > logs/admin.log 2>&1 &
# Nginx
$ sudo systemctl restart nginx日志查看
$ tail -f logs/admin.log # 后端实时日志
$ sudo tail -f /var/log/nginx/error.log # Nginx 错误日志数据库备份(crontab)
$ crontab -e
0 2 * * * mysqldump -u ruoyi -p'YourStrongPassword@2024' ruoyi_ccfast > /backup/ruoyi_$(date +\%Y\%m\%d).sql版本更新流程
- 拉取最新代码:git pull origin main
- 执行增量 SQL 脚本
- 重新编译前后端
- 重启服务并验证
资源监控
# JVM 内存
$ jmap -heap <pid>
# 数据库连接池
$ mysqladmin -u ruoyi -p processlist缓存清理
$ redis-cli -a YourRedisPass@2024 FLUSHDB代码生成器注意事项
- 表必须有注释
- 主键字段必须命名为 id 且为自增
- 字段类型需与 Java 类型映射正确
八、进阶运维:多租户与 SaaS 部署
多租户版本配置说明
在 application.yml 中启用多租户模式:
ruoyi:
tenant:
enabled: true
ignore-tables:
- sys_config
- sys_dictSaaS 版本部署注意事项
- 需配置域名解析与租户绑定
- 数据库按租户隔离或使用 Schema 隔离
- 资源配额需在 Nginx 层限制
多数据源配置(切换国产数据库)
在 application-druid.yml 中新增数据源:
spring:
datasource:
druid:
dm:
driver-class-name: dm.jdbc.driver.DmDriver
url: jdbc:dm://localhost:5236/ruoyi_ccfast
username: SYSDBA
password: YourDmPasswordJVM 调优参数建议
-Xms2g -Xmx2g -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m
-XX:+UseG1GC -XX:MaxGCPauseMillis=200
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/logs/heapdump.hprof