ToolJet 3.20 配置参数详解
ToolJet v3.20.246-lts 全量配置参数详解:实例基础、安全密钥、主库与内置数据库、队列工作流、会话口令、注册访问控制、SSO、SMTP、可观测与功能开关逐项给出含义、默认值与生效方式,全部经真实部署实测或官方文档实查。
ToolJet 3.20 配置参数详解
目标:系统梳理 ToolJet v3.20.246-lts 的全部配置参数,按「实例基础 / 安全密钥 / 数据库 / 队列与工作流 / 会话与口令 / 登录注册 / SSO / 邮件 / 集成 / 可观测 / 功能开关」逐项给出含义、默认值与生效方式,参数行为均经真实部署实测或官方文档实查(查询日期 2026-10-21),帮助读者一次配准生产实例。
一、环境信息
- 操作系统:Ubuntu 22.04.4 LTS(x86_64)
- ToolJet:v3.20.246-lts 社区版(tooljet/tooljet-ce,2026-10-15 发布)
- 部署形态:官方 Docker Compose 方案(主服务 + PostgreSQL 16,.env 统一注入),部署过程见《ToolJet 3.20 Docker Compose 部署指南》
- 参数来源:随部署镜像发布的
.env.example(v3.20.246-lts 标签,182 行)、官方环境变量文档 docs.tooljet.ai/docs/setup/env-vars、以及本文实测部署的行为验证 - 标注约定:【实测】= 本文部署环境中验证过实际行为;【实查】= 官方文档/示例文件实查(2026-10-21)
二、前置条件
- 已按《ToolJet 3.20 Docker Compose 部署指南》完成一次成功部署(
curl /api/health返回{"works":"yeah",...}); - 能编辑部署目录下的
.env并重建服务; - 理解两条基本原则:ToolJet 的配置面几乎全部收敛在
.env一处;改完必须重建服务才生效(不是简单 restart,见第三节)。
三、参数查看与修改方式
3.1 查看当前生效参数
方式一:进入服务打印进程环境(实测):
cd /opt/tooljet
docker compose exec tooljet env | grep -E '^(PG_|TOOLJET_|SECRET_KEY|LOCKBOX)' | sort
实测输出节选:
LOCKBOX_MASTER_KEY=30f0b8b62ab3360b21759611df643f8210ba00e2a9a7e29da5f2d3e1c22b1b0d
PG_DB=tooljet_production
PG_HOST=postgres
PG_PASS=q1w2e3r4
PG_USER=postgres
TOOLJET_DB=tooljet_db
TOOLJET_DB_HOST=postgres
TOOLJET_DB_PASS=q1w2e3r4
TOOLJET_DB_USER=postgres
TOOLJET_HOST=http://192.168.1.62:8137
方式二:看启动自检日志。主服务每次启动会输出一段配置摘要(实测日志行,逐行照抄):
{"level":"info","msg":"global HTTP proxy: Not configured"}
{"level":"info","msg":"Frame embedding: enabled"}
{"level":"info","msg":"Metrics Enabled: true"}
{"level":"info","msg":"OpenTelemetry: false"}
{"level":"info","msg":"Environment: production"}
{"level":"info","msg":"ORM logging level: error"}
💡 这段自检日志是核对配置是否注入成功的最快手段:
Metrics Enabled、ORM logging level、global HTTP proxy三行分别对应ENABLE_METRICS、ORM_LOGGING、TOOLJET_HTTP_PROXY的当前值。
3.2 修改参数与生效方式
cd /opt/tooljet
vi .env # 修改参数
docker compose up -d # 重建服务使新值生效
⚠️ 注意:
docker compose restart只重启进程、不会重读.env(环境变量在创建时注入)。正确做法是docker compose up -d,Compose 检测到配置变化会自动重建对应服务(实测重建期间服务中断约 20~40 秒,低峰操作)。
3.3 参数命名规律
- 库连接类前缀:
PG_*(主库)、TOOLJET_DB_*(内置库)、PGRST_*(内置库 REST API); - 开关类变量取值就是字符串
true/false,不是布尔解析(例如ENABLE_METRICS === 'true'才生效,实测留空等同关闭); - 时长类变量单位各异:会话/链接为分钟,工作流节点超时为毫秒,工作流整体超时为秒,口令有效期为天。
四、参数总览
v3.20.246-lts 的 .env.example 与官方文档覆盖的参数约 80 项,按用途分 12 类:
| 分类 | 代表参数 | 作用 |
|---|---|---|
| 实例基础 | TOOLJET_HOST、TOOLJET_EDITION、DEPLOYMENT_PLATFORM | 对外地址与版本形态 |
| 安全密钥 | LOCKBOX_MASTER_KEY、SECRET_KEY_BASE、MFA_MASTER_SECRET | 凭据与会话加密 |
| 主库连接 | PG_HOST/DB/USER/PASS、DATABASE_URL、ORM_LOGGING | 应用元数据库 |
| 内置数据库 | TOOLJET_DB_、PGRST_、PG_DB_OWNER | ToolJet Database 功能 |
| 队列与工作流 | WORKER、REDIS_、TOOLJET_WORKFLOW_CONCURRENCY、WORKFLOW_ | 任务处理与自动化 |
| 会话与口令 | USER_SESSION_EXPIRY、PASSWORD_、LINK_EXPIRY_MINUTES、PAT_ | 登录态与口令策略 |
| 注册与访问控制 | DISABLE_SIGNUPS、SSO_ACCEPTED_DOMAINS、ENABLE_CORS、DISABLE_APP_EMBED | 谁能进、怎么进 |
| SSO/LDAP | SSO_GOOGLE_OAUTH2_CLIENT_ID、SSO_GIT_OAUTH2_*、DISABLE_LDAP_GROUP_SYNC | 单点登录 |
| 邮件 SMTP | SMTP_*、DEFAULT_FROM_EMAIL | 邀请/重置邮件 |
| 第三方集成 | GOOGLE_CLIENT_ID、SLACK_CLIENT_ID、GOOGLE_MAPS_API_KEY | 数据源 OAuth |
| 可观测 | ENABLE_METRICS、ENABLE_OTEL、APM_VENDOR、SENTRY_DNS、LOG_LEVEL | 指标与日志 |
| 功能开关 | ENABLE_MULTIPLAYER_EDITING、COMMENT_FEATURE_ENABLE、ENABLE_MARKETPLACE_FEATURE、MAX_JSON_SIZE、FORWARD_RESTAPI_COOKIES | 特性取舍 |
关键差异与读表建议:先保住「必配 12 项」(部署篇第六节的最小集),再按场景增配——多人协作先看「会话与口令」,对外暴露实例先看「注册与访问控制」,接企业身份源看 SSO 类,接监控看可观测类。
五、核心参数分类详解
5.1 实例基础
TOOLJET_HOST 【实测】:实例对外完整地址,必须 http:// 或 https:// 开头。实测值 http://192.168.1.62:8137。影响应用分享链接、邀请链接、密码重置链接与 reset-superadmin 生成的重置链接;端口必须与对外映射端口一致,否则生成的链接打不开。
TOOLJET_EDITION 【实查】:ce(默认)/ ee。compose 部署时在 docker compose up 前设置;配合企业版镜像使用,社区版不用管。
DEPLOYMENT_PLATFORM 【实查】:docker。遥测上报的部署平台标记,照抄示例文件即可。
SERVER_HOST 【实查】:服务器主机名标记,示例文件中为 <hostname> 占位,一般不填。
CHECK_FOR_UPDATES 【实查】:默认 true,每 24 小时检查一次新版本;离线环境设 false。
5.2 安全密钥
LOCKBOX_MASTER_KEY 【实测】:32 字节十六进制(openssl rand -hex 32 生成)。加密所有数据源凭据。⚠️ 一旦投入使用不可更换,否则全部凭据无法解密;轮换必须走官方 rotate:keys:prod 脚本(支持 --dry-run 演练,实查脚本支持该参数)。
SECRET_KEY_BASE 【实测】:64 字节十六进制。加密会话 Cookie。更换后所有登录态失效(用户需重新登录),可在告知用户的前提下更换。
MFA_MASTER_SECRET 【实查】:企业版两步认证的派生根密钥,社区版不用。
PGRST_JWT_SECRET 【实查】:内置数据库 REST API 的 JWT 密钥,openssl rand -hex 32 生成;不设则内置数据库拒绝认证请求。
5.3 主库连接
PG_HOST / PG_PORT / PG_DB / PG_USER / PG_PASS 【实测】:主库连接五件套。compose 部署 PG_HOST=postgres(服务名,实测可用);首次启动自动建库(实测启动日志 Created database tooljet_production)。
DATABASE_URL 【实查】:合并式连接串 postgres://用户:口令@主机:5432/库名?sslmode=disable。设置后启动脚本从连接串解析库地址(实测 entrypoint 脚本逻辑:DATABASE_URL 非空时优先按其解析 PG_HOST/PG_PORT),两套写法二选一。
PG_DB_OWNER 【实查】:默认开启——启动时自动建库并创建所需 PostgreSQL 扩展(实测迁移日志含 CREATE EXTENSION IF NOT EXISTS "pgcrypto")。数据库账号无 CREATEDB 权限时设 false 并手工建库建扩展。
ORM_LOGGING 【实测】:TypeORM 日志级别。all=全量 SQL(实测启动后每条查询都打 query: SELECT ... 日志,控制台噪声极大);生产推荐 error(仅错误与慢查询)或留空。实测 ORM_LOGGING=error 后仅剩业务日志。
LOG_LEVEL 【实查】:应用日志总开关(pino 级别 trace|debug|info|warn|error|fatal)。未设置时回退到 ORM_LOGGING 的值(官方 .env.example 注释说明)。想看访问日志设 info。
SLOW_QUERY_LOGGING_THRESHOLD / CUSTOM_QUERY_LOGGING_LEVEL / DISABLE_CUSTOM_QUERY_LOGGING 【实查】:慢查询阈值(毫秒,默认 1)、ORM 查询日志级别覆盖(['query','warn','error'])、关闭自定义查询日志。
5.4 内置数据库(ToolJet Database)
TOOLJET_DB / TOOLJET_DB_HOST / TOOLJET_DB_USER / TOOLJET_DB_PASS / TOOLJET_DB_PORT 【实测】:内置库连接信息。库 tooljet_db 启动时自动创建(实测 \l 可见);compose 部署 TOOLJET_DB_HOST=postgres。
TOOLJET_DB_RECONFIG 【实测】:默认 true,启动时重建内置库访问配置。
TOOLJET_DB_STATEMENT_TIMEOUT 【实查】:内置库单条语句超时,默认 60000 毫秒。
TOOLJET_DB_BULK_UPLOAD_MAX_ROWS / TOOLJET_DB_BULK_UPLOAD_MAX_CSV_FILE_SIZE_MB 【实查】:内置库批量上传限制,默认 5000 行 / 5MB。
PGRST_DB_URI / PGRST_HOST / PGRST_SERVER_PORT / PGRST_DB_PRE_CONFIG 【实测】:内置库 REST API(PostgREST)配置。PGRST_DB_URI 必须与 TOOLJET_DB_* 凭据一致(实测值 postgres://postgres:q1w2e3r4@postgres/tooljet_db);PGRST_DB_PRE_CONFIG=postgrest.pre_config 为固定值照抄。
5.5 队列与工作流
WORKER 【实测】:true 开启工作流任务处理;false/留空为纯 HTTP 模式。实测单实例部署 WORKER=true 时主服务自动拉起内建 Redis(启动日志首行 Redis started),无需外部 Redis。
💡 技术拓展:任务队列存储的选型——单实例用内建 Redis(随服务进程启动,零配置);多实例/独立 Worker 必须外接有状态 Redis(官方要求 v7.x,且启动参数须含
--appendonly yes --maxmemory-policy noeviction防任务丢失)。另有早期版本的 Temporal 方案已被 BullMQ 取代(官方提供迁移指引)。本文单实例实测采用内建 Redis。
队列形态 特点 适用场景 内建 Redis 随服务自启、零配置 单实例部署 外接 Redis(BullMQ) 持久化、多 Worker 共享队列 多实例/独立 Worker 扩容 Temporal(旧方案) 已废弃迁移路线 仅存量环境
REDIS_HOST / REDIS_PORT / REDIS_USER / REDIS_PASSWORD / REDIS_DB / REDIS_TLS 【实查】:外接 Redis 连接参数,仅多实例或独立 Worker 部署需要;内建 Redis 时不用填(单实例实测未填、工作流正常)。
TOOLJET_WORKFLOW_CONCURRENCY 【实查】:每个 Worker 并发处理工作流任务数,默认 5。
WORKFLOW_TIMEOUT_SECONDS / WORKFLOW_JS_MEMORY_LIMIT_MB / WORKFLOW_JS_TIMEOUT_MS 【实查】:工作流执行超时(默认 60 秒)、runjs/loop 节点内存上限(默认 20MB)、节点执行超时(默认 100 毫秒)。
TOOLJET_QUEUE_DASH_PASSWORD 【实查】:工作流队列看板口令(开启 Worker 后访问队列管理界面用)。
TOOLJET_WORKFLOW_SANDBOX_BYPASS 【实查】:true 时绕过 Python 执行沙箱(不支持 SYS_ADMIN 能力的平台用,安全降级需明知)。
5.6 会话与口令策略
USER_SESSION_EXPIRY 【实测】:登录会话时长(分钟),实测配置 2880(2 天)。
PASSWORD_RETRY_LIMIT / DISABLE_PASSWORD_RETRY_LIMIT 【实查】:连续登录失败锁定阈值(默认 5 次);DISABLE_PASSWORD_RETRY_LIMIT=true 关闭锁定。
LINK_EXPIRY_MINUTES 【实查】:邀请、忘记密码、邮箱验证链接有效期(分钟),默认 1440(24 小时)。
PASSWORD_EXPIRY_DAYS 【实查】:口令有效期(天),默认 30,到期强制重置;0 关闭过期策略。
ENABLE_PASSWORD_COMPLEXITY_RULES 【实查】:true 启用强口令规则——12~24 位且必须含大小写字母、数字、特殊字符;默认规则仅要求至少 5 位。
PAT_SESSION_EXPIRY / PAT_EXPIRY 【实查】:个人访问令牌(PAT)的会话时长(分钟)与有效期(天)。
5.7 注册与访问控制
DISABLE_SIGNUPS 【实查】:true 后仅受邀用户可注册,注册页保留但不可用(实测部署开启此策略需多工作区特性)。
SSO_DISABLE_SIGNUPS / SSO_ACCEPTED_DOMAINS 【实查】:SSO 登录是否禁止自动建号;允许登录的邮箱域名白名单(逗号分隔)。
HIDE_ACCOUNT_SETUP_LINK 【实查】:true 隐藏管理员页面的账号开通链接(配 SMTP 发欢迎邮件的场景)。
ENABLE_ONBOARDING_QUESTIONS_FOR_ALL_SIGN_UPS 【实查】:true 让所有新注册用户都走引导问卷。
ENABLE_CORS 【实查】:默认拒绝跨 TOOLJET_HOST 的访问;前后端不同域部署时设 true(实测启动日志可见 CORS 域集合随 TOOLJET_HOST 生成:Rebuilt CORS origins set in Redis: 0 origin(s))。
DISABLE_APP_EMBED / ENABLE_PRIVATE_APP_EMBED 【实查】:true 禁用应用 iframe 嵌入;ENABLE_PRIVATE_APP_EMBED=true 允许私有应用嵌入(实测启动日志行 Frame embedding: enabled 对应默认状态)。
MAX_JSON_SIZE 【实查】:服务端接受的最大 JSON 体积,默认 50MB,导入大应用 JSON 时调大(如 "150mb")。
FORWARD_RESTAPI_COOKIES 【实查】:true 时 REST API 数据源转发 Cookie(仅自托管)。
NODE_EXTRA_CA_CERTS 【实查】:自签名 HTTPS 端点场景,指向 PEM 证书文件绝对路径。
TOOLJET_HTTP_PROXY 【实测】:服务出网代理(数据源走代理)。实测未配置时启动日志输出 global HTTP proxy: Not configured;需要让 ToolJet 经代理访问外部数据源时设置该值。
5.8 SSO / LDAP / SAML
SSO_GOOGLE_OAUTH2_CLIENT_ID 【实查】:Google SSO 客户端 ID。
SSO_GIT_OAUTH2_CLIENT_ID / SSO_GIT_OAUTH2_CLIENT_SECRET / SSO_GIT_OAUTH2_HOST 【实查】:GitHub SSO 三件套(自建 GitHub 企业实例时补 HOST)。
SSO_UNIQUE_ID_FIELD / SSO_CUSTOM_EMAIL_DOMAIN 【实查】:OIDC 用非邮箱标识(如工号)登录时的字段名与合成邮箱域。
DISABLE_LDAP_GROUP_SYNC / DISABLE_SAML_GROUP_SYNC 【实查】:true 跳过对应协议的登录时组同步。
5.9 邮件 SMTP
SMTP_DISABLED 【实测】:实验室离线环境设 true 关闭发信(本文部署实测值)。生产要发邀请/重置邮件时删除此行。
SMTP_USERNAME / SMTP_PASSWORD / SMTP_DOMAIN / SMTP_PORT / DEFAULT_FROM_EMAIL 【实查】:社区版 SMTP 五件套与发件人地址(默认 hello@tooljet.io,务必改成自己的)。企业版 v2.62.0 起改在管理界面配置 SMTP,.env 仅对社区版生效。
5.10 第三方集成
GOOGLE_CLIENT_ID / GOOGLE_CLIENT_SECRET 【实查】:Google Sheets 等服务的 OAuth 凭据。
SLACK_CLIENT_ID / SLACK_CLIENT_SECRET 【实查】:Slack 数据源应用凭据。
GOOGLE_MAPS_API_KEY 【实查】:地图组件的 API Key。
5.11 可观测
ENABLE_METRICS 【实测】:true 开启指标端点。实测 curl -H 'Accept: application/json' http://localhost:8137/api/metrics 返回:
{"memory":{"rss":475766784,"heapTotal":375103488,"heapUsed":316223160,"external":39508851},"cpu":{"user":9115.21,"system":1169.378},"system":{"loadAverage":[4.52,4.03,3.4],"freeMemory":16082620416,"totalMemory":33607299072},"timestamp":"2026-10-21T08:14:32.152Z"}
Accept: text/plain 时返回 Prometheus 文本格式(实测节选):
# HELP process_cpu_user_seconds_total Total user CPU time spent in seconds.
# TYPE process_cpu_user_seconds_total counter
process_cpu_user_seconds_total{app="nestjs-app"} 1.510249
⚠️ 注意:端点路径是
/api/metrics而不是 .env 注释里写的/metrics——实测不带/api前缀的/metrics会被前端路由接管返回 HTML 页面。接入 Prometheus 抓取时务必写/api/metrics。
ENABLE_OTEL / ENABLE_OTEL_FRONTEND / OTEL_EXPORTER_OTLP_TRACES / OTEL_EXPORTER_OTLP_METRICS / OTEL_EXPORTER_OTLP_LOGS / OTEL_HEADER / OTEL_LOG_LEVEL / OTEL_FRONTEND_FLUSH_INTERVAL_SECONDS 【实查】:OpenTelemetry 导出开关与 OTLP 端点(traces/metrics/logs 三路),前端 beacon 需同时开 ENABLE_OTEL_FRONTEND,刷新间隔默认 30 秒(限 5–600)。
APM_VENDOR / SENTRY_DNS / SENTRY_DEBUG 【实查】:APM 供应商(sentry)、Sentry DSN 与调试开关。
5.12 功能开关
ENABLE_MULTIPLAYER_EDITING 【实测】:多人协同编辑,官方示例默认 true(本文部署实测值)。
COMMENT_FEATURE_ENABLE 【实查】:画布评论功能开关,需协同编辑开启。
ENABLE_MARKETPLACE_FEATURE 【实查】:插件市场开关(官方部署示例默认 true)。
DISABLE_TOOLJET_TELEMETRY 【实测】:true 关闭每 24 小时的使用数据上报(本文部署实测值)。
DISABLE_DATA_QUERY_RUN_THROTTLE / DATA_QUERY_RUN_TTL / DATA_QUERY_RUN_LIMIT 【实查】:数据查询运行限流。默认每 1000 毫秒窗口内每(用户,应用)50 次,超限返回 HTTP 429;DISABLE_DATA_QUERY_RUN_THROTTLE=true 整体关闭。
AI_ATTACHMENTS_MAX_UPLOADS / AI_ATTACHMENTS_MAX_PROVIDER_UPLOADS 【实查】:AI 附件上传预算(主库内/上传到提供商),示例文件默认 100/1000。
5.13 GitSync(Beta)
GITHUB_URL / GITHUB_BRANCH / GITHUB_APP_ID / GITHUB_INSTALLATION_ID / GITHUB_PRIVATE_KEY 【实查】:用环境变量预置 GitSync 的 GitHub HTTPS 配置(私钥换行写成 \n);同样支持 GitLab 与 SSH 方式。官方标注 Beta,生产慎用。
5.14 授权与 SCIM(企业向)
TJ_LICENSE 【实查】:预置 License Key,启动时自动应用,避免每实例手工录入(Beta)。
ORGANIZATION_LICENSE_URL / ORGANIZATION_LICENSE_API_KEY 【实查】:云特定授权接口。
SCIM_ENABLED / SCIM_BASIC_AUTH_USER / SCIM_BASIC_AUTH_PASS / SCIM_HEADER_AUTH_TOKEN 【实查】:SCIM 用户目录同步开关与认证凭据(示例文件默认值仅演示,生产必须改强值)。
六、生产配置模板
适用场景:8C16G 服务器、NVMe SSD、50 人以内部门、compose 单实例 + 内置 PostgreSQL(在此规模下单实例表现稳定,实测空闲内存占用约 450MiB,留足增长空间):
# ---- 实例基础 ----
TOOLJET_HOST=https://tooljet.example.com
DEPLOYMENT_PLATFORM=docker
# ---- 安全密钥(部署时生成后固定,勿再改动)----
LOCKBOX_MASTER_KEY=<openssl rand -hex 32 的结果>
SECRET_KEY_BASE=<openssl rand -hex 64 的结果>
PGRST_JWT_SECRET=<openssl rand -hex 32 的结果>
# ---- 主库 ----
ORM_LOGGING=error
PG_DB=tooljet_production
PG_USER=tooljet
PG_HOST=postgres
PG_PASS=<强口令>
PG_PORT=5432
# ---- 内置数据库 ----
TOOLJET_DB=tooljet_db
TOOLJET_DB_USER=tooljet
TOOLJET_DB_HOST=postgres
TOOLJET_DB_PASS=<强口令>
TOOLJET_DB_RECONFIG=true
TOOLJET_DB_STATEMENT_TIMEOUT=60000
PGRST_DB_URI=postgres://tooljet:<强口令>@postgres/tooljet_db
PGRST_HOST=localhost:3002
PGRST_SERVER_PORT=3002
PGRST_DB_PRE_CONFIG=postgrest.pre_config
# ---- 队列与工作流(单实例内建队列)----
WORKER=true
TOOLJET_WORKFLOW_CONCURRENCY=5
WORKFLOW_TIMEOUT_SECONDS=60
TOOLJET_QUEUE_DASH_PASSWORD=<看板强口令>
# ---- 会话与口令 ----
USER_SESSION_EXPIRY=2880
PASSWORD_EXPIRY_DAYS=0
LINK_EXPIRY_MINUTES=1440
# ---- 注册与访问 ----
DISABLE_SIGNUPS=true
# ---- 邮件(接入后删除 SMTP_DISABLED)----
DEFAULT_FROM_EMAIL=tooljet@example.com
SMTP_USERNAME=tooljet@example.com
SMTP_PASSWORD=<SMTP口令>
SMTP_DOMAIN=smtp.example.com
SMTP_PORT=587
# ---- 可观测 ----
ENABLE_METRICS=true
LOG_LEVEL=info
CHECK_FOR_UPDATES=true
DISABLE_TOOLJET_TELEMETRY=true
模板要点:ORM_LOGGING=error 避免日志刷屏(实测 all 级别每条查询都会输出);PASSWORD_EXPIRY_DAYS=0 关闭强制改密周期(按企业合规要求取舍);DISABLE_SIGNUPS=true 收紧入口;口令类占位在落地时全部替换为强随机值,LOCKBOX_MASTER_KEY 落地后立即离线备份。
七、常见问题(FAQ)
Q1:改了 .env 为什么不生效?
docker compose restart 不会重读 .env。执行 docker compose up -d 让 Compose 重建服务(实测重建后用 docker compose exec tooljet env 核对新值)。
Q2:日志被 query: SELECT ... 刷屏?
ORM_LOGGING=all 的表现(实测每条 SQL 一行日志)。改为 ORM_LOGGING=error 或留空,重建生效。
Q3:/metrics 打不开或返回 HTML?
三步排查:确认 .env 有 ENABLE_METRICS=true;确认用 up -d 重建过;确认路径是 /api/metrics(实测根路径 /metrics 返回前端页面)。启动自检日志里 Metrics Enabled: true 说明开关已生效。
Q4:LOCKBOX_MASTER_KEY 丢了/要换怎么办?
丢失 = 所有数据源凭据不可恢复,只能重配数据源。轮换用官方 rotate:keys:prod 脚本,先 --dry-run 演练(实查脚本输出含「DRY RUN MODE: No changes will be made」提示),确认备份后再正式执行。
Q5:邀请邮件发不出去?
检查是否还留着 SMTP_DISABLED=true(实测该值直接关闭发信);社区版确认 SMTP_USERNAME/SMTP_PASSWORD/SMTP_DOMAIN/SMTP_PORT 四项齐全;企业版(v2.62.0 起)改到管理界面配置。
Q6:数据查询偶发 429?
命中了查询运行限流(默认 1000ms 窗口 50 次)。确认是否有人在应用里写了递归触发;确需放开再调整 DATA_QUERY_RUN_LIMIT,不建议直接 DISABLE_DATA_QUERY_RUN_THROTTLE=true。
八、参考链接
- 官方环境变量文档:https://docs.tooljet.ai/docs/setup/env-vars
- v3.20.246-lts .env.example:https://raw.githubusercontent.com/ToolJet/ToolJet/v3.20.246-lts/.env.example
- PostgREST 配置文档(PGRST_* 细项):https://postgrest.org/en/stable/configuration.html
- 本专栏部署篇:《ToolJet 3.20 Docker Compose 部署指南》
- 本专栏介绍与选型篇:《ToolJet 3.20 介绍与选型指南》
- 本专栏命令篇:《ToolJet 3.20 常用 CLI 命令与工具详解》