news 2026/9/11 2:24:02

ToolJet 部署选型指南:自托管(Self-Hosted)与云服务(Cloud)的完整决策与实践路径

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ToolJet 部署选型指南:自托管(Self-Hosted)与云服务(Cloud)的完整决策与实践路径

ToolJet 部署选型指南:自托管(Self-Hosted)与云服务(Cloud)的完整决策与实践路径

【免费下载链接】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 是一个面向内部工具、数据看板、业务应用、工作流与 AI Agent 构建的开源低代码平台。部署方式的选择直接决定了你的数据控制权、可扩展性和运维效率。本文基于官方部署指南,系统对比 ToolJet 的两种部署模式——自托管与云服务,并结合当前仓库中的部署配置、编排文件与初始化脚本,给出从选型判断到落地启动的完整实践路径。

部署模式总览:两种模型,一条主线

ToolJet 官方提供了两种部署选项——Self-Hosted(自托管)Cloud(云服务)。选择哪种模式,本质上是在回答三个问题:

  • 数据由谁掌控?自托管将数据保留在你的基础设施内;云服务由 ToolJet 团队托管。
  • 基础设施由谁运维?自托管需要你自行管理服务器与中间件;云服务开箱即用。
  • 扩展能力如何获取?自托管依赖你自己的容量规划;云服务自动伸缩。

仓库文档 docs/docs/tj-setup/tj-deployment.md 明确指出,这个选择"至关重要,因为它影响数据控制、可扩展性和运营效率"。下文分别展开两种模式的适用场景与理由,再结合仓库源码给出自托管的实际操作路径。

Self-Hosted 自托管:把控制权握在自己手里

自托管意味着将 ToolJet 部署在你自己的基础设施上(本地机房 on-premises 或私有云)。这是追求合规、安全与深度定制的组织首选。

选择自托管的三大核心理由

  1. 完整的数据控制(Complete Data Control):部署在自己的基础设施上,数据始终处于你的掌控之内,满足严格的合规与隐私要求。仓库文档 docs/docs/tj-setup/instances.md 进一步强调:自托管实例下 "ToolJet 无法访问你的数据"(ToolJet does not have access to your data),这从产品层面保证了数据私密性。
  2. 可定制性(Customizability):自托管允许更深度的定制,以匹配组织的既有工作流、集成需求与独特业务场景。
  3. 增强的安全(Enhanced Security):在本地机房或私有云中托管,你可以施加自己的安全策略,为敏感数据增加额外保护层。

实例(Instance)与多实例架构

从仓库文档 docs/docs/tj-setup/instances.md 可以了解到,ToolJet 将一次自托管部署称为一个实例(Instance)。每个实例独立运行,拥有自己的配置、数据与用户体系;实例内部还可以创建多个工作空间(Workspace),用于隔离不同团队或项目。实例的价值体现在三个方面:

  • 数据隔离:为不同团队、部门或客户分离数据;
  • 合规:按组织监管要求托管数据;
  • 数据隐私:ToolJet 不接触你的数据。

在实例规划上,文档给出了两种典型形态:

  • 单实例(Single Instance):适合希望快速上线、同时满足数据合规与隐私要求、运维开销最小的团队;
  • 多实例(Multiple Instances):适合需要跨部门隔离管理应用、跨地域托管数据以满足合规、或为更严格的 SDLC 流程拆分开发/预发/生产环境的组织。

自托管的落地路径:仓库中的部署资产

仓库根目录与 deploy 目录提供了完整的自托管部署资产,覆盖 Docker Compose、Helm、Kubernetes(AKS/GKE)、OpenShift 与 EC2 等多种形态:

  • Docker Compose:deploy/docker/docker-compose.yaml 与 deploy/docker/docker-compose-db.yaml 是两种核心编排方式(详见下文);
  • Helm:deploy/helm 适用于 Kubernetes 集群的声明式部署;
  • Kubernetes:deploy/kubernetes(含 AKS、GKE 子目录);
  • OpenShift:deploy/openshift;
  • EC2:deploy/ec2/ee。

此外,docs/docs/setup 目录集中了各平台的逐步部署指南,包括 Docker 部署、系统需求、环境变量参考 以及 Kubernetes/Helm/OpenShift/ECS/云厂商等专项文档。

Docker Compose 生产部署(推荐方式)

官方推荐的快速生产部署路径是 Docker Compose。仓库中的 deploy/docker/docker-compose-db.yaml 展示了"内置 PostgreSQL"的完整服务拓扑,包含三个关键服务:

  • tooljet:主应用容器,使用tooljet/tooljet-ce:latest镜像,映射80:80端口,通过env_file: .env注入配置,启动命令为npm run start:prod,并设置SERVE_CLIENT: "true"PORT: "80"
  • postgres:数据存储,使用postgres:13,数据卷绑定挂载到宿主机postgres_data目录(volumes.postgres.driver_opts.device: ${PWD}/postgres_data),便于备份与迁移;
  • postgrest:当启用 ToolJet Database(ENABLE_TOOLJET_DB=true)时提供 REST 接口的 PostgREST 服务,使用postgrest/postgrest:v12.0.2镜像。

而 deploy/docker/docker-compose.yaml 则对应"外部 PostgreSQL"场景:只保留 tooljet 服务,PostgREST 服务被注释掉,需按需启用。

密钥初始化:internal.sh 做了什么

部署文档 docs/docs/setup/docker.md 提到,internal.sh用于生成基础.env变量。仓库中的 deploy/docker/internal.sh 完整揭示了它的逻辑——该脚本逐个检查并回填以下密钥:

环境变量生成方式用途
LOCKBOX_MASTER_KEYopenssl rand -hex 32(64 字符十六进制)加密数据源凭据等敏感信息的主密钥
SECRET_KEY_BASEopenssl rand -hex 64(128 字符十六进制)应用安全操作与会话签名的密钥
PGRST_JWT_SECRETopenssl rand -hex 32PostgREST 认证使用的 JWT 密钥
PG_PASS/TOOLJET_DB_PASSopenssl rand -base64 12处理后截取 16 位PostgreSQL 数据库密码
PGRST_DB_URI基于生成的密码拼装postgres://postgres:<password>@postgresql/tooljet_dbPostgREST 连接数据库的 URI

脚本使用awk.env进行原地更新:若变量已存在则跳过(避免覆盖已有配置),不存在则生成并追加。这意味着重复执行脚本是安全的,且所有密钥均为一次性随机生成,无需手工指定。

TOOLJET_HOST 与域名配置

部署完成后,需要设置TOOLJET_HOST环境变量,它可以是服务器的公网 IPv4 地址或自定义域名,两种形式:

TOOLJET_HOST=http://12.34.56.78 TOOLJET_HOST=https://tooljet.yourdomain.com

注意两点:TOOLJET_HOST必须以http://https://开头;若使用自定义域名,需要在 DNS 中配置指向服务器 IP 的A记录。更多环境变量请参考 docs/docs/setup/env-vars.md。

版本选择:LTS 优先

自托管部署还涉及版本选择。仓库文档 docs/docs/setup/choose-your-tooljet.md 将 ToolJet 版本划分为三类:

  • LTS(长期支持)版本:官方推荐用于生产环境,优先获得缺陷修复与稳定性保障,适合对稳定性与持续性能有要求的场景;
  • Pre-Release 预发布版本:用于尝鲜最新特性,但可能包含缺陷、缺乏 LTS 的稳定性,官方明确不建议用于生产环境;
  • Past 历史版本:不再维护,不接收更新与安全补丁,不建议在生产使用。

对于生产环境,应优先选择最新 LTS 版本,并关注升级文档(如 升级到最新 LTS 版本 中的要求:升级前务必完整备份数据库;低于 v2.23.0-ee2.10.2 的版本需先升级到该版本)。

ToolJet Cloud:托管服务,聚焦构建本身

ToolJet Cloud 是由 ToolJet 团队运营的托管服务,消除了基础设施管理负担,提供快速部署与无缝更新。适合追求快速上线、弹性伸缩、降低运维复杂度的团队。

选择 ToolJet Cloud 的三大核心理由

  1. 零配置启动(Hassle-Free Setup):无需管理服务器或基础设施,一切由 ToolJet 团队搭建与维护,团队只需专注应用构建。
  2. 无缝更新与维护(Seamless Updates and Maintenance):始终使用最新特性与更新,无需人工干预;备份、正常运行时间与维护均由平台负责。
  3. 自动伸缩(Scalability):云部署随团队规模与应用需求自动扩展,保证一致的性能表现。

订阅计划:两种部署模式下的商业维度

ToolJet 为两种部署模式都提供了多种订阅计划。不同计划在功能与成本上存在差异,具体细节以官方定价页面为准(见 docs/docs/tj-setup/tj-deployment.md 中的说明)。结合仓库结构可以确认,订阅与许可相关的实现存在于服务端:

  • 数据库迁移层可见许可相关表结构,如 AddOrganizationLicenseTable 迁移 与 CreateSelfhostCustomerLicenses 迁移;
  • 自托管与云的许可说明分别见 docs/docs/tj-setup/licensing/self-hosted.md 与 docs/docs/tj-setup/licensing/cloud.md。

决策对照:如何为你的团队选择

综合上文,可将两种模式的关键差异归纳如下:

维度Self-Hosted 自托管ToolJet Cloud
数据存放你的基础设施(本地/私有云)ToolJet 团队托管
数据控制权完全自主,ToolJet 无法访问受托管平台策略约束
合规/安全自行实施安全与合规策略由托管方负责基线安全
定制能力深度定制(集成、工作流、品牌)以平台提供能力为边界
运维负担自行维护(可用 deploy 与 docs/docs/setup 自动化)零运维,含更新、备份、可用性
扩展方式自行规划容量自动伸缩
适用场景严格合规、数据敏感、深度定制快速上线、小团队、降低运维复杂度

实践建议:如果你的组织处于金融、医疗、政企等强监管行业,或对数据主权有硬性要求,选择自托管,并优先采用 Docker Compose 内置 PostgreSQL 的方案(参考 deploy/docker/docker-compose-db.yaml),通过internal.sh自动生成全部密钥后以docker-compose up -d一键启动。如果你的团队希望最快速度开始构建应用、且不希望承担任何基础设施职责,ToolJet Cloud 是更合适的选择。

延伸阅读

  • 部署模式与订阅计划总览:docs/docs/tj-setup/overview.md
  • 实例与多实例架构:docs/docs/tj-setup/instances.md
  • Docker Compose 部署与升级指南:docs/docs/setup/docker.md
  • 环境变量完整参考:docs/docs/setup/env-vars.md
  • 版本类型(LTS/Pre-Release/历史版本)说明:docs/docs/setup/choose-your-tooljet.md
  • 部署编排资产:deploy/docker、deploy/helm、deploy/kubernetes、deploy/openshift

【免费下载链接】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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/11 2:21:44

OmX autoresearch Parity Smoke:用轻量验证守护核心契约的工程实践

OmX autoresearch Parity Smoke&#xff1a;用轻量验证守护核心契约的工程实践 【免费下载链接】oh-my-codex OmX - Oh My codeX: Your codex is not alone. Add hooks, agent teams, HUDs, and so much more. 项目地址: https://gitcode.com/GitHub_Trending/oh/oh-my-codex…

作者头像 李华
网站建设 2026/9/11 2:18:04

怀化驾校AI短视频:驾培行业招生利器

来源&#xff1a;唐sirAI&#xff08;www.tangsir.cc&#xff09; | 电话&#xff1a;18874530691━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━在怀化驾校行业竞争日益激烈的今天&#xff0c;如何低成本、高效率地进行品牌推广&#xff…

作者头像 李华
网站建设 2026/9/11 2:17:46

企业销售代表处建设与数字化运营实战指南

1. 销售代表处建设在企业运营中的战略定位销售代表处作为企业销售业务的最前线作战单元&#xff0c;其建设质量直接决定了区域市场的开拓成效。在成熟的企业组织架构中&#xff0c;销售代表处通常隶属于销售BG&#xff08;Business Group&#xff09;体系&#xff0c;承担着客户…

作者头像 李华
网站建设 2026/9/11 2:17:26

HeyGem.ai 本地部署:3 条命令跑通离线数字人

HeyGem.ai 本地部署&#xff1a;3 条命令跑通离线数字人 【免费下载链接】Duix-Avatar &#x1f680; Truly open-source AI avatar(digital human) toolkit for offline video generation and digital human cloning. 项目地址: https://gitcode.com/GitHub_Trending/he/Dui…

作者头像 李华