各位开发者朋友,大家好。此前我们在系列教程中初步认识了 NocoBase 这款开源零代码平台,很多朋友留言问到底怎么把它跑起来、怎么用它搭一个真实可用的业务系统。本期教程就围绕“安装”和“使用”两个核心环节,以搭建一个简单博客后台为案例,完整演示从下载部署到数据建模,再到页面配置和权限管理的全过程。无论你是第一次接触零代码,还是已经在对比各类低代码平台,这篇文章都能给你一条清晰、可落地的实操路径。
1. 背景与核心概念
1.1 什么是 NocoBase
NocoBase 是一个开源免费的无代码 / 低代码开发平台,它的核心特点是“数据模型驱动”。简单来说,你可以先在界面上设计好数据库表结构,再通过拖拽式配置把页面、表单、列表、图表等模块组合起来,从而搭建出一套完整的管理系统。它不像传统开发那样需要写大量前后端代码,也不像很多表单类零代码平台那样只能做简单的数据收集,而是直接面向业务系统开发和私有化部署场景。
和市面上的表单工具、低代码平台相比,NocoBase 有几个很明显的区别:
- 数据模型优先。你在界面上创建的每个数据表,都会真实写入底层数据库,数据结构和关系可以精确控制。
- 所见即所得。页面配置时可以直接预览效果,区块、字段、操作按钮都可以随时调整。
- 插件化架构。官方提供大量插件,也支持开发者编写自己的扩展包,灵活度比传统零代码平台高很多。
- 开源可私有化部署。代码托管在 GitHub 上,数据完全由自己掌控,适合企业内部系统、外包项目、个人作品集等场景。
1.2 为什么需要零代码平台
在介绍安装之前,我想先聊聊为什么需要 NocoBase 这类工具。实际开发中,很多管理系统存在大量重复性工作:用户管理、文章发布、订单记录、设备台账、项目进度跟踪……这些功能结构相似,但每个企业又有自己的字段和流程。用传统方式做,需要建表、写接口、写页面、做权限,一套下来至少一两周;用 NocoBase,可能半天就能完成一个基础版本。
零代码平台的核心价值在于:
- 缩短交付周期。配置化开发远快于编码开发。
- 降低维护成本。字段和页面调整不需要发版。
- 业务人员可参与。业务人员也能直接调整表单和流程。
- 私有化部署保证数据安全。这对企业内部系统尤其重要。
1.3 NocoBase 的典型应用场景
从社区和官方案例来看,NocoBase 常用于以下场景:
- 企业内部管理系统:OA、CRM、进销存、项目管理、工单系统。
- 数据收集与报表平台:巡检记录、问卷收集、运营数据汇总。
- 内容管理系统:博客后台、新闻发布、帮助中心。
- 低代码定制化平台:在 NocoBase 基础上二次开发,交付给特定客户。
我们今天选择博客案例,是因为它结构清晰、字段类型丰富,能覆盖数据表、关系字段、页面区块、权限配置等核心功能,非常适合用来演示。
2. 环境准备与版本说明
2.1 推荐环境
NocoBase 支持 Docker 部署和直接源码运行两种方式。对于大多数用户,我强烈推荐使用 Docker Compose 方式,因为它依赖少、启动快、易于卸载和升级。
本文示例的推荐环境如下:
| 软件 | 版本建议 | 说明 |
|---|---|---|
| 操作系统 | Windows 10/11、Ubuntu 20.04+、macOS | 本文以 Windows 和 Linux 为主 |
| Docker | Docker Engine 20.10+ | 需要支持 Docker Compose v2 |
| Docker Compose | v2 版本 | 新版 Docker Desktop 自带 |
| 数据库 | PostgreSQL 14+ 或 SQLite | 生产环境建议 PostgreSQL |
| 内存 | 4G 以上 | NocoBase 运行需要一定内存 |
| 浏览器 | Chrome / Edge 最新版 | 后台管理界面 |
注意:版本需要根据你的项目实际情况调整,本文示例以常见环境为例,重点演示配置思路。如果你使用较低版本 Docker 或操作系统比较老,部分命令可能需要微调。
2.2 NocoBase 版本说明
NocoBase 目前迭代速度比较快,1.x 版本已经比较成熟,2.x 版本在 UI、性能、插件体系上做了大量优化。本文写作时以 NocoBase 2.x 为主,但绝大多数操作步骤在 1.x 上也通用。
你可以通过以下命令查看官方可用版本:
docker search nocobase也可以直接访问 Docker Hub 或 GitHub Releases 页面查看最新版。生产环境建议锁定版本号,避免自动升级带来的兼容性问题。
2.3 端口规划
NocoBase 默认使用80端口对外提供服务,数据库使用5432(PostgreSQL)。如果你的服务器 80 端口已被其他服务占用,可以修改映射端口。本文示例使用13080作为外部访问端口,避免冲突。
3. 安装部署 NocoBase 2
3.1 方式一:Docker Compose 一键部署(推荐)
这是最简单的方式。先创建项目目录和配置文件。
mkdir nocobase-demo cd nocobase-demo在目录下创建docker-compose.yml文件,内容如下:
version: "3" services: nocobase: image: nocobase/nocobase:latest container_name: nocobase-app ports: - "13080:80" environment: - APP_KEY=your-secret-key-change-me - DB_DIALECT=postgres - DB_HOST=postgres - DB_PORT=5432 - DB_DATABASE=nocobase - DB_USER=nocobase - DB_PASSWORD=nocobase - TZ=Asia/Shanghai volumes: - ./storage:/app/nocobase/storage restart: always depends_on: - postgres postgres: image: postgres:14 container_name: nocobase-postgres environment: - POSTGRES_DB=nocobase - POSTGRES_USER=nocobase - POSTGRES_PASSWORD=nocobase volumes: - ./postgres-data:/var/lib/postgresql/data restart: always配置解释:
ports: 将宿主机13080映射到容器内80端口,访问地址是http://localhost:13080。APP_KEY: NocoBase 的应用密钥,用于加密和安全相关逻辑,生产环境务必改为随机长字符串。DB_*: 数据库连接配置,这里连接的是同文件里定义的 PostgreSQL 容器。volumes: 将容器内存储目录挂载到宿主机,保证重启后数据不丢失。depends_on: 确保 PostgreSQL 先启动。
然后执行启动命令:
docker-compose up -d等待镜像拉取和容器启动,首次拉取可能需要几分钟。启动完成后,查看容器状态:
docker-compose ps当状态显示Up时,说明启动成功。
3.2 方式二:使用 create-nocobase-app 安装
如果你不想使用 Docker,也可以使用 Node.js 直接安装。这种方式适合开发调试和二次开发。
先确保本机已安装 Node.js 18 或更高版本,然后执行:
yarn create nocobase-app my-nocobase-app cd my-nocobase-app yarn install yarn nocobase install yarn start这种方式对 Node 版本有一定要求,如果遇到依赖安装失败,需要检查 Node 和 yarn 版本。对于刚接触 NocoBase 的朋友,还是建议优先使用 Docker 方式。
3.3 初始化 NocoBase
无论使用哪种方式安装,首次访问时需要创建管理员账号。打开浏览器,访问http://localhost:13080,会看到欢迎界面。
点击“创建管理员账号”,填写管理员邮箱、密码等信息。这里的密码建议设置复杂一些,因为它是整个系统的超级管理员账号。创建完成后,系统会进入 NocoBase 主界面。
这里有一个常见疑问:很多朋友找“默认用户名密码”,其实 NocoBase 没有默认账号,首次部署时必须自己创建管理员账号。如果你在文档或视频里看到默认账号,那通常是演示环境,不是正式安装。
4. 博客系统实战案例
4.1 需求分析与功能拆分
我们用一个博客后台作为案例,目标功能如下:
- 文章管理:支持发布、编辑、删除文章。
- 分类管理:文章可以属于一个分类。
- 标签管理:一篇文章可以有多个标签。
- 评论管理:读者可以发表评论,管理员可以审核或删除。
- 站点配置:维护博客名称、简介等信息。
将上述功能拆成数据表,一共需要 5 张表:文章表、分类表、标签表、评论表、配置表。其中文章和分类是一对多关系,文章和标签是多对多关系,文章和评论是一对多关系。
4.2 创建数据表
登录 NocoBase 控制台后,点击左上角的菜单按钮,进入“数据表管理”页面。点击“创建数据表”,选择“创建新表”,开始创建。
4.2.1 创建文章表
表名建议填写posts,显示名称填写“文章”。然后添加字段:
| 字段名称 | 字段类型 | 说明 |
|---|---|---|
| title | 单行文本 | 文章标题 |
| content | 多行文本 | 文章正文 |
| status | 单选 | 草稿/已发布 |
| published_at | 日期 | 发布时间 |
| cover | 附件 | 封面图 |
| view_count | 整数 | 浏览量 |
| category | 关联 | 关联分类表 |
| tags | 关联 | 多对多关联标签表 |
创建字段时需要注意:NocoBase 会自动为每张表生成id、created_at、updated_at等内置字段,不需要手动添加。关系字段需要在关联表创建后才能建立,所以建议先创建所有数据表,再补充关系字段。
4.2.2 创建分类表
表名填写categories,显示名称填写“分类”。字段包括:
| 字段名称 | 字段类型 | 说明 |
|---|---|---|
| name | 单行文本 | 分类名称 |
| slug | 单行文本 | 分类别名,用于 URL |
| description | 多行文本 | 分类描述 |
4.2.3 创建标签表
表名填写tags,显示名称填写“标签”。字段包括:
| 字段名称 | 字段类型 | 说明 |
|---|---|---|
| name | 单行文本 | 标签名称 |
| slug | 单行文本 | 标签别名 |
4.2.4 创建评论表
表名填写comments,显示名称填写“评论”。字段包括:
| 字段名称 | 字段类型 | 说明 |
|---|---|---|
| content | 多行文本 | 评论内容 |
| author | 单行文本 | 评论者昵称 |
| 邮箱 | 评论者邮箱 | |
| status | 单选 | 待审核/已通过/已拒绝 |
| post | 关联 | 关联文章表 |
4.2.5 建立关系字段
现在回到文章表,为category字段设置关联目标为“分类表”,关系类型选择“多对一”。为tags字段设置关联目标为“标签表”,关系类型选择“多对多”。
在评论表中,为post字段设置关联目标为“文章表”,关系类型选择“多对一”。
4.3 配置页面与菜单
数据表创建完成后,接下来配置后台管理页面。NocoBase 的界面采用“菜单 + 区块”的方式组合页面。点击界面左上角菜单进入菜单配置模式,然后添加菜单项。
4.3.1 创建文章管理页面
- 点击“添加菜单项”,选择“页面类型”为“数据表页面”。
- 在页面中点击“添加区块”,选择“数据表区块”中的“表格”类型。
- 数据源选择“文章表”。
- 拖动字段到表格中显示,例如标题、分类、状态、发布时间。
- 点击“筛选器”设置常用筛选条件,例如按状态筛选。
- 点击“操作”添加新建、编辑、删除、导出按钮。
这样,一个具备增删改查功能的文章管理页面就完成了。整个过程完全可视化,不需要写一行代码。
4.3.2 创建评论管理页面
同样的方式,创建一个评论管理页面。表格中显示评论内容、作者、邮箱、所属文章、状态,并添加状态批量审核操作。
4.3.3 配置首页仪表盘
NocoBase 支持仪表盘页面。可以新建一个仪表盘页面,添加“统计数字”区块,统计文章总数、已发布数、评论总数;再添加“图表”区块,展示最近一个月文章发布趋势。这些图表都是基于数据自动生成的,不需要写 SQL。
4.4 配置角色权限
NocoBase 内置了基于角色的权限控制(ACL)。进入“设置” -> “角色权限”,可以看到系统内置了管理员角色。我们可以新建角色,例如“编辑”和“访客”。
4.4.1 编辑角色
新建“编辑”角色后,配置该角色对每个数据表的操作权限。例如:
- 文章表:允许查看、创建、编辑,不允许删除。
- 分类表:允许查看、创建、编辑。
- 标签表:允许查看。
- 评论表:允许查看、编辑状态,不允许删除。
配置完成后,可以为编辑角色添加用户。这样,编辑人员登录后只能操作被授权的数据,无法越权。
4.4.2 访客角色
如果博客需要对外开放前台页面,可以为“访客”角色配置公开数据表的读取权限。例如允许访客查看已发布的文章和已通过的评论。注意,访客角色直接对应未登录的匿名用户,配置时只开放必要字段即可,避免敏感数据泄露。
4.5 运行与验证
完成以上配置后,刷新浏览器,可以看到一个完整的博客后台:
- 在“文章管理”页面新建一篇文章,选择分类、标签,填写标题和正文,发布。
- 在“评论管理”页面查看评论并按状态审核。
- 切到编辑角色账号,验证权限是否生效。
- 切到访客视角,验证公开页面显示是否正常。
整个过程都可以在浏览器中完成,非常直观。你会发现,搭建一个能实际使用的管理系统,真的不需要写代码。
5. 常见问题与排查思路
5.1 常见问题速查表
| 问题现象 | 常见原因 | 解决思路 |
|---|---|---|
| 启动后访问页面空白 | 容器未完全启动,或资源不足 | 执行docker-compose logs查看日志,等待启动完成 |
| 数据库连接失败 | 数据库密码或库名配置不一致 | 检查docker-compose.yml中DB_DATABASE、DB_USER、DB_PASSWORD与 PostgreSQL 容器是否一致 |
| 修改数据后页面不刷新 | 浏览器缓存 | 强制刷新浏览器缓存,或清除 Cookie 后重试 |
| 创建数据表保存失败 | 字段名包含特殊字符 | 字段名只允许字母、数字和下划线 |
| 上传附件失败 | 存储目录权限不足 | 检查宿主机./storage目录权限 |
| 忘记管理员密码 | 密码记忆丢失 | 在容器中执行命令重置,详情见下文 |
| 页面接口 404 | 路由未生成或插件未启用 | 检查对应页面是否发布,插件是否启用 |
| Docker 镜像拉取慢 | 网络原因 | 配置 Docker 镜像加速器 |
5.2 忘记管理员密码怎么办
如果忘记管理员密码,可以通过命令行重置。进入容器:
docker exec -it nocobase-app bash然后执行:
yarn nocobase reset-admin-password按提示输入新的管理员邮箱和密码即可。注意,这个命令会重置管理员密码,不会删除数据。
5.3 版本升级注意事项
NocoBase 版本升级前,请确保备份数据。备份方式有两种:
- 数据库备份。如果使用 PostgreSQL,执行:
docker exec nocobase-postgres pg_dump -U nocobase nocobase > backup.sql- 存储目录备份。将宿主机
./storage目录整体拷贝一份。
升级时修改docker-compose.yml中的镜像版本号,然后执行:
docker-compose up -d升级后进入系统,检查数据表结构是否正常,功能是否完整。大版本升级前建议先在测试环境验证。
6. 最佳实践与工程建议
6.1 数据建模建议
NocoBase 虽然零代码,但数据建模的思维仍然非常重要。建议在动手配置前,先梳理业务对象、对象之间的关系、每个对象的字段列表。关系字段尽量在设计初期就确定好,后期再改关系类型会比较麻烦。
字段命名建议使用有意义的英文名称,例如title、published_at,不要用a、b这类无意义命名。虽然显示名称可以设置为中文,但底层字段名一旦大量使用后再修改,会影响关联关系和页面配置。
6.2 权限最小化原则
配置角色权限时,遵循“最小权限”原则。每个角色只分配完成工作所需的最少权限。例如,“编辑”角色不需要删除文章,就不要给删除权限;“访客”角色不能查看草稿文章,只能查看已发布内容。NocoBase 的 ACL 支持字段级权限控制,可以对敏感字段单独关闭权限。
6.3 定时备份与容灾
任何管理系统,数据备份都是最重要的工作。建议至少做到:
- 每天自动备份数据库。
- 每周备份完整存储目录。
- 备份文件存放到不同服务器或对象存储。
对于关键数据,可以设置 PostgreSQL 的自动备份脚本。另外,生产环境不要把APP_KEY暴露在公网,建议从环境变量或密钥管理服务中读取。
6.4 插件使用与二次开发边界
NocoBase 的插件生态非常丰富,能覆盖大部分通用需求。但遇到特殊业务逻辑时,插件不一定能满足,这时就需要评估是改变业务需求,还是进行二次开发。NocoBase 提供了扩展 API,可以编写自定义插件。二次开发建议在独立分支进行,并使用版本管理工具,避免影响主系统。
6.5 性能优化建议
对于中小型系统,NocoBase 默认配置完全够用。如果数据量较大,可以考虑:
- 给高频查询字段建立数据库索引。
- 关闭不用的区块和插件。
- 使用 CDN 加速静态资源。
- 将数据库和 NocoBase 部署在不同服务器上。
在对应字段的“高级配置”中,可以设置索引、默认值、验证规则等属性。善用这些功能,可以提高数据质量和查询效率。
6.6 日志与监控
在启动时指定TZ环境变量,可以保证日志时间正确。NocoBase 会将应用日志写入存储目录,定期检查日志能提前发现问题。对于正式生产环境,建议将 NocoBase 接入统一的日志采集和监控告警系统,例如 ELK、Prometheus 等。
7. 总结与下一步学习方向
通过本文,我们完成了以下内容:
- 理解了 NocoBase 的核心概念和零代码平台的价值。
- 使用 Docker Compose 部署了 NocoBase 2。
- 创建了博客系统的数据表,包括文章、分类、标签、评论等。
- 配置了数据管理页面和仪表盘。
- 实现了基于角色的权限控制。
- 排查了常见问题并整理了工程化建议。
接下来,如果你想继续深入学习 NocoBase,可以从以下几个方面入手:
- 工作流自动化。NocoBase 支持配置审批流、通知流等自动化流程,适合搭建工单系统。
- 数据可视化。深化图表和仪表盘配置,掌握聚合统计和联动筛选。
- 自定义插件开发。学习 NocoBase 的扩展机制,编写业务专用插件。
- API 集成。掌握 NocoBase 的 REST API,与其他系统打通数据。
NocoBase 是一款潜力很大的开源零代码平台,特别适合热爱技术、希望掌控数据的开发者。从今天开始动手搭一个自己的系统吧,过程中遇到问题,欢迎在评论区留言讨论。
如果本文对你有帮助,可以收藏备用,也欢迎转发给需要的朋友。我们下期教程再见。