跳转到内容

ToolJet 项目介绍

ToolJet 项目介绍

项目定位

ToolJet 是一个开源低代码框架,用于快速构建和部署内部工具。它通过拖拽式前端构建器 + 50+ 数据源集成,让非专业开发者也能在几分钟内创建功能完整的应用。

解决的核心问题:传统内部工具开发需要前后端全栈能力,ToolJet 将这一过程可视化——拖组件拼 UI、连数据源查写数据、用 JS/Python 写自定义逻辑。

核心能力

  • 可视化应用构建器:45+ 内置响应式组件(表格、图表、表单、进度条等),拖拽式布局
  • ToolJet Database:内置无代码数据库,基于 PostgREST 提供 RESTful API
  • 多人实时协同编辑:基于 Y.js (CRDT) 的多开发者同时编辑应用
  • 50+ 数据源集成:PostgreSQL、MongoDB、Elasticsearch、REST API、Stripe、Slack、Google Sheets 等
  • 工作流引擎:可视化编排定时任务、Webhook 触发、Python/JavaScript 执行
  • 多页应用支持:单应用内管理多个页面
  • 版本控制与 Git 同步:应用版本管理 + Git 同步(类似分支/发布模型)
  • 插件系统:通过 Marketplace 扩展数据源和组件
  • 细粒度权限控制:CASL 驱动的角色和组级权限管理
  • 多端自适应:桌面端和移动端布局自定义

技术栈

层级技术
前端React 18 + Webpack 5 + Zustand + Immer + Y.js (协同) + CodeMirror (代码编辑器) + Radix UI + TailwindCSS
后端NestJS 11 + TypeORM + PostgreSQL 13 + Redis + BullMQ (队列) + WebSocket (Y.js Gateway)
数据库代理PostgREST (ToolJet Database 的 REST API 层)
加密AES-256-GCM (Lockbox 模式,每表每列独立派生密钥)
可观测性OpenTelemetry (Tracing + Metrics) + Sentry + Pino 日志
工作流执行BullMQ 队列 + Temporal (EE)
语言TypeScript (前后端统一)
运行时Node.js 22

架构概览

快速体验

Terminal window
# Docker 一键启动(Community Edition)
docker run \
--name tooljet \
--restart unless-stopped \
-p 80:80 \
--platform linux/amd64 \
-v tooljet_data:/var/lib/postgresql/13/main \
tooljet/try:ee-lts-latest

访问 http://localhost 即可进入应用构建器。

本地开发环境(需要 PostgreSQL + Redis):

Terminal window
git clone https://github.com/ToolJet/ToolJet.git
cd ToolJet
# 配置 .env(参考 .env.example)
docker compose up postgres redis postgrest
npm run db:setup
npm run dev # 启动 client + server

教程导读

本教程分为 AI 应用编程核心 两个部分:

AI 应用部分 (ai/)

从 ToolJet 的 AI 能力出发,学习通用的 AI 应用开发知识:

编程核心部分 (dev/)

聚焦 ToolJet 的工程实践和架构决策: