NocoBase:数据模型驱动的可扩展无代码开发平台
详解NocoBase这款GitHub上23K+ Star的可扩展无代码开发平台,数据模型驱动、AI集成、插件架构、所见即所得配置,无需编程即可快速构建企业级业务系统。
NocoBase:数据模型驱动的可扩展无代码开发平台
背景
企业在数字化转型过程中,面临着这样的困境:
- 采购成熟系统:价格昂贵,定制困难,学习成本高
- 传统开发:周期长、成本高、维护难
- 现有 SaaS:数据不自主,功能固定,集成困难
无代码/低代码平台的出现,就是为了平衡"灵活定制"和"快速交付"的需求。
提到无代码平台,很多人会想到 FileMaker、Airtable。但这些大多是闭源 SaaS,数据存储在第三方服务器。
今天介绍一款开源的可扩展无代码平台——NocoBase,它以"数据模型驱动"为核心理念,在 GitHub 上已获得 23K+ Star。
什么是 NocoBase?
NocoBase 是一个以可扩展性为核心的开源无代码/低代码开发平台,采用数据模型驱动的方法,让用户无需编程即可构建业务应用程序。
核心特性:
| 特性 | 说明 |
|---|---|
| 数据模型驱动 | 数据结构与界面分离,灵活度高 |
| AI 员工集成 | 将 AI 能力嵌入业务系统和流程 |
| 所见即所得 | 可视化配置,所见即所得 |
| 插件化架构 | 一切皆插件,高度可扩展 |
| 自托管 | 数据完全自主,支持 Docker 部署 |
| 多数据库 | 支持 MySQL、PostgreSQL、SQLite 等 |
GitHub 地址: https://github.com/nocobase/nocobase
在线体验: https://demo.nocobase.com/new
核心理念:数据模型驱动
NocoBase 与传统的表单/表格驱动的无代码平台不同:
| 对比项 | 传统无代码平台 | NocoBase |
|---|---|---|
| 驱动方式 | 表单驱动 / 表格驱动 | 数据模型驱动 |
| 数据结构 | 固定模板 | 自定义数据模型 |
| 界面绑定 | 界面即数据 | 界面与数据分离 |
| 灵活性 | 受限 | 高度灵活 |
数据模型驱动的优势:
一个数据模型(表)可以创建多个不同用途的页面
用户表(数据模型)
├── 用户列表页面(管理所有用户)
├── 用户详情页面(查看单个用户)
├── 个人中心页面(用户自己的信息)
└── 用户选择器(在其他地方选择用户)
快速上手
方式一:Docker 部署(推荐)
# 拉取镜像
docker pull nocobase/nocobase:latest
# 创建目录
mkdir nocobase && cd nocobase
# 下载 docker-compose 文件
curl -O https://raw.githubusercontent.com/nocobase/nocobase/main/docker/docker-compose.yml
# 启动服务(SQLite 适用于测试环境)
docker-compose up -d
# 访问管理后台
# http://localhost:13000
# 初始管理员:admin@nocobase.com / admin123
方式二:使用 MySQL/PostgreSQL
version: '3.8'
services:
nocobase:
image: nocobase/nocobase:latest
container_name: nocobase
restart: unless-stopped
ports:
- "13000:13000"
environment:
- DB_DIALECT=mysql
- DB_HOST=localhost
- DB_PORT=3306
- DB_DATABASE=nocobase
- DB_USER=nocobase
- DB_PASSWORD=your-password
volumes:
- ./storage:/app/storage
mysql:
image: mysql:8.0
container_name: nocobase-mysql
restart: unless-stopped
environment:
- MYSQL_ROOT_PASSWORD=root-password
- MYSQL_DATABASE=nocobase
- MYSQL_USER=nocobase
- MYSQL_PASSWORD=your-password
volumes:
- mysql_data:/var/lib/mysql
volumes:
mysql_data:
方式三:命令行创建项目
# 使用 npx 创建项目
npx create-nocobase-app my-app
cd my-app
# 安装依赖
npm install
# 启动开发服务器
npm run dev
# 构建生产版本
npm run build
核心功能详解
1. 数据表(Collection)
创建数据模型就像创建 Excel 表格一样简单:
创建步骤:
1. 进入管理后台
2. 点击"设置" → "数据表" → "新建"
3. 输入表名(如:工单)
4. 添加字段(名称、类型、配置)
5. 保存
支持的字段类型:
| 分类 | 字段类型 |
|---|---|
| 文本 | 文本、文本区、长文本、邮箱、手机、URL |
| 数字 | 整数、小数、货币 |
| 日期时间 | 日期、日期时间、年份、时间 |
| 选择 | 单选、多选、布尔、评分 |
| 关联 | 关系(一对一、一对多、多对多) |
| 文件 | 附件、图片、头像 |
| 组织 | 用户、部门、角色 |
| 其他 | 公式、序号、JSON |
2. 关系定义
NocoBase 支持丰富的数据关系:
// 一对多关系:部门 → 员工
{
"name": "employees",
"type": "hasMany",
"target": "users",
"foreignKey": "departmentId"
}
// 多对多关系:用户 ←→ 角色
{
"name": "users",
"type": "belongsToMany",
"target": "roles",
"through": "userRoles"
}
3. 区块(Block)设计
NocoBase 的页面由各种区块组成:
区块类型:
| 区块 | 用途 |
|---|---|
| 表格 | 列表展示多条记录 |
| 表单 | 新建/编辑记录 |
| 详情 | 显示单条记录完整信息 |
| 统计 | 数字统计展示 |
| 看板 | 看板视图(Kanban) |
| 日历 | 日历视图 |
| 树形 | 树形结构展示 |
| 筛选 | 条件筛选器 |
| 操作 | 按钮操作区 |
拖拽布局:
┌─────────────────────────────────────────────┐
│ 页面配置 │
├─────────────────────────────────────────────┤
│ ┌─────────────┐ ┌─────────────────────┐ │
│ │ 用户表格 │ │ 用户详情区块 │ │
│ │ │ │ │ │
│ │ 点击用户 │ │ 头像、姓名... │ │
│ │ 会自动 │ │ │ │
│ │ 刷新右侧 │ │ 相关工单列表 │ │
│ └─────────────┘ └─────────────────────┘ │
└─────────────────────────────────────────────┘
4. 工作流(Workflow)
NocoBase 内置强大的工作流引擎:
工作流节点:
| 节点类型 | 说明 |
|---|---|
| 触发器 | 表单提交、定时触发、API触发 |
| 动作 | 创建/更新/删除记录、发送邮件/短信 |
| 逻辑 | 条件分支、循环、并行 |
| 集成 | 审批、HTTP请求、脚本 |
工作流示例:工单处理流程
开始 → 提交工单 → 主管审批 → 是否通过?
↓ 是 ↓ 否
执行操作 退回申请人
↓
通知相关人
↓
结束
5. 权限管理
细粒度的数据权限控制:
权限维度:
| 维度 | 说明 |
|---|---|
| 资源权限 | 谁能访问哪些数据表 |
| 字段权限 | 谁能查看/编辑哪些字段 |
| 数据范围 | 能看到哪些数据(自己/部门/全部) |
| 操作权限 | 能执行哪些操作 |
权限规则示例:
// 只能查看自己创建的工单
{
"scope": "createdBy.id == {{$user.id}}"
}
// 只能查看本部门的数据
{
"scope": "department.id == {{$user.departmentId}}"
}
// 只能查看状态为"进行中"的数据
{
"filter": {
"status": "in_progress"
}
}
6. AI 员工
NocoBase 将 AI 能力嵌入业务系统:
AI 角色定义:
- 翻译员
- 数据分析师
- 研究员
- 智能助手
AI 应用场景:
// 在工作流中调用 AI
{
"type": "ai",
"role": "analyst",
"prompt": "分析以下工单,提取关键信息和优先级",
"input": "{{$trigger.data}}"
}
// 在界面中嵌入 AI 助手
{
"type": "ai-chat",
"role": "assistant",
"context": "当前工单的相关信息"
}
实战:搭建工单管理系统
步骤1:创建数据表
工单表(tickets):
| 字段名 | 类型 | 说明 |
|---|---|---|
| title | 文本 | 工单标题 |
| description | 长文本 | 工单描述 |
| status | 单选 | 状态(待处理/处理中/已完成) |
| priority | 单选 | 优先级(低/中/高/紧急) |
| submitter | 关联(用户) | 提交人 |
| assignee | 关联(用户) | 负责人 |
| createdAt | 日期时间 | 创建时间(自动) |
用户表(users): 使用系统内置用户表
步骤2:创建页面
工单列表页面:
1. 新建页面"工单管理"
2. 添加区块:工单表格
3. 配置表格字段显示
4. 添加筛选区块:按状态、优先级筛选
工单详情页面:
1. 新建页面"工单详情"(设置 URL 参数:/:id)
2. 添加区块:工单详情
3. 添加区块:关联的操作记录(子表格)
步骤3:配置权限
普通用户权限:
- 工单表:查看自己提交的工单
- 提交工单:允许
- 编辑工单:仅自己的工单
客服人员权限:
- 工单表:查看所有工单
- 编辑工单:允许
- 分配工单:允许
步骤4:创建工作流
工单提交通知流程:
触发器:提交工单
↓
条件判断:优先级是否为"紧急"
↓ 是
发送邮件:通知技术负责人
↓
更新工单:状态变为"处理中"
插件系统
NocoBase 的所有功能都是插件,可以按需安装:
官方插件:
| 插件 | 功能 |
|---|---|
| @nocobase/plugin-workflow | 工作流引擎 |
| @nocobase/plugin-ui-routes | 页面路由管理 |
| @nocobase/plugin-auth | 认证授权 |
| @nocobase/plugin-file-manager | 文件管理 |
| @nocobase/plugin-charts | 图表统计 |
| @nocobase/plugin-notification | 通知中心 |
安装插件:
# 命令行安装
npm install @nocobase/plugin-charts
# 管理后台安装
# 设置 → 插件 → 搜索 → 安装
开发自定义插件:
# 创建插件
npx nocobase create plugin my-plugin
# 目录结构
my-plugin/
├── package.json
├── src/
│ ├── index.ts # 插件入口
│ ├── client.ts # 前端代码
│ └── server.ts # 后端代码
└── README.md
常见问题
Q:NocoBase 和 Airtable 有什么区别?
A:
- NocoBase 开源且可自托管,Airtable 是 SaaS
- NocoBase 支持复杂权限和工作流
- NocoBase 可深度定制和扩展
Q:能用于生产环境吗?
A:可以。NocoBase 已被多家企业用于生产环境,支持:
- 水平扩展
- 高可用部署
- 数据备份恢复
Q:数据存在哪里?
A:
- 自托管版本:数据存储在你自己的数据库
- 支持 MySQL、PostgreSQL、SQLite、MariaDB
Q:如何升级?
A:
# Docker 部署
docker-compose pull && docker-compose up -d
# 源码部署
git pull origin main
npm install
npm run build
适用场景
推荐使用:
- 企业内部管理系统(CRM、OA、ERP)
- 数据采集和审批流程
- 项目管理和任务跟踪
- 客户关系管理
- 库存和订单管理
不推荐使用:
- 需要复杂业务逻辑的场景(建议定制开发)
- 高并发面向用户的 C端应用
- 需要复杂报表和分析的系统
总结
NocoBase 用"数据模型驱动 + AI 集成 + 插件架构"的组合,重新定义了无代码开发平台的可能性。
核心优势回顾:
- 数据模型驱动:数据结构与界面分离,灵活度高
- AI 原生:将 AI 能力嵌入业务系统
- 所见即所得:可视化配置,简单易用
- 插件化架构:高度可扩展,按需安装
- 数据自主:支持完全自托管
- 企业级:细粒度权限、工作流、高可用
对于需要快速搭建业务系统、追求数据自主、有一定定制需求的企业,NocoBase 是绝佳选择。
本文由无边界科技技术团队分享,专注软件开发与技术解决方案。
官网:wubianj.com
© 版权归无边界科技所有,版权所有。
更多推荐



所有评论(0)