自托管 ToolJet:一条命令试跑,生产走 Compose,升级前先备份两个库
ToolJet 是开源的自托管低代码/内部工具开发平台,用来搭管理后台、Dashboard、运营系统,直接接现有的数据库、API 和 SaaS。技术栈是 JavaScript/Node.js + React,许可 AGPL-3.0,支持 Docker/K8s/AWS/GCP/Azure 自托管。社区版 CE 免费,包含 80+ 组件、内置 ToolJet Database、90+ 数据源、多页应用与多人协作、AES-256-GCM 加密、SSO;Enterprise 额外提供 AI 生成、Workflows、Modules、RBAC、GitSync CI/CD、Embedded Apps。
- 项目地址:
- 文档:
自托管的结论很简单:试跑一条 docker run 就够,生产必须走生成的 Compose + 生成脚本产出的密钥,升级前不备份 PG_DB 和 TOOLJET_DB 就是给自己挖坑。
路径一:本地快速试跑(非生产)
一条命令起一个自带 PostgreSQL 的实例:
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
这条命令只适合本地验证,数据挂在 tooljet_data 卷上,别拿它当生产环境。
路径二:生产部署,用生成好的 Compose
推荐用内置 PostgreSQL,也支持外部托管 PG。
1. 下载生产 compose 文件
curl -LO https://tooljet-deployments.s3.us-west-1.amazonaws.com/docker/docker-compose-db.yaml
mv docker-compose-db.yaml docker-compose.yaml
mkdir postgres_data
外部 PG 用 docker-compose.yaml。
2. 生成 .env
curl -LO https://tooljet-deployments.s3.us-west-1.amazonaws.com/docker/.env.internal.example
curl -LO https://tooljet-deployments.s3.us-west-1.amazonaws.com/docker/internal.sh && chmod +x internal.sh
mv .env.internal.example .env && ./internal.sh
internal.sh 会生成 LOCKBOX_MASTER_KEY、SECRET_KEY_BASE 和 PostgreSQL 密码。外部 PG 走 .env.external.example + external.sh。
3. 启动
docker-compose up -d
Linux 服务器上可能需要 sudo。
4. TOOLJET_HOST 必须带前缀
TOOLJET_HOST 必须带 http:// 或 https://,填服务器公网 IP 或自定义域名;用域名要先加 A 记录。如果 HTTPS 端点是自签证书,需要设 NODE_EXTRA_CA_CERTS 指向证书的绝对路径。
AI 功能的网络放行
要用 AI 功能,需要在网络安全策略里放行这两个域名:
https://api-gateway.tooljet.aihttps://python-server.tooljet.ai
备份(仅内置 PostgreSQL)
curl -LO https://tooljet-deployments.s3.us-west-1.amazonaws.com/docker/backup-restore.sh && chmod +x backup-restore.sh ; ./backup-restore.sh
Workflows 的 worker 与 Redis 约束
Workflows 是节点式自动化。启用调度需要 WORKER=true(必需),TOOLJET_WORKFLOW_CONCURRENCY=5(可选,默认就是 5)。
坑在这里:一旦跑独立的 worker 容器或多个实例,job queue 的协调必须用外部有状态 Redis;内置 Redis 只在单容器单实例时可用。
外部 Redis 配置:
REDIS_HOST=redis
REDIS_PORT=6379
REDIS_USER/REDIS_PASSWORD 可选
REDIS_DB、REDIS_TLS 可选
Redis 两个关键参数:
--appendonly yes:AOF 持久化--maxmemory-policy noeviction:BullMQ 的要求,防止任务被淘汰丢失
多 worker 的 compose 示例里,tooljet 服务的 image 用 tooljet/tooljet:ee-lts-latest,platform 为 linux/amd64,command 是 npm run start:prod,SERVE_CLIENT=true,PORT=80;worker 容器设 WORKER=true 且不暴露端口。
升级到最新 LTS
新安装直接用最新版即可,升级指南只针对已有部署。
LTS 每 3–5 个月发一版,EOL 至少 18 个月。LTS 镜像 tag 前缀是 LTS-,例如 tooljet/tooljet:ee-lts-latest。
升级前必须完整备份 PostgreSQL 的两个库:
PG_DB:应用库,存用户、应用、配置TOOLJET_DB:内置 ToolJet Database 的数据
硬门槛:低于 v2.23.0-ee2.10.2 的版本必须先升到这个版本,才能继续往最新 LTS 升。
升级步骤:
docker compose down- 从 Docker Hub 取最新 LTS tag
- 改
docker-compose.yml里的image字段(如v3.x.x-lts,替换成实际 tag) docker compose up -d
选 LTS 而不是 latest:LTS 有稳定修复、安全补丁和性能增强。分支模型用 git-flow,base 分支是 develop,稳定版用 main 或 v1.x.x tag。
另外,MCP server 目前处于 beta,可以在 Claude Code、Codex、Grok Build、Cursor 里接入,用的是你自己的模型订阅,而不是消耗 ToolJet AI 额度。