资讯详情

ToolJet 在 Google Cloud Run 上的完整部署指南:应用服务、ToolJet Database(PostgREST)与 LTS 升级

📅 2026/9/11 14:30:23 | 华诺云谱 👁 阅读
ToolJet 在 Google Cloud Run 上的完整部署指南:应用服务、ToolJet Database(PostgREST)与 LTS 升级
ToolJet 在 Google Cloud Run 上的完整部署指南应用服务、ToolJet DatabasePostgREST与 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 2.50.0-LTS 自托管用户的实战部署指南完整讲解如何借助gcloudCLI 与 Google Cloud Run将 ToolJet 应用服务和 ToolJet Database基于 PostgREST分别部署为两个 Cloud Run Service并完成 Cloud SQL 连接、服务公开与 LTS 版本升级。读完本文你将掌握 Cloud Run 容器参数端口、启动命令、CPU 内存的配置方法、ToolJet 全部必需/可选环境变量的含义与取值方式以及当数据库迁移失败时如何安全修复并重启实例。部署前的准备手动准备 PostgreSQL 数据库Cloud Run 是无服务器容器平台容器实例不保留本地数据因此 ToolJet 依赖的外部 PostgreSQL 必须由你手动创建。官方文档明确要求你需要手动设置一个供 ToolJet 使用的 PostgreSQL 数据库。推荐使用 Cloud SQL 托管 PostgreSQL后续步骤会演示如何将 Cloud Run 服务与 Cloud SQL 实例关联也可以使用任何可被 Cloud Run 网络访问到的 PostgreSQL 实例。数据库准备就绪后其主机名、库名、用户名、密码、端口将被写入 ToolJet 的环境变量PG_HOST、PG_DB、PG_USER、PG_PASS、PG_PORT。环境要求已安装并登录gcloudCLI本指南的创建服务、配置 Docker 认证均通过gcloud命令完成本机已安装 Docker用于拉取、打标签并推送 PostgREST 镜像到 Container Registry/Artifact Registry已启用 Cloud Run、Cloud SQL 等相关 API并具备对应资源的创建权限。一、部署 ToolJet 应用服务1. 创建 Cloud Run 服务在 Google Cloud Console 进入 Cloud Run新建一个 Service选择你要部署 ToolJet 的容器镜像ToolJet 官方镜像如tooljet/tooljet-ce或对应 EE 镜像。2. 配置 Ingress 与 Authentication为保证首次访问顺利建议按如下初始值设置后续可按你的安全策略调整Ingress按需选择允许的流量来源如允许所有流量或仅限内部流量Authentication初期可设置为允许未认证调用Allow unauthenticated invocations完成部署后再收紧访问控制。3. 配置容器端口、启动命令与资源容量在Containers选项卡中这是整个部署最关键的一步配置项取值容器端口3000容器命令Container argumentnpm, run, start:prod逗号分隔形式CPU 容量内存2 GiB这里的启动命令npm, run, start:prod对应 ToolJet 根目录 package.json 中的脚本start:prod: npm --prefix server run start:prod它最终会执行 server/package.json 中定义的 NestJS 生产启动命令start:prod: NODE_ENVproduction node dist/src/main也就是说容器启动后将以生产模式运行编译后的服务端入口dist/src/main。这也是为何 Cloud Run 实例需要至少 2 GiB 内存——ToolJet 服务端需要加载编译产物、连接数据库并运行插件系统。如果上述命令格式不被 Cloud Run 兼容请改用以下替代命令结构同样是逗号分隔、空格用_或按控制台提示的转义方式处理npm run start:prod以 Cloud Run 控制台实际接受的参数格式为准将命令拆分为可执行的参数列表。数据库迁移失败怎么办如果部署后遇到迁移migration相关问题可以临时将容器命令改为执行数据库迁移脚本例如npm run db:setup:proddb:setup:prod在根 package.json 中被定义为npm --prefix server run db:setup:prod其最终行为是依次执行 server/package.json 中的db:create:prod创建数据库与db:migrate:prod执行 TypeORM 数据库迁移与数据迁移迁移源来自server/migrations与server/data-migrations目录。⚠️ 注意执行迁移命令可能导致当前 revision 启动失败revision broken。这是预期现象——迁移完成后把容器命令改回npm, run, start:prod实例即可正常重启并进入生产模式。在 docker/ce-entrypoint.sh 中可以看到同样的逻辑容器入口会先判断./server/dist是否存在从而选择db:setup:prod或db:setup完成建库与迁移再exec $执行真正的启动命令。4. 配置 ToolJet 应用环境变量在Variables Secrets选项卡中添加 ToolJet 应用所需的环境变量。完整清单见 env-vars.md以下是 Cloud Run 部署时必须配置的变量变量说明必填TOOLJET_HOSTToolJet 客户端的公开 URL如https://app.tooljet.com✅LOCKBOX_MASTER_KEY32 字节十六进制字符串用于加密数据源凭据✅SECRET_KEY_BASE64 字节十六进制字符串用于加密会话 Cookie✅PG_HOSTPostgreSQL 数据库主机✅PG_DB数据库名✅PG_USER数据库用户名✅PG_PASS数据库密码✅PG_PORT数据库端口默认5432✅生成密钥的快捷命令需本机装有opensslopenssl rand -hex 32 # 用于 LOCKBOX_MASTER_KEY openssl rand -hex 64 # 用于 SECRET_KEY_BASE首次部署后更新TOOLJET_HOSTCloud Run 会在首次部署后分配一个默认 URL形如https://service-name-hash.run.app请将TOOLJET_HOST更新为该默认 URL或你绑定的自定义域名确保应用可以正确构建前端资源与 API 调用地址。连接 Cloud SQL 的 Unix Socket 格式提示如果你使用的是 Cloud SQL 的公共 IPPublic IP连接方式PG_HOST必须使用 Unix socket 格式/cloudsql/CLOUD_SQL_CONNECTION_NAME其中CLOUD_SQL_CONNECTION_NAME形如project:region:instance。私有 IP 连接方式则按 Cloud SQL 提供的内部地址配置即可。其他常用可选变量按需添加均可在 env-vars.md 找到完整说明PG_DB_OWNERfalse当 PostgreSQL 用户不具备CREATEDB权限时禁用自动建库/建扩展改为手动执行迁移CHECK_FOR_UPDATES0关闭每 24 小时一次的产品更新检查DISABLE_TOOLJET_TELEMETRYtrue关闭遥测上报DISABLE_SIGNUPStrue禁止公开注册仅允许邀请加入USER_SESSION_EXPIRY会话过期时间分钟默认 10 天SERVER_HOST/TOOLJET_SERVER_URL服务端分离部署或代理场景下的服务端地址SUB_PATH部署在域名子路径时设置需以/结尾SMTP 系列DEFAULT_FROM_EMAIL、SMTP_USERNAME、SMTP_PASSWORD、SMTP_DOMAIN、SMTP_PORT用于发送邀请邮件等SSO 系列SSO_GOOGLE_OAUTH2_CLIENT_ID、SSO_GIT_OAUTH2_CLIENT_ID等与 Google OAuth、Slack、Google Maps API Key 等数据源凭据。5. 关联 Cloud SQL 实例切换到Connections选项卡在Cloud SQL instance下拉框中选择你为 ToolJet 准备好的 PostgreSQL 实例即在第 0 步手动创建的数据库所在实例。6. 部署并公开服务上述参数设置完毕后点击Deploy部署。等服务创建并运行成功后若要让 Cloud Run 服务 URL 对外公开允许匿名访问需要按照 Cloud Run 的访问管理文档调整服务的 IAM 权限授予roles/run.invoker给allUsers使应用可以从公网访问。二、部署 ToolJet DatabasePostgREST 服务ToolJet Database 是 ToolJet 内置的数据存储能力。要在 Cloud Run 上启用它需要额外部署一个PostgREST 服务器它负责将 HTTP 请求翻译为对 ToolJet DatabasePostgreSQL 中的tooljet_db库的 SQL 查询。1. 推送 PostgREST 镜像到容器仓库Cloud Run 要求使用的镜像已存在于云容器仓库中。先执行 Docker 认证然后从 Docker Hub 拉取指定版本的 PostgREST 镜像打上你的项目标签后推送到 Google Container Registrygcloud auth configure-docker docker pull postgrest/postgrest:v10.1.1.20221215 docker tag postgrest/postgrest:v10.1.1.20221215 gcr.io/YOUR_PROJECT_ID/postgrest/postgrest:v10.1.1.20221215 docker push gcr.io/YOUR_PROJECT_ID/postgrest/postgrest:v10.1.1.20221215请将YOUR_PROJECT_ID替换为你的 Google Cloud 项目 ID原文档示例为gcr.io/tooljet-test-338806/...并通过gcloudCLI 会话执行上述命令完成推送。2. 创建 PostgREST 的 Cloud Run 服务镜像推送完成后在 Cloud Run 中点击Create Service创建服务在容器镜像来源中选择刚才推送的 PostgREST 镜像。3. 配置 Ingress 与 Authentication与 ToolJet 应用服务一致Ingress 与 Authentication 可按初始值设置允许未认证调用、按需限制流量来源后续再按安全策略收紧。由于 ToolJet 应用需要以内部方式访问 PostgREST若两者在同一项目内也可考虑使用 Cloud Run 的 internal ingress。4. 配置容器端口与资源配置项取值容器端口3000CPU 容量内存1 GiBPostgREST 是轻量的 HTTP-to-SQL 网关1 GiB 内存即可满足需求。与之对照ToolJet 应用服务需要 2 GiB。5. 配置 PostgREST 环境变量在环境变量中添加 ToolJet Database 所需的变量。PostgREST 侧核心变量如下详见 env-vars.md 的 PostgREST server 一节变量说明PGRST_JWT_SECRETJWT 密钥用于校验 ToolJet 服务端签发的认证 Token。必须设置否则 PostgREST 会拒绝所有认证请求。用openssl rand -hex 32生成PGRST_DB_URIToolJet Database 的连接串格式为postgrest://[USERNAME]:[PASSWORD][HOST]:[PORT]/[DATABASE]PGRST_LOG_LEVEL日志级别建议设为info关于PGRST_DB_URI的格式注意该连接串使用postgrest://前缀而非postgres://请按此格式填写用户名、密码、主机、端口与数据库名。若需要调整更多 PostgREST 行为可参考其官方的环境变量配置文档。6. 关联 Cloud SQL 实例在Connections选项卡的Cloud SQL instance下拉框中选择你为 ToolJet 应用准备的同一个 PostgreSQL 实例或为 ToolJet Database 单独创建的 PostgreSQL 数据库所在实例。7. 部署并公开服务参数设置完毕后点击Deploy。同样地服务创建并运行后如需对外公开请按 Cloud Run 访问管理文档为服务配置公开访问权限。三、让 ToolJet 应用连接到 PostgRESTPostgREST 服务部署完成后还需要在ToolJet 应用服务上追加一组环境变量使其能够发现并调用 PostgREST从而启用 ToolJet Database 功能变量说明ENABLE_TOOLJET_DB设为true启用 ToolJet DatabaseTOOLJET_DBToolJet Database 的库名默认tooljet_dbTOOLJET_DB_HOSTToolJet Database 数据库主机TOOLJET_DB_USER数据库用户名TOOLJET_DB_PASS数据库密码TOOLJET_DB_PORT数据库端口PGRST_JWT_SECRET与 PostgREST 服务中配置的 JWT 密钥保持一致PGRST_HOSTPostgREST 服务的主机地址即 PostgREST Cloud Run 服务的 URL关键点是PGRST_JWT_SECRET必须在 ToolJet 应用与 PostgREST 服务两处配置为同一个值——ToolJet 服务端用该密钥签发访问 ToolJet Database 的 JWTPostgREST 用同一密钥校验两端不一致将导致认证失败。从部署拓扑看这与仓库中 deploy/docker/docker-compose.yaml 描述的本地编排是一致的postgrest服务与tooljet应用共享同一个.env其中包含PGRST_JWT_SECRET、PGRST_DB_URI等并额外注入PGRST_SERVER_PORT80与PGRST_DB_PRE_CONFIGpostgrest.pre_config。在 Cloud Run 上两个服务通过环境变量显式互指等价于该编排在云上的无服务器实现。当ENABLE_TOOLJET_DBtrue时ToolJet 会在服务端启动过程中基于TOOLJET_DB指定的库名自动创建新数据库在所有生产部署配置中均如此若需要手动触发建库可在 ToolJet 服务端执行npm run db:create。也可以通过TOOLJET_DB_URL直接提供连接串postgres://username:passwordhostname:port/database_name?sslmodedisable。四、升级到最新 LTS 版本LTS 版本发布节奏ToolJet 每 35 个月发布一个新的 LTS长期支持版本每个 LTS 版本的维护期至少 18 个月。LTS 镜像标签遵循LTS-前缀加版本号的命名约定例如tooljet/tooljet:EE-LTS-latest。你可以到 ToolJet 的 Docker Hub 镜像标签页查看最新的 LTS 标签。新装用户无需关心升级如果你正在进行的是全新安装直接使用最新版本即可本节内容不适用于新安装。升级前置条件必须对数据库做完整备份升级过程涉及结构变更为避免数据丢失务必在开始升级前完成数据库的全面备份版本门槛如果你的版本早于v2.23.0-ee2.10.2必须先升级到该版本再继续升级到目标 LTS 版本不允许跨版本直接升级。升级完成后重新构建/推送新版本的容器镜像并更新 Cloud Run 服务的镜像引用即可完成 Cloud Run 上的 LTS 升级。总结Cloud Run 部署架构一览整个部署在 Cloud Run 上由三个核心组件构成ToolJet 应用服务端口 30002 GiB运行npm, run, start:prod生产命令承载前端客户端与后端 API连接 Cloud SQL 中的 PostgreSQLPostgREST 服务端口 30001 GiB作为 ToolJet Database 的 HTTP-to-SQL 网关同样连接 Cloud SQLCloud SQL PostgreSQL 实例同时承载 ToolJet 主数据库与 ToolJet Databasetooljet_db二者可以共用一个实例也可以按文档建议分别建库。三者通过环境变量互相协作TOOLJET_HOST决定应用对外地址PG_*系列连接主库PGRST_JWT_SECRETPGRST_HOST打通应用与 PostgREST 的认证与调用链路。按本文步骤操作即可在 Google Cloud 上获得一个生产可用的 ToolJet 自托管实例并顺带开启 ToolJet Database 能力。【免费下载链接】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),仅供参考
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。