ToolJet 快速试用指南:一条 Docker 命令在本地跑起完整版 ToolJet(内置 PostgreSQL 与 AI 能力)
【免费下载链接】ToolJetOpen-source foundation of ToolJet AI - the enterprise app generation platform for internal tools, dashboards, business applications, workflows and AI agents. Build visually, from a prompt, or from Claude Code, Codex and Cursor over MCP 🚀项目地址: https://gitcode.com/GitHub_Trending/to/ToolJet
本指南基于 ToolJet 3.0.0-LTS 官方试用文档,讲解如何用一条docker run命令在本机一键启动 ToolJet:容器内已预装 PostgreSQL、Redis、PostgREST,数据落盘到 Docker 卷,还内置了 ToolJet AI 功能开关。读完本文,你将掌握默认端口启动、动态端口切换、环境变量覆盖、数据持久化与容器生命周期管理等完整的本地试用实操方案。
为什么选择 Try ToolJet 镜像
tooljet/try:ee-lts-latest是 ToolJet 官方为"快速体验"场景准备的专用镜像,它与正式部署镜像(setup/docker.md 中讲解的 Docker Compose 方式)最大的区别在于:所有依赖组件都被打进了同一个容器,你不需要提前准备任何数据库或缓存服务,拉取镜像后即可直接使用。
从仓库中的镜像定义文件 docker/LTS/ee/ee-try-tooljet-lts.Dockerfile 可以看到它的构建思路:
- 基础镜像直接继承正式版
tooljet/tooljet:ee-lts-latest; - 内置 PostgreSQL 16(含
postgresql-client)与 Redis; - 复制 PostgREST v12.2.0 可执行文件到
/bin,用于将 ToolJet 数据库暴露为 REST API; - 安装
supervisor作为进程管理器,同时托管 ToolJet 服务、PostgREST 与 Redis 三个进程; - 默认开启
ENABLE_TOOLJET_DB=true(ToolJet Database 功能)与ENABLE_AI_FEATURES=true(AI 功能)。
也就是说,这个"试用容器"本质是一个开箱即用的全栈环境,非常适合第一次接触 ToolJet 的开发者、做 PoC 验证或者跑本地开发。
快速开始:一条命令启动 ToolJet
在满足 x86(64 位)架构的 Linux 机器上(Windows 请使用 WSL2 或虚拟机,详见 system-requirements.md),执行以下命令即可:
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(或服务器 IP)即可打开 ToolJet 界面。
命令参数逐项拆解
| 参数 | 作用 |
|---|---|
--name tooljet | 为容器命名,后续docker stop/docker start/docker logs等命令都直接使用该名称 |
--restart unless-stopped | 容器异常退出时自动重启;只有手动 stop 后才不会拉起 |
-p 80:80 | 将容器内 80 端口映射到宿主机 80 端口 |
--platform linux/amd64 | 显式指定 linux/amd64 平台,避免在 Apple Silicon 等 arm64 机器上因平台不匹配导致拉取或运行异常 |
-v tooljet_data:/var/lib/postgresql/13/main | 将 PostgreSQL 数据目录挂载为 Docker 命名卷tooljet_data,实现数据持久化 |
容器启动流程:入口脚本做了什么
镜像的入口脚本 docker/LTS/ee/ee-try-entrypoint-lts.sh 完整展示了容器启动时的初始化链路:
- 修改
pg_hba.conf,将本地postgres用户与all用户的认证方式改为trust,随后启动 PostgreSQL 服务; - 通过
pg_isready轮询等待数据库就绪; - 若
tooljet数据库角色不存在,则创建超级用户tooljet(密码postgres); - 导出默认端口(
export PORT=${PORT:-80}),并强制开启ENABLE_AI_FEATURES=true; - 以
supervisord启动 ToolJet、PostgREST、Redis 三个进程,日志统一输出到/dev/stdout,因此你可以直接通过docker logs tooljet观察全部服务的运行状态。
试用容器的内部构成与默认配置
镜像在 docker/LTS/ee/ee-try-tooljet-lts.Dockerfile 中通过ENV指令固化了一整套默认值,理解它们有助于你判断需要覆盖哪些变量:
| 类别 | 默认值 | 说明 |
|---|---|---|
| 服务端口 | PORT=80,TOOLJET_HOST=http://localhost,TOOLJET_SERVER_URL=http://localhost | ToolJet 服务监听端口与对外地址 |
| 主数据库 | PG_DB=tooljet_production、PG_USER=tooljet、PG_PASS=postgres、PG_HOST=localhost、PG_PORT=5432 | ToolJet 主应用数据库(应用定义、加密后的数据源凭据、用户认证数据) |
| ToolJet Database | TOOLJET_DB=tooljet_db、ENABLE_TOOLJET_DB=true | 可选的内置数据库功能,由 PostgREST 以 REST API 方式对外提供 |
| PostgREST | PGRST_HOST=http://localhost:3000、PGRST_DB_URI=postgres://tooljet:postgres@localhost/tooljet_db、PGRST_JWT_SECRET=r9iMKoe5CRMgvJBBtp4HrqN7QiPpUToj | 用于把 ToolJet 数据库暴露为 REST 接口 |
| Redis | REDIS_HOST=localhost、REDIS_PORT=6379 | 内置 Redis,供多人在线协作编辑与后台任务使用 |
| 功能开关 | ENABLE_MARKETPLACE_FEATURE=true、ENABLE_AI_FEATURES=true | 市场插件与 AI 功能默认开启 |
| 平台标识 | DEPLOYMENT_PLATFORM=docker:local | 标记部署来源,用于遥测与平台识别 |
说明:试用镜像为方便一键体验,内置了固定的
LOCKBOX_MASTER_KEY与SECRET_KEY_BASE占位值。生产环境请务必使用openssl rand -hex 32与openssl rand -hex 64重新生成,这两个变量分别用于加密数据源凭据与会话 Cookie(详见 env-vars.md)。
通过环境变量定制试用环境
容器启动时支持--env(单个变量)与--env-file(变量文件)两种方式传入配置,用于覆盖镜像内置的默认值。例如调整主机地址、数据库名称或功能开关:
docker run \ --name tooljet \ --restart unless-stopped \ -p 80:80 \ --platform linux/amd64 \ -e TOOLJET_HOST=http://192.168.1.100 \ -e USER_SESSION_EXPIRY=120 \ -v tooljet_data:/var/lib/postgresql/13/main \ tooljet/try:ee-lts-latest完整的环境变量清单可参考 env-vars.md,试用阶段最常用的几个:
TOOLJET_HOST:ToolJet 的公开访问地址,必须带http://或https://前缀;LOCKBOX_MASTER_KEY:32 字节十六进制字符串,用于加密数据源凭据;SECRET_KEY_BASE:64 字节十六进制字符串,用于加密会话 Cookie;DISABLE_SIGNUPS=true:关闭开放注册,仅允许被邀请用户注册;USER_SESSION_EXPIRY:用户会话过期时间(分钟),默认 10 天;DISABLE_TOOLJET_TELEMETRY=true:关闭默认开启的遥测上报。
动态端口:在指定端口运行 ToolJet
默认情况下容器把 80 端口映射到宿主机 80 端口。若宿主机 80 端口已被占用,或你希望多个实例并存,可通过PORT环境变量切换容器内监听端口,同时调整-p映射:
docker run \ --name tooljet \ --restart unless-stopped \ -p 8080:8080 \ -e PORT=8080 \ --platform linux/amd64 \ -v tooljet_data:/var/lib/postgresql/13/main \ tooljet/try:ee-lts-latest执行后 ToolJet 服务将监听 8080 端口,浏览器访问http://localhost:8080即可。原理上,入口脚本中的export PORT=${PORT:-80}会读取-e PORT=8080传入的值,supervisord管理的 ToolJet 进程随之在 8080 端口提供服务;宿主机侧的-p 8080:8080则将流量转发进容器。若同时更改宿主机端口,例如映射为-p 3000:8080,也可让容器内 8080 对应宿主机的任意端口。
启用 ToolJet AI 功能:域名白名单
ToolJet AI 功能(AI 智能体、AI 生成应用等)依赖 ToolJet 官方的 AI 网关服务。文档明确要求:
要在 ToolJet 部署中启用 ToolJet AI 功能,请将
https://api-gateway.tooljet.ai加入白名单。
这适用于两种场景:
- 本地试用:如果部署环境存在出站防火墙、代理或网络安全组,需要放行对
https://api-gateway.tooljet.ai的 HTTPS 请求;容器内部通过ENABLE_AI_FEATURES=true默认开启 AI 功能(见 docker/LTS/ee/ee-try-entrypoint-lts.sh)。 - 服务器部署:若在云服务器(如 AWS EC2、GCP)上运行,需在安全组 / 防火墙规则中允许该域名的出站流量,否则 AI 相关能力将不可用。
数据持久化与容器生命周期管理
数据存在哪里
试用容器把 PostgreSQL 的数据目录挂载到了命名卷tooljet_data(即宿主机的/var/lib/postgresql/13/main数据目录)。这意味着:
- 停止并重新启动容器(
docker start tooljet),应用、数据源配置与用户数据全部保留; - 即使删除容器(
docker rm tooljet),只要卷tooljet_data还在,重新用同样的-v参数创建容器即可恢复数据; - 需要备份时,可用
docker run --rm -v tooljet_data:/data -v $(pwd):/backup alpine tar czf /backup/tooljet_data.tar.gz -C /data .之类的命令将卷内容打包导出。
常用运维命令
docker stop tooljet # 停止容器(数据保留在卷中) docker start tooljet # 再次启动容器 docker logs -f tooljet # 实时查看 ToolJet / PostgREST / Redis 的运行日志 docker ps # 查看容器状态由于设置了--restart unless-stopped,容器在 Docker 重启或进程崩溃后会自动拉起;只有执行docker stop才会让它保持停止状态。
从试用走向正式部署
试用镜像适合本地体验与功能验证,若要在生产服务器上长期运行,建议切换到正式部署方式:
- Docker Compose 部署:官方提供两份生产级编排文件——内置 PostgreSQL 的 docker-compose-db.yaml 与对接外部 PostgreSQL 的 docker-compose.yaml,完整步骤见 setup/docker.md;
- 系统要求参考:x86 架构 Linux、至少 2GB 内存、1 vCPU、8GiB 存储(system-requirements.md);
- 环境变量规范:生产环境必须生成强随机的
LOCKBOX_MASTER_KEY与SECRET_KEY_BASE,并显式配置TOOLJET_HOST、PG_*、TOOLJET_DB_*、PGRST_*等变量(env-vars.md); - 版本升级:LTS 版本每 3–5 个月发布一次,升级前务必对数据库做完整备份,详见 upgrade-to-lts.md。
常见问题速查
| 现象 | 排查方向 |
|---|---|
访问http://localhost无响应 | 确认 80 端口未被占用;检查docker ps容器状态与docker logs tooljet中 PostgreSQL 是否完成初始化 |
| Apple Silicon 上启动失败 | 确保命令中包含--platform linux/amd64(arm64 架构不受官方支持) |
| 重启后数据丢失 | 确认每次启动都使用了相同的-v tooljet_data:/var/lib/postgresql/13/main参数与容器名 |
| AI 功能不可用 | 检查部署环境的出站防火墙是否放行https://api-gateway.tooljet.ai |
| 端口冲突 | 改用动态端口方案,-e PORT=<端口>与-p <端口>:<端口>保持一致 |
至此,你已经可以通过一条命令完整体验 ToolJet 的应用构建、数据源连接、ToolJet Database 与 AI 能力;当本地验证通过后,再按正式部署文档平滑迁移到生产环境即可。
【免费下载链接】ToolJetOpen-source foundation of ToolJet AI - the enterprise app generation platform for internal tools, dashboards, business applications, workflows and AI agents. Build visually, from a prompt, or from Claude Code, Codex and Cursor over MCP 🚀项目地址: https://gitcode.com/GitHub_Trending/to/ToolJet
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考