NocoBase 教程 - 开源无代码平台
项目概述
NocoBase是一个开源的无代码/低代码平台,专为快速构建业务应用而设计,提供了可视化的应用构建工具,支持数据管理、工作流自动化、权限控制等企业级功能,无需编写代码即可创建复杂的业务系统。
- 项目链接:https://github.com/nocobase/nocobase
- 官方网站:https://www.nocobase.com/
- GitHub Stars:12k+
核心概念
- 应用:NocoBase中的基本构建单元,包含多个集合和工作流
- 集合:数据模型,类似于数据库表,包含多个字段
- 字段:数据模型的属性,如文本、数字、日期等
- 记录:集合中的数据实例,类似于数据库中的行
- 视图:数据的展示方式,如表格、表单、看板等
- 工作流:自动化业务流程,包含触发条件和操作
- 权限:用户对应用、集合和记录的访问控制
- 角色:用户权限的集合,如管理员、编辑、查看者等
- 插件:NocoBase的扩展功能,如文件上传、地图、日历等
- 主题:应用的视觉样式配置
核心功能
- 可视化应用构建:通过拖拽方式快速创建应用
- 灵活的数据模型:支持多种字段类型和关系
- 丰富的视图类型:表格、表单、看板、日历、图表等
- 工作流自动化:支持触发条件和自定义操作
- 细粒度权限控制:基于角色的访问控制
- 多语言支持:内置国际化功能
- 文件管理:支持文件上传和存储
- 插件系统:可扩展的插件架构
- API接口:自动生成RESTful API
- 主题定制:支持自定义主题和品牌
安装与设置
基本安装
# 使用 Docker 部署
docker run -d --name nocobase -p 13000:80 -v ./nocobase-data:/app/data nocobase/nocobase
# 或者使用 Docker Compose
# 创建 docker-compose.yml 文件
version: '3'
services:
nocobase:
image: nocobase/nocobase
container_name: nocobase
ports:
- "13000:80"
volumes:
- ./nocobase-data:/app/data
environment:
- NODE_ENV=production
- DB_DIALECT=sqlite
- DB_STORAGE=/app/data/nocobase.db
restart: unless-stopped
# 启动服务
docker-compose up -d基本设置
- 访问应用:打开浏览器,访问 http://localhost:13000
- 创建管理员账号:按照提示创建管理员账号
- 创建应用:点击 "Create App" 按钮创建新应用
- 配置应用:设置应用名称、描述和图标
- 邀请团队成员:在设置中邀请团队成员协作
基本使用
创建集合
进入应用:登录NocoBase,进入创建的应用
创建集合:
- 点击左侧导航栏的 "Collections" 按钮
- 点击 "Create Collection" 按钮
- 输入集合名称和描述
- 点击 "Save" 按钮
添加字段:
- 进入集合编辑页面
- 点击 "Add Field" 按钮
- 选择字段类型(如文本、数字、日期等)
- 配置字段属性
- 点击 "Save" 按钮
设置字段关系:
- 点击 "Add Field" 按钮
- 选择 "Relationship" 字段类型
- 选择关联的集合
- 配置关系类型(如一对一、一对多、多对多)
- 点击 "Save" 按钮
创建视图
进入集合:点击左侧导航栏的集合名称
创建视图:
- 点击 "Add View" 按钮
- 选择视图类型(如表格、表单、看板等)
- 输入视图名称
- 配置视图属性
- 点击 "Save" 按钮
配置表格视图:
- 进入表格视图编辑页面
- 选择要显示的字段
- 配置字段顺序和宽度
- 设置排序和筛选条件
- 点击 "Save" 按钮
配置表单视图:
- 进入表单视图编辑页面
- 选择要显示的字段
- 配置字段布局和验证规则
- 设置默认值
- 点击 "Save" 按钮
创建记录
进入集合:点击左侧导航栏的集合名称
添加记录:
- 点击 "Add Record" 按钮
- 填写表单字段
- 点击 "Save" 按钮
编辑记录:
- 在表格视图中点击记录行
- 修改字段值
- 点击 "Save" 按钮
删除记录:
- 在表格视图中选择记录
- 点击 "Delete" 按钮
- 确认删除操作
配置权限
进入设置:点击左侧导航栏的 "Settings" 按钮
创建角色:
- 点击 "Roles" 选项
- 点击 "Create Role" 按钮
- 输入角色名称和描述
- 配置角色权限
- 点击 "Save" 按钮
分配用户角色:
- 点击 "Users" 选项
- 选择用户
- 分配角色
- 点击 "Save" 按钮
设置集合权限:
- 进入集合编辑页面
- 点击 "Permissions" 选项
- 配置不同角色的权限
- 点击 "Save" 按钮
使用工作流
进入工作流:点击左侧导航栏的 "Workflows" 按钮
创建工作流:
- 点击 "Create Workflow" 按钮
- 输入工作流名称和描述
- 选择触发条件(如记录创建、更新、删除)
- 配置操作(如发送通知、更新记录、调用API等)
- 点击 "Save" 按钮
配置工作流触发条件:
- 选择触发类型(如记录事件、定时触发、手动触发)
- 配置触发条件
- 点击 "Save" 按钮
配置工作流操作:
- 点击 "Add Action" 按钮
- 选择操作类型
- 配置操作参数
- 点击 "Save" 按钮
高级特性
插件系统
安装插件:
- 点击左侧导航栏的 "Plugins" 按钮
- 浏览可用插件
- 点击 "Install" 按钮安装插件
- 按照提示配置插件
常用插件:
- 文件上传:支持文件上传和管理
- 地图:支持地理位置字段和地图展示
- 日历:支持日历视图和事件管理
- 图表:支持数据可视化图表
- API:支持自定义API接口
- 邮件:支持邮件发送和接收
- SMS:支持短信发送
- 第三方集成:支持与其他系统集成
开发自定义插件:
- 克隆NocoBase代码库
- 创建插件目录结构
- 编写插件代码
- 构建和安装插件
自定义主题
进入主题设置:
- 点击左侧导航栏的 "Settings" 按钮
- 点击 "Theme" 选项
配置主题:
- 选择预设主题(如浅色、深色)
- 自定义主题颜色
- 配置字体和图标
- 点击 "Save" 按钮
创建自定义主题:
- 点击 "Create Theme" 按钮
- 输入主题名称
- 配置主题属性
- 点击 "Save" 按钮
国际化
进入国际化设置:
- 点击左侧导航栏的 "Settings" 按钮
- 点击 "i18n" 选项
添加语言:
- 点击 "Add Language" 按钮
- 选择语言
- 点击 "Save" 按钮
翻译内容:
- 选择语言
- 输入翻译内容
- 点击 "Save" 按钮
切换语言:
- 在应用界面点击语言选择器
- 选择目标语言
API接口
进入API设置:
- 点击左侧导航栏的 "Settings" 按钮
- 点击 "API" 选项
启用API:
- 切换 "Enable API" 开关
- 配置API密钥
- 点击 "Save" 按钮
使用API:
- 查看API文档
- 使用API密钥进行认证
- 调用API接口操作数据
API示例:
// 获取集合数据 fetch('http://localhost:13000/api/collections/users/records', { method: 'GET', headers: { 'Authorization': 'Bearer YOUR_API_KEY', 'Content-Type': 'application/json', }, }) .then(response => response.json()) .then(data => console.log(data)); // 创建记录 fetch('http://localhost:13000/api/collections/users/records', { method: 'POST', headers: { 'Authorization': 'Bearer YOUR_API_KEY', 'Content-Type': 'application/json', }, body: JSON.stringify({ name: 'John Doe', email: 'john@example.com', }), }) .then(response => response.json()) .then(data => console.log(data));
数据导入导出
导入数据:
- 进入集合页面
- 点击 "Import" 按钮
- 选择文件格式(如CSV、Excel)
- 上传文件
- 映射字段
- 点击 "Import" 按钮
导出数据:
- 进入集合页面
- 点击 "Export" 按钮
- 选择导出格式(如CSV、Excel、JSON)
- 配置导出选项
- 点击 "Export" 按钮
实用场景
客户关系管理(CRM)
功能需求:创建一个客户关系管理系统,支持客户信息管理、销售机会跟踪和任务分配。
实现步骤:
创建集合:
- Customers:客户信息集合(姓名、邮箱、电话、地址等字段)
- Opportunities:销售机会集合(客户、金额、阶段、预计关闭日期等字段)
- Tasks:任务集合(标题、描述、分配给、截止日期、状态等字段)
设置关系:
- Customers 与 Opportunities:一对多关系
- Customers 与 Tasks:一对多关系
- Opportunities 与 Tasks:一对多关系
创建视图:
- Customers:表格视图、详情视图
- Opportunities:看板视图(按阶段)、表格视图
- Tasks:日历视图、表格视图
配置工作流:
- 客户创建时发送欢迎邮件
- 销售机会状态变更时通知负责人
- 任务截止日期前发送提醒
设置权限:
- 销售团队:可访问和编辑客户、机会和任务
- 管理层:可查看所有数据和报表
- 客服团队:只能访问客户信息
项目管理系统
功能需求:创建一个项目管理系统,支持项目规划、任务分配和进度跟踪。
实现步骤:
创建集合:
- Projects:项目集合(名称、描述、开始日期、结束日期、状态等字段)
- Tasks:任务集合(项目、标题、描述、分配给、截止日期、状态、优先级等字段)
- Milestones:里程碑集合(项目、名称、日期、描述等字段)
- Team Members:团队成员集合(姓名、角色、邮箱等字段)
设置关系:
- Projects 与 Tasks:一对多关系
- Projects 与 Milestones:一对多关系
- Projects 与 Team Members:多对多关系
- Tasks 与 Team Members:多对多关系
创建视图:
- Projects:表格视图、详情视图
- Tasks:看板视图(按状态)、甘特图视图
- Milestones:日历视图、表格视图
配置工作流:
- 任务分配时通知负责人
- 任务状态变更时更新项目进度
- 里程碑完成时发送通知
设置权限:
- 项目经理:可编辑所有项目和任务
- 团队成员:只能编辑分配给自己的任务
- 查看者:只能查看项目和任务信息
库存管理系统
功能需求:创建一个库存管理系统,支持产品管理、库存跟踪和订单处理。
实现步骤:
创建集合:
- Products:产品集合(名称、描述、SKU、价格、库存数量等字段)
- Suppliers:供应商集合(名称、联系人、邮箱、电话等字段)
- Orders:订单集合(客户、日期、状态、总金额等字段)
- Order Items:订单项集合(订单、产品、数量、单价等字段)
- Inventory Transactions:库存交易集合(产品、类型、数量、日期、备注等字段)
设置关系:
- Products 与 Suppliers:多对多关系
- Orders 与 Order Items:一对多关系
- Products 与 Order Items:一对多关系
- Products 与 Inventory Transactions:一对多关系
创建视图:
- Products:表格视图(显示库存状态)、详情视图
- Orders:表格视图、详情视图
- Inventory Transactions:表格视图、图表视图
配置工作流:
- 库存低于阈值时发送提醒
- 订单创建时更新库存
- 订单状态变更时通知客户
设置权限:
- 库存管理员:可编辑产品和库存信息
- 销售团队:可创建和管理订单
- 采购团队:可管理供应商和采购订单
最佳实践
应用设计:
- 合理规划数据模型和关系
- 使用命名规范,保持一致性
- 设计清晰的用户界面和导航
数据管理:
- 定期备份数据
- 设置数据验证规则,确保数据质量
- 使用视图和筛选器组织数据
工作流设计:
- 从简单的工作流开始,逐步复杂
- 测试工作流的触发条件和操作
- 监控工作流执行情况
权限管理:
- 遵循最小权限原则
- 定期审查和更新权限设置
- 使用角色管理权限,而非个人权限
性能优化:
- 合理使用索引
- 避免创建过多字段和关系
- 优化视图和查询
团队协作:
- 明确团队成员的职责和权限
- 建立应用开发和维护的流程
- 定期培训团队成员使用NocoBase
版本管理:
- 定期导出应用配置
- 记录应用变更历史
- 测试变更后再部署到生产环境
安全管理:
- 使用强密码和多因素认证
- 定期更新NocoBase版本
- 限制API访问和使用
集成与扩展:
- 合理使用插件扩展功能
- 利用API与其他系统集成
- 考虑未来的扩展性
用户体验:
- 设计直观的用户界面
- 提供清晰的导航和指引
- 收集用户反馈并持续改进
常见问题与解决方案
1. 安装问题
问题:Docker部署失败或应用无法启动
解决方案:
- 检查Docker是否正确安装和运行
- 验证端口是否被占用
- 查看Docker日志获取详细错误信息
- 确保有足够的磁盘空间和内存
2. 数据模型问题
问题:集合关系配置错误或数据关联失败
解决方案:
- 仔细检查关系类型和配置
- 确保关联的集合和字段存在
- 验证数据完整性
- 重新创建关系并测试
3. 工作流问题
问题:工作流不触发或执行失败
解决方案:
- 检查触发条件是否正确
- 验证操作配置是否完整
- 查看工作流执行日志
- 测试工作流的各个步骤
4. 权限问题
问题:用户无法访问或操作数据
解决方案:
- 检查用户角色和权限设置
- 验证集合和记录级权限
- 测试不同角色的访问权限
- 确保权限继承关系正确
5. 性能问题
问题:应用加载缓慢或操作响应延迟
解决方案:
- 优化数据模型和关系
- 减少视图中的字段数量
- 合理使用索引
- 增加服务器资源
6. 插件问题
问题:插件安装失败或功能异常
解决方案:
- 检查插件版本与NocoBase版本兼容性
- 查看插件安装日志
- 重新安装插件
- 联系插件开发者获取支持
7. 国际化问题
问题:翻译不显示或语言切换不工作
解决方案:
- 检查语言包是否正确安装
- 验证翻译内容是否完整
- 测试语言切换功能
- 查看浏览器控制台错误
8. API问题
问题:API调用失败或返回错误
解决方案:
- 检查API密钥是否正确
- 验证API端点和参数
- 查看API请求和响应
- 检查服务器日志
9. 备份与恢复问题
问题:数据备份失败或恢复后数据丢失
解决方案:
- 定期测试备份和恢复流程
- 确保备份文件完整
- 验证恢复环境与备份环境兼容
- 保持备份的安全性
10. 升级问题
问题:NocoBase升级失败或功能异常
解决方案:
- 升级前备份数据和配置
- 检查升级文档和兼容性说明
- 测试升级后的功能
- 如有问题,回滚到之前的版本
与其他无代码平台的比较
NocoBase vs Airtable
- 开源 vs 闭源:NocoBase是开源的,Airtable是闭源的
- 部署选项:NocoBase支持本地部署,Airtable是云服务
- 价格:NocoBase免费使用,Airtable有免费和付费计划
- 扩展性:NocoBase支持插件扩展,Airtable有API和集成
- 功能:两者功能相似,但NocoBase更注重企业级功能
- 社区支持:NocoBase有活跃的开源社区,Airtable有官方支持
NocoBase vs Bubble
- 目标用户:NocoBase面向业务用户和开发者,Bubble更面向非技术用户
- 开发方式:NocoBase通过配置和拖拽构建,Bubble通过可视化编程
- 扩展性:NocoBase通过插件扩展,Bubble通过插件和自定义代码
- 性能:NocoBase通常性能更好,特别是处理大量数据时
- 学习曲线:Bubble学习曲线更平缓,NocoBase需要一定的技术理解
NocoBase vs Retool
- 定位:NocoBase是无代码平台,Retool是低代码平台
- 开发方式:NocoBase通过配置构建,Retool通过组件和代码
- 扩展性:两者都支持扩展,但Retool更注重开发者体验
- 集成:Retool与更多第三方服务集成,NocoBase更注重内部功能
- 价格:NocoBase免费,Retool有付费计划
参考资源
- 官方文档:https://docs.nocobase.com/
- GitHub 仓库:https://github.com/nocobase/nocobase
- 官方教程:https://docs.nocobase.com/guides
- 社区论坛:https://community.nocobase.com/
- 示例应用:https://docs.nocobase.com/examples
- API文档:https://docs.nocobase.com/api
- 插件开发:https://docs.nocobase.com/plugins
- 部署指南:https://docs.nocobase.com/deployment
- 视频教程:https://www.youtube.com/c/NocoBase
- 常见问题:https://docs.nocobase.com/faq