在这里插入图片描述

明天有事外出,博客和 csdn 提前发,公众号还是明天定时发;


本文是应 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

在这里插入图片描述

  • 第二步、将下面的内容保存为 docker-compose.yml 文件
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 文件

# 新建文件夹 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(失败)

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

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

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,也成功的出现了登录界面

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.comadmin123

在这里插入图片描述

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

在这里插入图片描述

设置中文

安装完成之后,看官方文档发现可以用环境变量 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

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐