Banner

RuoYi-CCFast 企业级快速开发框架部署教程

2026-09-15

适用版本: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 -version

CentOS 命令:

$ sudo yum install java-11-openjdk java-11-openjdk-devel -y
$ java -version

2. 安装 MySQL 并初始化数据库

为什么:RuoYi-CCFast 核心业务数据、工作流引擎表均存储在 MySQL 中,字符集错误会导致中文乱码或索引失效。

Ubuntu 命令:

$ sudo apt install mysql-server-8.0 -y
$ sudo systemctl enable mysql && sudo systemctl start mysql

CentOS 命令:

$ 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.sql

3. 安装 Redis

为什么:系统使用 Redis 存储 Token、验证码及热点数据缓存,缺失将导致登录失败。

Ubuntu 命令:

$ sudo apt install redis-server -y
$ sudo systemctl enable redis-server && sudo systemctl start redis-server

CentOS 命令:

$ sudo yum install epel-release -y
$ sudo yum install redis -y
$ sudo systemctl enable redis && sudo systemctl start redis

4. 安装 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 -v

CentOS 命令:

$ 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 -v

5. 克隆源码、配置并编译启动

为什么:完成从代码到可运行服务的完整转化。

$ 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  # CentOS

Nginx 配置 (/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 面板部署

为什么:适合不熟悉命令行的运维人员,图形化操作降低门槛。

  1. 安装 1Panel 面板。
  2. 进入「应用商店」→ 搜索 RuoYi 或 RuoYi-CCFast。
  3. 点击「安装」,填写数据库密码、端口等参数。
  4. 等待容器启动完成,访问 http://服务器IP:端口 即可。

三、登录与快速上手

  • 默认账号:admin
  • 默认密码:admin123

四步操作流程

  1. 基础配置:登录后立即修改默认密码,进入「系统管理 → 参数设置」配置系统名称、Logo 等。
  2. 创建业务模块:进入「系统工具 → 代码生成」,导入业务表,配置字段后一键生成 CRUD 代码并导入项目。
  3. 配置工作流:进入「工作流管理 → 流程设计」,使用 BPM 引擎拖拽设计审批节点、条件分支、表单绑定。
  4. 发布与集成:前端修改后重新 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 status

4.  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.com

7.  关闭 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

版本更新流程

  1. 拉取最新代码:git pull origin main
  2. 执行增量 SQL 脚本
  3. 重新编译前后端
  4. 重启服务并验证

资源监控

# 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_dict

SaaS 版本部署注意事项

  • 需配置域名解析与租户绑定
  • 数据库按租户隔离或使用 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: YourDmPassword

JVM 调优参数建议

-Xms2g -Xmx2g -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m
-XX:+UseG1GC -XX:MaxGCPauseMillis=200
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/logs/heapdump.hprof


44