低代码开发平台NocoBase的安装

本文是应 CSDN 网友 bob89you 的要求而写

什么是 NocoBase ?

NocoBase 是一个极易扩展的开源无代码开发平台。 无需编程,使用 NocoBase 搭建自己的协作平台、管理系统,只需要几分钟时间。

NocoBase 是国人开发的,比较值得称赞的是, NocoBase 的文档和教程相对比较完善,这在开源项目中比较罕见,所以入门相对比较容易。但是也需要注意,NocoBase 正处在早期开发阶段,可能变动频繁,请谨慎用于生产环境。

NocoBase 支持三种安装方式,在群晖上我们默认还是采用 docker 方式安装,不过在安装过程中老苏还是遇到了坑,接下来请听我慢慢道来。

重要说明

  • 本文撰写时基于的安装版本为 0.7.0-alpha.78,所以结论只针对该版本;
  • 几个小时前发布的最新版本为 0.7.1-alpha.7,这个版本在发稿前做了简单的测试,发现所有的版本均失败,日志均只有👇两行内容,不建议安装最新版本;

数据库的选择

NocoBase 支持三种数据库,分别是 PostgreSQLMySQLSQLite ,老苏觉得既然是在群晖上,完全可以用群晖自带的 MariaDB 10 数据库。

以前都是这么干的,而且一直挺顺利的,但是没想到这次,不管是使用群晖自带的 MariaDB 10 数据库还是另外用 Docker 安装 MySQL 都遇到了问题。

MariaDB(失败)

这部分只是记录折腾的过程,但并没有成功,所以你完全可以跳过这个章节

官方并没有指定版本,老苏试了群晖自带的 MariaDB 5,从日志看,明确不支持。官方示例的 docker-compose.yml 中用的 MySQL 8 ,所以老苏用了群晖自带的 MariaDB 10 数据库。

  • 第一步、在 phpMyAdmin 中创建名为 nocobase 的空数据库。

为了演示方便,后面假设数据库密码都是:nocobase

mariadb10

  • 第二步、将下面的内容保存为 docker-compose.yml 文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
version: "3"

services:
app:
image: nocobase/nocobase:0.7.0-alpha.78
container_name: nocobase
environment:
- DB_DIALECT=mysql
- DB_HOST=192.168.0.197
- DB_PORT=3307
- DB_DATABASE=nocobase
- DB_USER=nocobase
- DB_PASSWORD=nocobase
- LOCAL_STORAGE_BASE_URL=http://192.168.0.197:13000/storage/uploads
volumes:
- ./storage:/app/nocobase/storage
ports:
- "13000:80"
  • 第三步、执行下面的命令,在 portainer 中执行也是可以的

后面虽然数据库不同,但是执行命令是一样的,不同的只是 docker-compose.yml 文件

1
2
3
4
5
6
7
8
9
10
# 新建文件夹 nocobase 和 子目录
mkdir -p /volume2/docker/nocobase/{mdata,pdata,storage}

# 进入 nocobase 目录
cd /volume2/docker/nocobase

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d
  • 第四步、在浏览器中输入 http://群晖IP:13000,页面空白,右上侧闪过红叉

从日志看有报错

但是检查数据库,已经生成了表

MySQL(失败)

这部分只是记录折腾的过程,但并没有成功,所以你完全可以跳过这个章节

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
version: "3"

services:
app:
image: nocobase/nocobase:0.7.0-alpha.78
networks:
- nocobase
depends_on:
- mysql
environment:
- DB_DIALECT=mysql
- DB_HOST=mysql
- DB_PORT=3306
- DB_DATABASE=nocobase
- DB_USER=nocobase
- DB_PASSWORD=nocobase
- LOCAL_STORAGE_BASE_URL=http://192.168.0.197:13000/storage/uploads
volumes:
- ./storage:/app/nocobase/storage
ports:
- "13000:80"
mysql:
image: mysql:8
volumes:
- ./mdata:/var/lib/mysql
environment:
- MYSQL_DATABASE=nocobase
- MYSQL_USER=nocobase
- MYSQL_PASSWORD=nocobase
- MYSQL_ROOT_PASSWORD=nocobase
restart: always
command: --character-set-server=utf8 --collation-server=utf8_unicode_ci
networks:
- nocobase

networks:
nocobase:
driver: bridge

这个表现症状虽然和 MariaDB 一样,但实际上从日志看是没有连上数据库,这个就比较奇怪了,感觉似乎是 Sequelize.js 这个 ORM 库设置上存在问题,但老苏不是程序员,没法验证。

SQLite(成功)

折腾 MariaDBMySQL 花了很长时间,但是老苏并不甘心就这样放弃,所以又折腾了 SQLite

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
version: "3"

services:
app:
image: nocobase/nocobase:0.7.0-alpha.78
container_name: nocobase
networks:
- nocobase
environment:
- LOCAL_STORAGE_BASE_URL=http://192.168.0.197:13000/storage/uploads
volumes:
- ./storage:/app/nocobase/storage
ports:
- "13000:80"

networks:
nocobase:
driver: bridge

日志中一切正常,很顺利的出现了登录界面

PostgreSQL(成功)

受到 SQLite 成功的鼓舞,老苏又测试了 PostgreSQL,也成功的出现了登录界面

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
version: "3"

services:
app:
image: nocobase/nocobase:0.7.0-alpha.78
networks:
- nocobase
environment:
- DB_DIALECT=postgres
- DB_HOST=postgres
- DB_DATABASE=nocobase
- DB_USER=nocobase
- DB_PASSWORD=nocobase
- LOCAL_STORAGE_BASE_URL=http://192.168.0.197:13000/storage/uploads
volumes:
- ./storage:/app/nocobase/storage
ports:
- "13000:80"
depends_on:
- postgres
postgres:
image: postgres:14
restart: always
networks:
- nocobase
command: postgres -c wal_level=logical
volumes:
- ./pdata:/var/lib/postgresql/data
environment:
POSTGRES_USER: nocobase
POSTGRES_DB: nocobase
POSTGRES_PASSWORD: nocobase

networks:
nocobase:
driver: bridge

小结

老苏测试的时候,nocobaselatest 版本对应的是 0.7.0-alpha.78,目前看来,要想跑起来,数据库暂时不能选择 MySQLMariaDB,至于是用 PostgreSQL 还是 SQLite ,看你的应用场景了,只是随便用用,SQLite 就足够了

运行

在浏览器中输入 http://群晖IP:13000 就能看到登录界面

初始化账号和密码是 admin@nocobase.com 和 admin123

登录成功后的主界面还是空空

设置中文

安装完成之后,看官方文档发现可以用环境变量 INIT_APP_LANG 设置语言,默认是 en-US,可选项还有 zh-CN

点右上角的管理员,弹出的菜单中选择简体中文即可

关于使用,官方有详细的教程,例如: 5分钟上手(https://docs-cn.nocobase.com/user-manual/introduction/5-minutes-to-get-started),图文并茂还有动图,而且还是中文的,所以功能就留给大家自己研究吧。

参考文档

nocobase/nocobase: NocoBase is a scalability-first, open-source no-code/low-code platform to build internal tools.
地址:https://github.com/nocobase/nocobase

介绍 - NocoBase
地址:https://docs-cn.nocobase.com/

Docker 安装 (👍 推荐) - NocoBase
地址:https://docs-cn.nocobase.com/getting-started/installation/docker-compose