
ToolJet 部署指南在 DigitalOcean Droplet 上完整部署与升级 LTS 版本【免费下载链接】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 官方 LTS 文档2.50.0-LTS 版为主线完整讲解如何在 DigitalOcean Droplet 上从零部署 ToolJet包括 Droplet 创建、防火墙放行、Docker/Docker Compose 安装、.env环境变量配置、基于 Compose 的容器编排启动以及后续升级到最新 LTS 版本的完整流程。读完本文你将能够在自己的 DigitalOcean 云主机上独立交付一套可访问、可升级的 ToolJet 自托管实例并理解其底层容器架构与关键配置项的真实作用。一、部署前置认知ToolJet 的容器化运行模型在动手创建 Droplet 之前有必要先理解 ToolJet 自托管版的运行形态。从仓库中的生产编排文件 deploy/docker/docker-compose-db.yaml 可以看到ToolJet 的 Docker Compose 部署由三组核心服务组成tooljet主应用容器镜像为tooljet/tooljet-ce:latest对外映射80:80以npm run start:prod启动生产服务postgres内置的 PostgreSQL 13 数据库容器负责存储应用定义、加密后的数据源凭据与用户认证数据数据通过 bind mount 持久化到宿主机的postgres_data目录postgrestPostgREST v12 容器为 ToolJet Database内置数据库提供 REST API 访问层。其中主容器通过env_file: .env读取全部运行配置并通过SERVE_CLIENT: true让服务端同时托管前端客户端。整个部署的核心工作因此集中在两件事上准备好 Docker 运行时与编写正确的.env文件。下文将按官方文档的步骤顺序逐步展开。二、第一步在 DigitalOcean 创建 Droplet进入 DigitalOcean 控制台导航到Droplets板块点击创建 Droplet创建入口界面如下。创建时按以下配置选择配置项推荐值ImageUbuntu选择当前受支持的 LTS 发行版即可Plan按需选择官方文档给出的示例为 Basic 档、4GB RAM、2 vCPUAuth使用密码或 SSH 密钥认证均可选择完成后点击Create Droplet创建成功后务必记录分配到的公网 IP后续所有配置SSH 连接、TOOLJET_HOST、防火墙规则都会用到它。关于资源规格2 vCPU / 4GB 是文档给出的最低参考示例。如果你的业务包含较多数据源连接、工作流执行或 ToolJet Database 查询建议按 docs/docs/setup/system-requirements.md 中的说明评估更高的规格。三、第二步配置防火墙放行必要端口Droplet 创建后建议立即为其配置防火墙。ToolJet 对外提供服务需要放行以下端口protocolportallowed_cidrtcp22your IPtcp800.0.0.0/0tcp4430.0.0.0/0各端口的用途说明22 端口SSH 管理通道出于安全考虑只允许你自己的出口 IPallowed_cidr填你的公网 IP不要向全网开放80 端口HTTP 流量ToolJet 主容器默认映射的对外端口必须对全网0.0.0.0/0开放否则用户无法通过浏览器访问443 端口HTTPS 流量当你后续接入域名与证书例如通过反向代理或负载均衡终止 TLS时使用同样对全网开放。四、第三步SSH 连接 Droplet 并安装 Docker 运行时使用创建 Droplet 时设置的认证方式连接服务器ssh rootpublic_ip连接成功后先更新系统软件包再安装 Dockerapt update apt upgrade -y apt install -y docker.io启用并启动 Docker 服务使其开机自启systemctl enable docker systemctl start docker随后安装 Docker Compose。文档采用直接下载官方二进制的方式适用于 x86_64 架构apt install -y curl curl -SL https://github.com/docker/compose/releases/latest/download/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose chmod x /usr/local/bin/docker-compose安装完成后验证两个组件的版本docker --version docker-compose --version提示在 Linux 服务器上docker命令可能需要sudo权限。如果不想每次加sudo可按 Docker 官方 post-install 指引将当前用户加入docker组或者直接以sudo docker-compose up -d方式运行后续命令。五、第四步配置 TOOLJET_HOST 环境变量Docker 就绪后进入部署目录即稍后放置docker-compose.yaml与.env的目录在.env文件中配置TOOLJET_HOSTTOOLJET_HOSThttp://public_ip:80TOOLJET_HOST是 ToolJet 服务端必需的核心环境变量详见 docs/docs/setup/env-vars.md它表示 ToolJet 客户端的公网访问地址直接决定前端资源的加载路径与回调地址因此必须与实际可访问的地址一致。它支持两种形态公网 IP 形态TOOLJET_HOSThttp://12.34.56.78自定义域名形态TOOLJET_HOSThttps://tooljet.yourdomain.com此时需要在 DNS 中添加一条指向服务器 IP 的A record需要注意的约束TOOLJET_HOST必须以http://或https://开头否则服务端无法正确解析若后续使用 HTTPS务必确保从 80 到 443 的重定向链路或反向代理配置正确避免出现协议不匹配导致的资源加载失败。除了TOOLJET_HOST.env中还包含以下必需的安全与数据库变量均可通过仓库中的 deploy/docker/internal.sh 脚本自动生成变量说明生成方式LOCKBOX_MASTER_KEY32 字节十六进制字符串用于加密数据源凭据openssl rand -hex 32SECRET_KEY_BASE64 字节十六进制字符串用于加密会话 Cookieopenssl rand -hex 64PGRST_JWT_SECRETPostgREST 认证用 JWT 密钥openssl rand -hex 32PG_PASS/TOOLJET_DB_PASSPostgreSQL 数据库密码两处保持一致脚本随机生成 16 位强密码PG_HOST/PG_USER/PG_DB数据库主机、用户名与库名Compose 内建库模式下由脚本填充六、第五步下载 Compose 编排文件并启动 ToolJet完成.env与TOOLJET_HOST的配置后进入正式的部署环节。官方提供了两种部署形态对应仓库中的两个生产编排文件方式一内置 PostgreSQL推荐适用于希望开箱即用、无需额外管理数据库的场景。下载编排文件并初始化目录curl -LO docker-compose-db.yaml 下载地址 mv docker-compose-db.yaml docker-compose.yaml mkdir postgres_data然后下载.env模板与密钥生成脚本执行脚本自动填充必需变量curl -LO docker-compose-db.yaml 对应的 .env.internal.example curl -LO internal.sh 下载地址 chmod x internal.sh mv .env.internal.example .env ./internal.shinternal.sh的作用正是前文表格中列出的自动生成LOCKBOX_MASTER_KEY、SECRET_KEY_BASE、PGRST_JWT_SECRET以及 PostgreSQL 密码并回写到.env避免人工手工生成易出错的安全密钥。该编排文件见 deploy/docker/docker-compose-db.yaml会同时拉起tooljet、postgres、postgrest三个服务其中 PostgreSQL 数据通过 bind mount 持久化到宿主机postgres_data目录容器重建后数据不丢失。方式二外部 PostgreSQL如果你希望使用托管数据库服务如 DigitalOcean Managed Database、AWS RDS、Google Cloud SQL则下载不含数据库服务的编排文件 deploy/docker/docker-compose.yaml并通过external.sh交互式填写外部数据库的PG_USER、PG_HOST、PG_PASS、PG_DB见 deploy/docker/external.shcurl -LO docker-compose.yaml 下载地址 curl -LO external.sh 下载地址 chmod x external.sh curl -LO docker-compose.yaml 对应的 .env.external.example mv .env.external.example .env ./external.sh无论采用哪种方式最终都以如下命令启动全部容器docker-compose up -d启动完成后通过浏览器访问http://public_ip即可看到 ToolJet 的初始化页面完成首个管理员账号的设置。七、部署后的验证与运维要点容器状态检查执行docker-compose ps确认三个服务均为Up状态出现异常可查看日志docker-compose logs -f tooljet。数据库持久化内置 PostgreSQL 模式务必确认宿主机postgres_data目录存在且有写权限编排文件以 bind mount 方式挂载。数据备份对内置 PostgreSQL 的部署官方 Docker 部署文档docs/docs/setup/docker.md提供了backup-restore.sh脚本用于一键备份与恢复数据库建议在重大升级前使用。更多环境变量TOOLJET_HOST之外ToolJet 还支持 SMTP、SSO、Google OAuth、Sentry APM、会话过期时间等大量可选变量完整清单见 docs/docs/setup/env-vars.md。八、升级到最新 LTS 版本ToolJet 采用 LTS长期支持版本发布策略每 3~5 个月发布一个新 LTS 版本每个 LTS 版本的生命周期至少 18 个月。如果你希望升级现有实例可参考 docs/docs/setup/upgrade-to-lts.md 了解各部署形态对应的升级指引。8.1 查看最新 LTS 版本访问 ToolJet 的 Docker Hub 镜像 Tag 页面即可查看最新的 LTS 版本。LTS 镜像遵循统一命名规范以LTS-前缀加版本号组成例如tooljet/tooljet:ee-lts-latest企业版最新 LTS社区版对应的 LTS Tag 同样以LTS-为前缀8.2 升级前置条件在开始升级之前必须确认以下两点完成数据库的全面备份。升级过程中可能涉及数据迁移未备份的数据库一旦出现异常将导致数据丢失版本跳级约束如果你当前版本早于v2.23.0-ee2.10.2必须先升级到此版本才能继续升级到 LTS 版本不允许跨级直接升级。8.3 何时不需要升级如果你正在进行的是全新安装则无需执行升级流程——直接使用最新版本镜像部署即可。升级流程仅适用于已有存量数据的实例。九、小结在 DigitalOcean Droplet 上部署 ToolJet 的完整链路可归纳为创建 DropletUbuntu≥2 vCPU/4GB→ 配置防火墙放行 22/80/443→ 安装 Docker 与 Docker Compose → 编写.envTOOLJET_HOST 安全密钥 数据库配置→ 下载编排文件并docker-compose up -d→ 按需升级 LTS。整个过程中deploy/docker/docker-compose-db.yaml 与 deploy/docker/internal.sh 承担了编排与密钥生成的自动化工作理解这两个文件即可掌握 ToolJet 自托管部署的核心原理。若在部署或升级中遇到问题可进一步查阅仓库内的 docs/docs/setup/docker.mdDocker Compose 完整部署说明、docs/docs/setup/env-vars.md全部环境变量参考与 docs/docs/setup/upgrade-to-lts.md各平台 LTS 升级指引。【免费下载链接】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),仅供参考