【从0到1精通】橙单(orange-form)低代码平台2025全攻略:安装、配置与企业级实战
2026-02-04 04:21:40作者:曹令琨Iris
你是否还在为传统开发的重复劳动而烦恼?是否因多租户架构设计而头疼?是否希望快速搭建支持工作流、在线表单的企业级应用?本文将带你一站式掌握橙单(orange-form)低代码平台的安装部署、核心功能与实战技巧,让你1小时上手,3天搭建企业级应用。
读完本文你将获得:
- 橙单平台的本地化部署全流程(前端+后端+数据库)
- 多租户架构的配置与权限管理方案
- 工作流引擎(Flowable)的集成与表单设计技巧
- 企业级应用开发的最佳实践与性能优化指南
1. 橙单平台简介:低代码开发的革命
橙单(orange-form)是一款中台化低代码生成器,采用前后端分离架构,支持多应用、多租户、多渠道部署。其核心优势在于:
1.1 技术栈组合
| 模块 | 技术选型 | 国内CDN地址 |
|---|---|---|
| 前端框架 | Vue3 + Vite4 | https://cdn.jsdelivr.net/npm/vue@3.3.4/dist/vue.global.min.js |
| 状态管理 | Pinia | https://cdn.jsdelivr.net/npm/pinia@2.1.6/dist/pinia.iife.min.js |
| 后端框架 | Spring Boot 3 | - |
| ORM框架 | MyBatis-Plus / MyBatis-Flex | - |
| 工作流引擎 | Flowable 7 / Activiti | - |
| 安全框架 | Sa-Token | - |
| 缓存 | Redis 4 | - |
| 对象存储 | MinIO 8.4.5 | - |
1.2 核心功能架构
flowchart TD
A[多租户管理] --> A1[租户隔离]
A --> A2[数据权限]
A --> A3[菜单定制]
B[工作流引擎] --> B1[流程设计]
B --> B2[任务分配]
B --> B3[流程监控]
C[在线表单] --> C1[表单设计器]
C --> C2[数据校验]
C --> C3[多表关联]
D[自定义功能] --> D1[数据同步]
D[自定义功能] --> D2[定时任务]
D[自定义功能] --> D3[跨服务调用]
A & B & C & D --> E[企业级应用]
1.3 企业级特性
- 多租户架构:支持共享数据库、独立Schema等多种隔离模式
- 权限体系:细粒度的数据权限与功能权限控制
- 工作流集成:完整支持Flowable与Activiti双引擎
- 代码生成:可生成前后端代码,保留自定义扩展空间
- 高可扩展性:支持自定义组件、插件与服务集成
2. 环境准备:部署前的检查清单
2.1 系统要求
pie
title 硬件资源分配建议
"CPU" : 4
"内存" : 8
"磁盘空间" : 40
"网络" : 100
- 操作系统:Linux/Unix (推荐CentOS 7+/Ubuntu 20.04+)
- JDK版本:17+ (推荐OpenJDK 17.0.6)
- Node.js版本:18.16.1 (必须严格匹配)
- 数据库:MySQL 8.0+ / PostgreSQL 12+
- Docker:20.10.0+ (用于容器化部署依赖服务)
2.2 开发工具推荐
- VSCode:安装以下插件
- ESLint
- Prettier
- Volar (Vue3支持)
- Docker
- 数据库工具:Navicat / DBeaver
- API测试:Postman / Apifox
3. 部署流程:从源码到运行的全步骤
3.1 源码获取
# 克隆仓库
git clone https://gitcode.com/orange-form/orange-form.git
cd orange-form/orange-form
# 查看项目结构
ls -l
项目主要目录结构:
orange-form/
├── OrangeFormsOpen-MybatisFlex/ # MybatisFlex版本后端
├── OrangeFormsOpen-MybatisPlus/ # MybatisPlus版本后端
├── OrangeFormsOpen-RuoYi/ # 若依集成版本
├── OrangeFormsOpen-VUE3/ # Vue3前端项目
└── zz-resource/ # 资源文件(数据库脚本、Docker配置)
3.2 后端部署(以MybatisPlus版本为例)
3.2.1 启动依赖服务
# 进入Docker配置目录
cd OrangeFormsOpen-MybatisPlus/zz-resource/docker-files/
# 启动Redis(默认已注释MinIO,如需可取消注释)
docker-compose up -d
# 检查容器状态
docker ps | grep -E "redis|minio"
docker-compose.yml核心配置解析:
version: '3.2'
services:
redis:
container_name: redis
build:
context: services/redis/
args:
- REDIS_VER=4
ports:
- "6379:6379"
volumes:
- ./services/redis/redis.conf:/usr/local/etc/redis/redis.conf:rw
- ./data/redis:/data:rw
- ./logs/redis:/var/log/:rw
3.2.2 数据库初始化
# 1. 创建数据库
mysql -u root -p
CREATE DATABASE orange_form DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
USE orange_form;
# 2. 执行初始化脚本
source /data/web/disk1/git_repo/orange-form/orange-form/OrangeFormsOpen-MybatisPlus/zz-resource/db-scripts/zzdemo-online-open.sql;
# 3. 验证表结构
show tables like 'act_%'; # 应显示Flowable相关表
数据库脚本主要包含:
- 系统基础表(用户、角色、权限)
- Flowable工作流引擎表(ACT_*)
- 多租户管理表
- 表单与流程定义表
3.2.3 后端服务编译与启动
# 返回项目根目录
cd ../../../../
# 使用Maven编译
./mvnw clean package -DskipTests
# 启动应用
cd OrangeFormsOpen-MybatisPlus/application-webadmin/target/
java -jar application-webadmin.jar --spring.profiles.active=dev
3.3 前端部署
3.3.1 安装依赖
# 进入前端目录
cd OrangeFormsOpen-VUE3/
# 安装依赖
npm install
# 注意:如遇依赖冲突,执行以下命令
npm install --legacy-peer-deps
3.3.2 配置与启动
# 修改API基础地址(可选)
vi src/api/config.ts
# 开发环境启动
npm run dev
# 构建生产版本(部署时使用)
npm run build
3.3.3 访问前端应用
打开浏览器访问:http://localhost:8085
4. 配置指南:平台初始化与基础设置
4.1 系统配置文件说明
后端核心配置文件路径:application-webadmin/src/main/resources/application.yml
主要配置项:
# 数据源配置
spring:
datasource:
url: jdbc:mysql://localhost:3306/orange_form?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
username: root
password: password
# 多租户配置
tenant:
enable: true
column: tenant_id
ignore-tables: sys_user,act_ge_property
# Redis配置
redis:
host: localhost
port: 6379
password:
database: 0
# 工作流配置
flowable:
database-schema-update: true
history-level: full
4.2 多租户配置
stateDiagram-v2
[*] --> 租户隔离模式选择
租户隔离模式选择 --> 共享数据库: 适合中小规模
租户隔离模式选择 --> 独立Schema: 适合中大规模
租户隔离模式选择 --> 独立数据库: 适合大规模
共享数据库 --> 配置租户字段
独立Schema --> 配置Schema生成规则
独立数据库 --> 配置数据库连接池
配置租户字段 --> [*]
配置Schema生成规则 --> [*]
配置数据库连接池 --> [*]
配置示例(共享数据库模式):
tenant:
enable: true
type: COLUMN
column: tenant_id
ignore-url:
- /api/auth/login
- /api/auth/logout
ignore-tables:
- sys_dict
- sys_config
4.3 安全配置
4.3.1 Sa-Token配置
sa-token:
# Token有效期(分钟)
timeout: 2880
# 刷新令牌有效期(分钟)
refresh-token-timeout: 10080
# 允许并发登录的账号数量
is-concurrent: true
max-login-count: 10
# Token风格
token-style: uuid
4.3.2 跨域配置
cors:
allowed-origins: "*"
allowed-methods: GET,POST,PUT,DELETE,OPTIONS
allowed-headers: "*"
allow-credentials: true
max-age: 3600
5. 核心功能实战:从表单设计到流程发布
5.1 在线表单设计
5.1.1 创建表单
- 登录系统,进入「在线表单」模块
- 点击「新建表单」,填写基本信息
- 拖拽组件设计表单界面
- 配置字段属性与校验规则
5.1.2 表单设计器主要组件
| 组件类型 | 常用组件 | 应用场景 |
|---|---|---|
| 基础组件 | 文本框、数字框、日期选择器 | 基本信息录入 |
| 选择组件 | 下拉框、单选框、复选框 | 选项选择 |
| 高级组件 | 表格、子表单、文件上传 | 复杂数据录入 |
| 布局组件 | 栅格、标签页、折叠面板 | 界面布局 |
5.1.3 表单校验规则配置
// 表单校验规则示例
{
"field": "email",
"title": "邮箱",
"type": "string",
"required": true,
"validate": {
"type": "email",
"message": "请输入正确的邮箱格式"
},
"component": "input",
"props": {
"placeholder": "请输入邮箱"
}
}
5.2 工作流设计与集成
5.2.1 流程定义
- 进入「工作流管理」→「流程设计」
- 新建流程,使用BPMN2.0设计器绘制流程图
- 配置流程节点属性(办理人、表单、条件等)
- 发布流程定义
5.2.2 流程与表单关联
sequenceDiagram
流程设计器->>表单设计器: 选择表单
表单设计器-->>流程设计器: 返回表单ID
流程设计器->>流程引擎: 部署流程定义(包含表单ID)
流程引擎-->>流程设计器: 返回部署结果
用户->>流程引擎: 发起流程实例
流程引擎->>表单引擎: 获取关联表单
表单引擎-->>流程引擎: 返回表单定义
流程引擎-->>用户: 展示表单界面
5.2.3 任务办理与流转
- 用户登录系统,在「我的任务」中查看待办任务
- 点击任务,填写表单数据
- 提交任务,流程自动流转至下一节点
- 管理员可在「流程监控」中查看流程实例状态
5.3 多租户管理实战
5.3.1 租户创建与配置
// 租户创建核心代码示例
@Service
public class TenantServiceImpl implements TenantService {
@Autowired
private SysTenantMapper tenantMapper;
@Autowired
private DataSource dataSource;
@Override
public boolean createTenant(TenantDTO tenantDTO) {
// 1. 保存租户信息
SysTenant tenant = new SysTenant();
BeanUtils.copyProperties(tenantDTO, tenant);
tenant.setTenantId(generateTenantId());
tenant.setCreateTime(new Date());
tenantMapper.insert(tenant);
// 2. 初始化租户数据(可选)
if (tenantDTO.getInitData()) {
initTenantData(tenant.getTenantId());
}
return true;
}
// 生成租户ID
private String generateTenantId() {
return "TENANT_" + System.currentTimeMillis();
}
// 初始化租户数据
private void initTenantData(String tenantId) {
// 执行租户初始化SQL脚本
// ...
}
}
5.3.2 租户权限控制
租户权限控制粒度:
- 菜单权限:控制租户可见菜单
- 功能权限:控制租户可用功能
- 数据权限:控制租户可访问数据范围
- 表单权限:控制租户可使用的表单模板
6. 企业级最佳实践
6.1 性能优化策略
6.1.1 数据库优化
- 索引优化:为租户ID、流程实例ID等关键字段建立索引
- 分表策略:对高频访问的流程历史表进行分表
- 查询优化:避免全表扫描,使用分页查询
6.1.2 缓存策略
timeline
title 缓存策略时间线
2025-01-01 : 本地缓存(Caffeine) - 高频访问配置
2025-02-15 : Redis缓存 - 租户配置、字典数据
2025-03-30 : 分布式锁 - 并发流程处理
2025-04-20 : 二级缓存 - MyBatis查询缓存
6.2 安全加固
- 接口安全:所有接口添加签名验证
- 数据脱敏:敏感数据传输与存储脱敏
- 日志审计:关键操作记录审计日志
- XSS防护:输入验证与输出编码
- CSRF防护:添加CSRF令牌验证
6.3 高可用部署
flowchart LR
Client[用户] --> Nginx[Nginx负载均衡]
Nginx --> App1[应用服务器1]
Nginx --> App2[应用服务器2]
Nginx --> App3[应用服务器3]
App1 --> RedisCluster[Redis集群]
App2 --> RedisCluster
App3 --> RedisCluster
App1 --> DB[主从数据库]
App2 --> DB
App3 --> DB
App1 --> MinIO[分布式存储]
App2 --> MinIO
App3 --> MinIO
7. 常见问题与解决方案
7.1 部署问题
| 问题 | 原因 | 解决方案 |
|---|---|---|
| npm install 失败 | Node.js版本不匹配 | 严格安装18.16.1版本 |
| 后端启动报类找不到 | Maven依赖未下载完整 | 执行mvn clean install -U |
| Redis连接失败 | Redis未启动或配置错误 | 检查docker-compose状态和配置文件 |
| 数据库表不存在 | 未执行初始化SQL | 执行zzdemo-online-open.sql脚本 |
7.2 功能问题
| 问题 | 原因 | 解决方案 |
|---|---|---|
| 表单提交报权限错误 | 租户配置不正确 | 检查tenant.enable配置和权限设置 |
| 流程无法启动 | Flowable配置错误 | 检查flowable.database-schema-update设置 |
| 多表关联查询异常 | 表关系配置错误 | 检查表单设计中的表关联设置 |
| 文件上传失败 | MinIO配置或权限问题 | 检查MinIO服务和访问权限 |
8. 总结与展望
橙单(orange-form)作为一款企业级低代码平台,通过可视化配置与代码生成相结合的方式,大幅降低了企业级应用的开发门槛。其多租户架构、工作流引擎、在线表单等核心功能,能够满足大多数企业的业务需求。
随着低代码技术的不断发展,橙单平台未来将在以下方向持续优化:
- AI辅助开发:通过AI技术自动生成表单和流程
- 微服务支持:提供更灵活的服务拆分与集成方案
- 更多行业模板:覆盖电商、金融、医疗等垂直领域
- 移动端增强:提供更完善的移动端开发与适配能力
如果你觉得本文对你有帮助,欢迎点赞收藏,并关注橙单项目的更新。如有任何问题或建议,可通过项目仓库的Issue功能与开发团队交流。
让我们一起拥抱低代码开发的未来,用橙单平台加速企业数字化转型!
登录后查看全文
热门项目推荐
相关项目推荐
Kimi-K2.5Kimi K2.5 是一款开源的原生多模态智能体模型,它在 Kimi-K2-Base 的基础上,通过对约 15 万亿混合视觉和文本 tokens 进行持续预训练构建而成。该模型将视觉与语言理解、高级智能体能力、即时模式与思考模式,以及对话式与智能体范式无缝融合。Python00
GLM-4.7-FlashGLM-4.7-Flash 是一款 30B-A3B MoE 模型。作为 30B 级别中的佼佼者,GLM-4.7-Flash 为追求性能与效率平衡的轻量化部署提供了全新选择。Jinja00
VLOOKVLOOK™ 是优雅好用的 Typora/Markdown 主题包和增强插件。 VLOOK™ is an elegant and practical THEME PACKAGE × ENHANCEMENT PLUGIN for Typora/Markdown.Less00
PaddleOCR-VL-1.5PaddleOCR-VL-1.5 是 PaddleOCR-VL 的新一代进阶模型,在 OmniDocBench v1.5 上实现了 94.5% 的全新 state-of-the-art 准确率。 为了严格评估模型在真实物理畸变下的鲁棒性——包括扫描伪影、倾斜、扭曲、屏幕拍摄和光照变化——我们提出了 Real5-OmniDocBench 基准测试集。实验结果表明,该增强模型在新构建的基准测试集上达到了 SOTA 性能。此外,我们通过整合印章识别和文本检测识别(text spotting)任务扩展了模型的能力,同时保持 0.9B 的超紧凑 VLM 规模,具备高效率特性。Python00
KuiklyUI基于KMP技术的高性能、全平台开发框架,具备统一代码库、极致易用性和动态灵活性。 Provide a high-performance, full-platform development framework with unified codebase, ultimate ease of use, and dynamic flexibility. 注意:本仓库为Github仓库镜像,PR或Issue请移步至Github发起,感谢支持!Kotlin07
compass-metrics-modelMetrics model project for the OSS CompassPython00
项目优选
收起
deepin linux kernel
C
27
11
OpenHarmony documentation | OpenHarmony开发者文档
Dockerfile
525
3.72 K
Ascend Extension for PyTorch
Python
329
391
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
877
578
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
335
162
暂无简介
Dart
764
189
Nop Platform 2.0是基于可逆计算理论实现的采用面向语言编程范式的新一代低代码开发平台,包含基于全新原理从零开始研发的GraphQL引擎、ORM引擎、工作流引擎、报表引擎、规则引擎、批处理引引擎等完整设计。nop-entropy是它的后端部分,采用java语言实现,可选择集成Spring框架或者Quarkus框架。中小企业可以免费商用
Java
12
1
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
1.33 K
746
🔥LeetCode solutions in any programming language | 多种编程语言实现 LeetCode、《剑指 Offer(第 2 版)》、《程序员面试金典(第 6 版)》题解
Java
67
20
React Native鸿蒙化仓库
JavaScript
302
350