Skip to main content
Dify 企业版通过 Helm 部署,大多数变量在 values.yaml 文件中配置。Helm chart 会将一组固定变量写入 API、web、worker 和 enterprise 这几个 ConfigMap(默认值取自 values.yaml),其余 Dify 应用变量则通过各服务的 extraEnv 字段暴露。
此处列出的变量仅供参考。Dify 应用读取的变量远多于 Helm chart 直接设置的部分。完整的应用级变量列表见上游 .env.example。任何未在 values.yaml 中设置的变量都可通过 extraEnv 添加(见 常见问题)。如果在 values.yaml 中找不到某个变量,通过 extraEnv 设置即可。
标注为 (Helm default) 的默认值是 chart 从 values.yaml 写入 ConfigMap 的值。其余默认值均为 Dify 应用的内置默认值,在变量未通过 extraEnv 设置时生效。

通用变量

以下 URL 变量用于配置 Dify 各服务的公开地址。Helm chart 根据 values.yaml 中的域名设置(global.consoleApiDomainglobal.consoleWebDomain 等)推导这些变量,因此通常设置域名即可,无需直接设置变量。

CONSOLE_API_URL

默认值:由 global.consoleApiDomain 推导 Dify 后端 API 的公开 URL。用于构造 OAuth 授权回调(GitHub、Google 登录)、Notion 集成,以及任何需要 OAuth 的插件。同时决定是否使用安全(仅 HTTPS)Cookie。 范例:https://api.console.dify.ai

CONSOLE_WEB_URL

默认值:由 global.consoleWebDomain 推导 Dify 控制台前端的公开 URL。用于构造所有系统邮件(邀请、密码重置、通知)中的链接,并在 OAuth 登录后将用户重定向回控制台。当 CONSOLE_CORS_ALLOW_ORIGINS 未设置时,它还作为默认的 CORS 允许来源。 范例:https://console.dify.ai

SERVICE_API_URL

默认值:由 global.serviceApiDomain 推导 控制台中向开发者展示的 API Base URL,即开发者复制到代码里调用 Dify API 的地址。当服务器可通过多个地址访问时,设置该变量可确保 URL 一致。 范例:https://api.dify.ai

APP_API_URL

默认值:由 global.appApiDomain 推导 WebApp 前端(已发布应用)使用的后端 API URL。该变量由 web 前端容器使用,而非 Python 后端。 范例:https://api.app.dify.ai

APP_WEB_URL

默认值:由 global.appWebDomain 推导 已发布 WebApp 的公开访问 URL。工作流中的 Human Input 节点必须设置此项:邮件通知里的表单链接按 {APP_WEB_URL}/form/{token} 构造。若为空,Human Input 邮件将无法包含有效的表单链接。 范例:https://app.dify.ai

TRIGGER_URL

默认值:由 global.triggerDomain 推导 Webhook 和集成触发端点的公开访问 URL。外部系统通过该地址调用你的工作流。Dify 按 {TRIGGER_URL}/triggers/webhook/{id} 构造触发器回调 URL 并在控制台中展示。要让触发器正常工作,此项必须指向外部系统可访问的公开域名或 IP。

FILES_URL

默认值:由 global.filesDomain 推导 文件预览与下载链接的基础 URL。Dify 为所有文件(上传的文档、工具输出、工作空间 Logo)生成带签名、有时效的 URL,并提供给前端和多模态模型。为防止伪造,文件 URL 经过签名并会过期(见 FILES_ACCESS_TIMEOUT)。 范例:https://upload.example.com

INTERNAL_FILES_URL

默认值:(为空;回退到 FILES_URL 集群内部服务之间通信所用的文件访问 URL(例如插件守护进程和文档提取器)。若外部 FILES_URL 通过 ingress 或公开域名路由,内部服务可能无法访问。当内部服务无法访问外部 URL 时,通过 extraEnv 设置此项。 范例:http://dify-api-svc:5001

FILES_ACCESS_TIMEOUT

默认值:300(5 分钟) 签名文件 URL 的有效时长(秒)。超过该时间后 URL 会被拒绝,文件需重新请求。长耗时流程可调大;追求更严格的安全性可调小。

服务器配置

日志

通用

SECRET_KEY

默认值:由 chart 设置(见你部署的 secret 配置) 用于会话 Cookie 签名、JWT 鉴权令牌、文件 URL 签名(HMAC-SHA256),以及加密第三方 OAuth 凭据(AES-256)。Helm chart 通过一个 secret 管理该值。
部署后更改此密钥会立即登出所有用户、使所有文件 URL 失效,并破坏所有使用 OAuth 的插件集成,因为它们的加密凭据将无法恢复。

Token 与请求限制

Worker 配置

Helm chart 通过 values.yaml 而非环境变量管理 worker 数量。serverWorkerAmount 控制 API Gunicorn worker 数,celeryWorkerAmount 控制每个 worker 部署的 Celery worker 数。请在 values.yaml 中设置。

API Tool 配置

数据库配置

Helm chart 通过 values.yaml 和共享的数据库 ConfigMap 配置主数据库连接(主机、端口、凭据、数据库名),而非通过各个 DB_* 变量。下列变量用于调优应用的连接池,可通过 extraEnv 设置。

Redis 配置

Helm chart 通过 values.yaml(共享的 Redis 配置)配置 Redis 连接。应用支持单机、Sentinel 和 Cluster 三种模式。下列变量是应用级调节项;在 Helm 部署中,优先使用 chart 的 Redis 设置,调优时再用 extraEnv

Redis SSL 配置

仅在 REDIS_USE_SSL=true 时生效。

Redis 连接弹性

Celery 配置

Helm chart 通过 values.yaml 和共享的 Celery secret 管理 Celery broker 连接。下列变量是应用级调优项。

CORS 配置

控制前端的跨域访问策略。chart 仅在 values.yaml 中设置时才写入这些变量。

文件存储配置

配置 Dify 存放上传文件、知识库文档和加密密钥的位置。每种存储类型都有各自的凭据变量,只需配置你使用的那种。在 Helm 部署中,除非 chart 已暴露,否则通过 extraEnv 设置。

STORAGE_TYPE

默认值:opendal 选择文件存储后端。支持的值:opendals3azure-blobaliyun-ossgoogle-storagehuawei-obsvolcengine-tostencent-cosbaidu-obsoci-storagesupabaseclickzetta-volumelocal(已弃用;内部通过 OpenDAL 的 filesystem 协议实现)。
默认存储后端,基于 Apache OpenDAL,提供支持多种存储服务的统一接口。Dify 会自动扫描匹配 OPENDAL_<SCHEME>_* 的环境变量并传给 OpenDAL。例如当 OPENDAL_SCHEME=s3 时,设置 OPENDAL_S3_ACCESS_KEY_IDOPENDAL_S3_SECRET_ACCESS_KEY 等。所有可用协议及其配置选项,见 OpenDAL 服务文档
ClickZetta Volume 复用 Vector Database 部分配置的 CLICKZETTA_* 连接参数。

归档存储

用于归档工作流运行日志的独立 S3 兼容存储。把超过保留期的工作流运行记录归档为 JSONL 格式。

向量数据库配置

配置用于知识库嵌入存储和相似度搜索的向量数据库。每个供应商都有各自的凭据变量,只需配置你使用的那个。

VECTOR_STORE

默认值:weaviate 选择向量数据库后端。如果某个数据集已建立索引,该数据集存储的类型优先于此设置。 支持的值:weaviateoceanbaseseekdbqdrantmilvusmyscalerelytpgvectorpgvecto-rschromaopensearchoracletencentelasticsearchelasticsearch-jaanalyticdbcouchbasevikingdbopengausstablestorevastbasetidbtidb_on_qdrantbaidulindormhuawei_cloudupstashmatrixoneclickzettaalibabacloud_mysqlirishologres
seekdb 是 OceanBase 的精简版,使用相同的连接配置。

知识库配置

标注导入

模型配置

多模态配置

Sentry 配置

Sentry 提供错误跟踪和性能监控。在 Helm 部署中,通过 values.yamlapi.sentryworker.sentryweb.sentry)按服务启用 Sentry。

Notion 集成配置

将 Dify 连接到 Notion 作为知识库数据源。在 https://www.notion.so/my-integrations 获取集成凭据。

邮件配置

Dify 会为账户邀请、密码重置、登录验证码和 Human Input 节点通知发送邮件。配置三种受支持的服务商之一。邮件链接要求设置 CONSOLE_WEB_URL(见 通用变量)。
三种 TLS 模式:隐式 TLS(SMTP_USE_TLS=trueSMTP_OPPORTUNISTIC_TLS=false、端口 465)、STARTTLS(SMTP_USE_TLS=trueSMTP_OPPORTUNISTIC_TLS=true、端口 587)或明文(SMTP_USE_TLS=false、端口 25)。
更多细节见 SendGrid 文档

其他配置

索引

Token 与邀请

所有 token 过期变量都控制存于 Redis 的一次性令牌保持有效的时长。过期后用户须重新申请新令牌。

代码执行沙箱

沙箱是一个独立服务,在隔离环境中运行 Python、JavaScript 和 Jinja2 代码节点。chart 会自动将 CODE_EXECUTION_ENDPOINT 指向集群内的沙箱服务。

工作流运行时

工作流存储仓库

以下变量选择由哪个后端实现处理工作流执行数据。默认的 SQLAlchemy 仓库将所有内容存于数据库。

GraphEngine Worker 池

工作流日志清理

chart 通过 workerBeat.enableWorkflowLogCleanup 启用此功能,它会在 beat ConfigMap 上设置 WORKFLOW_LOG_CLEANUP_ENABLED。其余变量不由 chart 设置,请通过 worker 和 beat 服务的 extraEnv 配置。

HTTP Request 节点

以下变量用于配置工作流中调用外部 API 的 HTTP Request 节点。

Webhook

SSRF 防护

Dify 所有出站 HTTP 请求(HTTP 节点、图片下载等)都经由一个代理路由,该代理会拦截发往内部/私有 IP 段的请求,防止服务端请求伪造(SSRF)攻击。启用 SSRF 代理时,chart 会自动设置 SSRF_PROXY_HTTP_URLSSRF_PROXY_HTTPS_URL

Agent 配置

Dify CLI 与编程 API

Web 前端服务

以下变量仅由 Next.js web 前端容器使用,不影响 Python 后端。

企业版专属配置

以下变量仅适用于 Dify 企业版。当 enterprise.enabledtrue 时,Helm chart 会将它们设置到 API 和 worker 的 ConfigMap 上。

企业版遥测

用于企业版审计和追踪的 OpenTelemetry 导出。当 enterprise.enabledglobal.otel.enabled 均为 true 时,chart 会启用这些变量,并将端点接入集群内的企业版收集器。

模型供应商与工具排序配置

自定义应用界面中可用的工具和模型供应商及其显示顺序。使用逗号分隔的值,各项之间不加空格。chart 从 values.yaml 中的 api.positionToolapi.positionProvider 写入这些变量。

插件守护进程配置

插件守护进程是一个独立服务,管理插件生命周期(安装、执行、升级)。启用插件守护进程时,chart 会自动设置守护进程 URL、密钥和市场相关设置。

Agent Backend 配置

以下变量设置在 agent-backend 服务上,该服务为 Agent 功能提供支撑。完整部署方式见 Agent Sandbox 部署

OTLP / OpenTelemetry 配置

应用级 OpenTelemetry 埋点(区别于上面的企业版遥测)。启用时,Dify 会对 Flask 进行埋点并将遥测数据导出到 OTLP 收集器。

杂项

定时任务配置

Dify 使用 Celery Beat 按可配置的计划运行后台维护任务。

记录保留与清理

阿里云 SLS Logstore 配置

与阿里云日志服务(SLS)的可选集成,将工作流执行日志存于外部而非数据库。

事件总线配置

API 与 Celery worker 之间基于 Redis 的事件传输。

插件守护进程存储配置

插件守护进程可将插件包存于不同的存储后端。只需配置与 PLUGIN_STORAGE_TYPE 匹配的那个供应商。

常见问题

如何设置 values.yaml 中没有的变量?

通过需要该变量的服务(apiworkerweb)的 extraEnv 字段添加。例如,在 API 服务上设置两个变量:
同样的方式适用于 worker.extraEnvweb.extraEnv。在每个读取该变量的服务上都设置一遍。

如何配置 HTTP_PROXYHTTPS_PROXY

出于安全考虑,你可能需要让 Dify API 服务的出站流量经由代理路由。使用 extraEnv 字段: