基于React的开源低代码框架ToolJet
什么是 ToolJet ?
ToolJet是一个开源低代码框架,可以用最少的工程工作量快速构建和部署内部工具。ToolJet的拖放式前端构建器允许您在几分钟内构建复杂的响应式前端。您还可以连接到数据源,如数据库(PostgreSQL、MongoDB、Elasticsearch等)、API端点(ToolJet支持导入OpenAPI规范和OAuth2授权)、SaaS工具(Stripe、Slack、Google Sheets、Airtable、Notion等)和对象存储服务(S3、GCS、Minio等),以获取和写入数据。
安装
在群晖上以 Docker 方式安装。
docker-compose.yml
将下面的内容保存为 docker-compose.yml 文件
1 | version: '3' |
tooljet/tooljet-client-ce:latest对应的版本为v2.4.2tooljet/tooljet-server-ce:latest对应的版本为v2.14.0
env.txt
将下面的内容保存为 env.txt 文件,之所以没用使用默认的 .env 做文件名,主要是为了便于在 FileStation 中编辑修改
1 | TOOLJET_HOST=http://192.168.0.197:9480 |
TOOLJET_HOST:站点访问地址,主机IP + 端口,端口要和docker-compose.yml中client的端口对应;LOCKBOX_MASTER_KEY:用于机密数据源凭证的秘钥,应使用32字节的十六进制字符串,可以用openssl rand -hex 32生成;SECRET_KEY_BASE:用于加密会话cookie,使用64字节十六进制字符串,可以用openssl rand -hex 64生成;PG_DB:数据库库名,和docker-compose.yml中POSTGRES_DB对应;PG_USER:数据库用户,和docker-compose.yml中POSTGRES_USER对应;PG_PASS:数据库密码,和docker-compose.yml中POSTGRES_PASSWORD对应;PG_HOST:数据库主机,和docker-compose.yml中 服务名称postgres对应;
更多的变量说明,请参考官方的文档:https://docs.tooljet.com/docs/setup/env-vars
一键启动
然后执行下面的命令
1 | # 新建文件夹 tooljet 和 子目录 |
运行
在浏览器中输入 http://群晖IP:9480 就能看到设置界面

设置管理员

设置工作区名称,例如:test

设置公司信息,比如您的角色,例如: Other,都是无关紧要的,随便填就行


主界面

首先要添加一个数据源

支持 Databases、APIs、Cloud Storages,基本市面上主流的都支持

用 lsky 库做个测试,设置没问题的话,连接测试会显示 CONNECTION VERIFIED

SAVE 就可以了

新建一个 app,可以选择模板,或者导入

到主界面了

通过拖拽组件,来搭建应用,建议看官方文件快速入门:
https://docs.tooljet.com/docs/#the-very-quick-quickstart
不管哪一款低代码框架,基本的流程一般都是下面👇这样的:
- 连接数据库
- 创建新应用程序
- 构建
UI - 生成查询并将数据绑定到
UI - 预览、发布和共享应用程序
这个项目有个汉化版本,https://github.com/mousheng/tooljet_cn,增强了一些功能,比如二维码组件、评论组件、相册组件等等,使其更符合国内使用习惯。有兴趣可以去看看

参考文档
ToolJet/ToolJet: ToolJet is an open-source low-code platform for building and deploying internal tools with minimal engineering efforts 🚀
地址:https://github.com/ToolJet/ToolJetDocker | ToolJet
地址:https://docs.tooljet.com/docs/setup/docker/Docker | ToolJet
地址:https://docs.tooljet.com/docs/contributing-guide/setup/docker/Tooljet is not deploying correctly on docker · Issue #3051 · ToolJet/ToolJet
地址:https://github.com/ToolJet/ToolJet/issues/3051