【配置指南】Dify部署超全配置参考手册
本手册旨在为 Dify 使用Docker部署的用户提供
.env
配置文件中各项参数的详细中文说明和配置指导。请根据您的实际部署需求,仔细阅读并修改这些配置。
重要提示:
- 修改任何配置后,通常需要重启 Dify 服务才能生效。
- 对于涉及密钥 (Secret Key, API Key) 的配置,请务必使用强随机字符串,并妥善保管,避免泄露。
- 在生产环境中,建议详细评估各项参数对性能和安全的影响。
- 本文档基于您提供的配置文件版本,未来 Dify 版本可能会新增或修改配置项。
目录
- 通用变量 (Common Variables)
- 服务配置 (Server Configuration)
- 容器启动相关配置 (Container Startup Related Configuration)
- 数据源配置 (Datasource Configuration)
- 数据库配置 (Database Configuration)
- Redis 配置
- Celery 配置
- CORS 配置 (Cross-Origin Resource Sharing)
- 文件存储配置 (File Storage Configuration)
- 向量数据库配置 (Vector Database Configuration)
- 知识库配置 (Knowledge Configuration)
- 模型配置 (Model Configuration)
- 多模态配置 (Multi-modal Configuration)
- Sentry 配置 (应用监控与错误跟踪)
- Notion 集成配置
- 邮件相关配置 (Mail related configuration)
- 其他配置 (Others Configuration)
- Web 服务环境变量 (Environment Variables for web Service)
- 数据库服务环境变量 (Environment Variables for db Service)
- Sandbox 服务环境变量 (Environment Variables for sandbox Service)
- Weaviate 服务环境变量 (Environment Variables for weaviate Service)
- Chroma 服务环境变量 (Environment Variables for Chroma)
- Oracle 服务环境变量 (Environment Variables for Oracle Service)
- Milvus 服务环境变量 (Environment Variables for milvus Service)
- pgvector / pgvecto-rs 服务环境变量
- OpenSearch 服务环境变量
- Nginx 反向代理环境变量
- Certbot 配置
- SSRF 代理环境变量 (Environment Variables for SSRF Proxy)
- Docker Compose Profiles 配置
- Docker Compose 服务暴露主机端口配置
- 模型提供商与工具位置配置 (ModelProvider & Tool Position Configuration)
- 插件守护进程配置 (Plugin Daemon Configuration)
- OTLP Collector 配置 (OpenTelemetry Protocol)
- 防点击劫持配置 (Prevent Clickjacking)
1. 通用变量 (Common Variables)
这些变量用于定义 Dify 各个服务模块的基础 URL。
CONSOLE_API_URL
:- 说明: 控制台 API 的后端 URL,用于拼接授权回调地址。
- 配置: 如果为空,则表示与当前服务使用相同域名。
- 示例:
https://api.console.dify.ai
CONSOLE_WEB_URL
:- 说明: 控制台 Web 前端的 URL,用于拼接一些前端地址和 CORS 配置。
- 配置: 如果为空,则表示与当前服务使用相同域名。
- 示例:
https://console.dify.ai
SERVICE_API_URL
:- 说明: 服务 API 的 URL,用于向前端显示服务 API 的基础 URL。
- 配置: 如果为空,则表示与当前服务使用相同域名。
- 示例:
https://api.dify.ai
APP_API_URL
:- 说明: WebApp API 的后端 URL,用于为前端 API 声明后端 URL。
- 配置: 如果为空,则表示与当前服务使用相同域名。
- 示例:
https://api.app.dify.ai
APP_WEB_URL
:- 说明: WebApp 的 URL,用于向前端显示 WebApp API 的基础 URL。
- 配置: 如果为空,则表示与当前服务使用相同域名。
- 示例:
https://app.dify.ai
FILES_URL
:- 说明: 文件预览或下载的 URL 前缀。用于向前端显示文件预览或下载 URL,或作为多模态输入。URL 是签名的,并具有过期时间。对于文件处理插件,必须设置此项。
- 配置:
- 对于
https://example.com
,使用FILES_URL=https://example.com
- 对于
http://example.com
,使用FILES_URL=http://example.com
- 对于
- 建议: 使用专用域名 (例如,
https://upload.example.com
)。或者,使用http://<your-ip>:5001
或http://api:5001
,确保端口 5001 可外部访问 (参考docker-compose.yaml
)。
2. 服务配置 (Server Configuration)
这些变量用于配置 Dify API 服务的核心行为。
LOG_LEVEL
:- 说明: 应用的日志级别。
- 支持的值:
DEBUG
,INFO
,WARNING
,ERROR
,CRITICAL
- 默认值:
INFO
LOG_FILE
:- 说明: 日志文件路径。
- 默认值:
/app/logs/server.log
LOG_FILE_MAX_SIZE
:- 说明: 日志文件最大大小,单位 MB。
- 默认值:
20
LOG_FILE_BACKUP_COUNT
:- 说明: 日志文件最大备份数量。
- 默认值:
5
LOG_DATEFORMAT
:- 说明: 日志日期格式。
- 默认值:
%Y-%m-%d %H:%M:%S
LOG_TZ
:- 说明: 日志时区。
- 默认值:
UTC
DEBUG
:- 说明: 调试模式,默认为
false
。建议在本地开发时开启此配置,以防止由 monkey patch 引起的一些问题。 - 默认值:
false
- 说明: 调试模式,默认为
FLASK_DEBUG
:- 说明: Flask 调试模式,开启后可以在接口输出跟踪信息,方便调试。
- 默认值:
false
ENABLE_REQUEST_LOGGING
:- 说明: 启用请求日志记录,将记录请求和响应信息。日志级别为
DEBUG
。 - 默认值:
False
- 说明: 启用请求日志记录,将记录请求和响应信息。日志级别为
SECRET_KEY
:- 说明: 用于安全签署会话 cookie 和加密数据库中敏感信息的密钥。
- 配置: 您可以使用
openssl rand -base64 42
生成一个强密钥。 - 示例 (请替换为自己的):
sk-9f73s3ljTXVcMT3Blb3ljTqtsKiGHXVcMT3BlbkFJLK7U
INIT_PASSWORD
:- 说明: 管理员用户初始化密码。如果留空,则在创建初始管理员帐户时不会提示输入密码。密码长度不能超过30个字符。
DEPLOY_ENV
:- 说明: 部署环境。
- 支持的值:
PRODUCTION
,TESTING
。默认为PRODUCTION
。 - 测试环境: 前端页面上会有一个明显的颜色标签,表明这是一个测试环境。
- 默认值:
PRODUCTION
CHECK_UPDATE_URL
:- 说明: 是否启用版本检查策略。如果设置为空,则会调用
https://updates.dify.ai
进行版本检查。 - 默认值:
https://updates.dify.ai
- 说明: 是否启用版本检查策略。如果设置为空,则会调用
OPENAI_API_BASE
:- 说明: 用于更改 OpenAI 基础地址,默认为
https://api.openai.com/v1
。当国内无法访问 OpenAI 时,可替换为国内镜像地址,或者当本地模型提供 OpenAI 兼容 API 时,可以替换。 - 默认值:
https://api.openai.com/v1
- 说明: 用于更改 OpenAI 基础地址,默认为
MIGRATION_ENABLED
:- 说明: 启用后,将在应用程序启动之前执行数据库迁移,并在迁移完成后启动应用程序。
- 默认值:
true
FILES_ACCESS_TIMEOUT
:- 说明: 文件访问时间,指定文件可被访问的时间间隔(秒)。
- 默认值:
300
秒
ACCESS_TOKEN_EXPIRE_MINUTES
:- 说明: 访问令牌的过期时间(分钟)。
- 默认值:
60
REFRESH_TOKEN_EXPIRE_DAYS
:- 说明: 刷新令牌的过期时间(天)。
- 默认值:
30
APP_MAX_ACTIVE_REQUESTS
:- 说明: 应用程序的最大活动请求数,0 表示无限制,应为非负整数。
- 默认值:
0
APP_MAX_EXECUTION_TIME
:- 说明: 应用程序最大执行时间(秒)。
- 默认值:
1200
3. 容器启动相关配置 (Container Startup Related Configuration)
这些配置仅在使用 Docker 镜像或 docker-compose
启动时生效。
DIFY_BIND_ADDRESS
:- 说明: API 服务绑定地址。
- 默认值:
0.0.0.0
(即所有地址均可访问)
DIFY_PORT
:- 说明: API 服务绑定端口号。
- 默认值:
5001
SERVER_WORKER_AMOUNT
:- 说明: API 服务器工作进程数量。
- 计算公式: 对于同步模式,为
CPU核心数 * 2 + 1
;对于 Gevent,为1
。 - 参考: Gunicorn Design - How many workers?
- 默认值:
1
SERVER_WORKER_CLASS
:- 说明: 服务器工作进程类型。
- 默认值:
gevent
。如果在 Windows 上使用,可以切换到sync
或solo
。
SERVER_WORKER_CONNECTIONS
:- 说明: 每个工作进程的默认连接数。
- 默认值:
10
CELERY_WORKER_CLASS
:- 说明: Celery 工作进程类型,与
SERVER_WORKER_CLASS
类似。如果在 Windows 上使用,可以切换到sync
或solo
。
- 说明: Celery 工作进程类型,与
GUNICORN_TIMEOUT
:- 说明: 请求处理超时时间(秒)。
- 默认值:
200
。建议设置为360
以支持更长的 SSE (Server-Sent Events) 连接时间。 - 配置值:
360
CELERY_WORKER_AMOUNT
:- 说明: Celery 工作进程数量。默认为
1
,可以根据需要设置。
- 说明: Celery 工作进程数量。默认为
CELERY_AUTO_SCALE
:- 说明: 指示是否启用 Celery 工作进程自动扩展的标志。当任务是 CPU 密集型并且可以根据工作负载动态分配和释放时,自动扩展非常有用。启用自动扩展后,可以指定工作进程的最大和最小数量。自动扩展算法将动态调整指定范围内的工件数量。
- 默认值:
false
(即禁用自动扩展)
CELERY_MAX_WORKERS
:- 说明: 可以自动扩展的 Celery 工作进程的最大数量。这是可选的,并且仅在启用自动扩展时使用。
- 默认值: 未设置
CELERY_MIN_WORKERS
:- 说明: 可以自动扩展的 Celery 工作进程的最小数量。这是可选的,并且仅在启用自动扩展时使用。
- 默认值: 未设置
API_TOOL_DEFAULT_CONNECT_TIMEOUT
:- 说明: API 工具默认连接超时时间(秒)。
- 默认值:
10
API_TOOL_DEFAULT_READ_TIMEOUT
:- 说明: API 工具默认读取超时时间(秒)。
- 默认值:
60
4. 数据源配置 (Datasource Configuration)
配置用于网站数据抓取的数据源。
ENABLE_WEBSITE_JINAREADER
:- 说明: 是否启用 Jina Reader 进行网站数据提取。
- 默认值:
true
ENABLE_WEBSITE_FIRECRAWL
:- 说明: 是否启用 Firecrawl 进行网站数据提取。
- 默认值:
true
ENABLE_WEBSITE_WATERCRAWL
:- 说明: 是否启用 Watercrawl 进行网站数据提取。
- 默认值:
true
5. 数据库配置 (Database Configuration)
Dify 使用 PostgreSQL 数据库。请确保使用 public
schema。此处的配置与 docker-compose.yaml
中 db
服务的配置一致。
DB_USERNAME
:- 说明: PostgreSQL 数据库用户名。
- 默认值:
postgres
DB_PASSWORD
:- 说明: PostgreSQL 数据库密码。
- 默认值:
difyai123456
(请务必修改为强密码)
DB_HOST
:- 说明: PostgreSQL 数据库主机名。在 Docker 环境中通常是服务名。
- 默认值:
db
DB_PORT
:- 说明: PostgreSQL 数据库端口。
- 默认值:
5432
DB_DATABASE
:- 说明: PostgreSQL 数据库名称。
- 默认值:
dify
SQLALCHEMY_POOL_SIZE
:- 说明: 数据库连接池的大小。
- 默认值:
30
(可适当增加)
SQLALCHEMY_POOL_RECYCLE
:- 说明: 数据库连接池回收时间(秒)。
- 默认值:
3600
SQLALCHEMY_ECHO
:- 说明: 是否打印 SQL 语句,用于调试。
- 默认值:
false
POSTGRES_MAX_CONNECTIONS
:- 说明: 数据库的最大连接数。
- 默认值:
100
- 参考: PostgreSQL Runtime Config - Connection
POSTGRES_SHARED_BUFFERS
:- 说明: 设置 PostgreSQL 用于共享缓冲区的共享内存量。
- 默认值:
128MB
- 建议值: 可用内存的 25%
- 参考: PostgreSQL Runtime Config - Resource
POSTGRES_WORK_MEM
:- 说明: 设置每个数据库工作进程用于工作空间的内存量。
- 默认值:
4MB
- 参考: PostgreSQL Runtime Config - Resource
POSTGRES_MAINTENANCE_WORK_MEM
:- 说明: 设置为维护活动保留的内存量。
- 默认值:
64MB
- 参考: PostgreSQL Runtime Config - Resource
POSTGRES_EFFECTIVE_CACHE_SIZE
:- 说明: 设置规划器对有效缓存大小的假设。
- 默认值:
4096MB
- 参考: PostgreSQL Runtime Config - Query
6. Redis 配置
Redis 用于缓存和会话期间的发布/订阅 (pub/sub)。
REDIS_HOST
:- 说明: Redis 主机名。
- 默认值:
redis
REDIS_PORT
:- 说明: Redis 端口。
- 默认值:
6379
REDIS_USERNAME
:- 说明: Redis 用户名 (如果 Redis 设置了 ACL)。
- 默认值: 空
REDIS_PASSWORD
:- 说明: Redis 密码。
- 默认值:
difyai123456
(请务必修改)
REDIS_USE_SSL
:- 说明: 是否使用 SSL 连接 Redis。
- 默认值:
false
REDIS_DB
:- 说明: Redis 数据库索引。
- 默认值:
0
REDIS_USE_SENTINEL
:- 说明: 是否使用 Redis Sentinel 模式。如果设置为
true
,应用程序将通过 Sentinel 自动发现并连接到主节点。 - 默认值:
false
- 说明: 是否使用 Redis Sentinel 模式。如果设置为
REDIS_SENTINELS
:- 说明: Redis Sentinel 节点列表。如果启用了 Sentinel 模式,请至少提供一个 Sentinel IP 和端口。
- 格式:
<sentinel1_ip>:<sentinel1_port>,<sentinel2_ip>:<sentinel2_port>,<sentinel3_ip>:<sentinel3_port>
REDIS_SENTINEL_SERVICE_NAME
:- 说明: Redis Sentinel 服务名称 (master name)。
REDIS_SENTINEL_USERNAME
:- 说明: Redis Sentinel 用户名。
REDIS_SENTINEL_PASSWORD
:- 说明: Redis Sentinel 密码。
REDIS_SENTINEL_SOCKET_TIMEOUT
:- 说明: Redis Sentinel 套接字超时时间(秒)。
- 默认值:
0.1
REDIS_USE_CLUSTERS
:- 说明: 是否使用 Redis Cluster 模式。
- 默认值:
false
REDIS_CLUSTERS
:- 说明: Redis Cluster 节点列表。如果启用了 Cluster 模式,请至少提供一个 Cluster IP 和端口。
- 格式:
<Cluster1_ip>:<Cluster1_port>,<Cluster2_ip>:<Cluster2_port>,<Cluster3_ip>:<Cluster3_port>
REDIS_CLUSTERS_PASSWORD
:- 说明: Redis Cluster 密码。
7. Celery 配置
Celery 是一个分布式任务队列,用于处理后台任务。
CELERY_BROKER_URL
:- 说明: 使用 Redis 作为消息代理 (broker),使用 Redis db 1 作为 Celery broker。
- 格式:
redis://<redis_username>:<redis_password>@<redis_host>:<redis_port>/<redis_database>
- 示例:
redis://:difyai123456@redis:6379/1
- 如果使用 Redis Sentinel,格式如下:
sentinel://<sentinel_username>:<sentinel_password>@<sentinel_host>:<sentinel_port>/<redis_database>
- 示例:
sentinel://localhost:26379/1;sentinel://localhost:26380/1;sentinel://localhost:26381/1
- 默认值:
redis://:difyai123456@redis:6379/1
(密码应与 Redis 配置一致)
BROKER_USE_SSL
:- 说明: Celery broker 是否使用 SSL。
- 默认值:
false
CELERY_USE_SENTINEL
:- 说明: 如果使用 Redis Sentinel 实现高可用性,请配置此项。
- 默认值:
false
CELERY_SENTINEL_MASTER_NAME
:- 说明: Celery 使用的 Redis Sentinel 主节点名称。
CELERY_SENTINEL_SOCKET_TIMEOUT
:- 说明: Celery 连接 Redis Sentinel 的套接字超时时间(秒)。
- 默认值:
0.1
8. CORS 配置 (Cross-Origin Resource Sharing)
用于设置前端跨域访问策略。
WEB_API_CORS_ALLOW_ORIGINS
:- 说明: 指定允许对 Web API 进行跨域请求的来源。
- 配置: 例如
https://dify.app
或*
表示允许所有来源。 - 默认值:
*
CONSOLE_CORS_ALLOW_ORIGINS
:- 说明: 指定允许对控制台 API 进行跨域请求的来源。
- 配置: 例如
https://cloud.dify.ai
或*
表示允许所有来源。 - 默认值:
*
9. 文件存储配置 (File Storage Configuration)
配置用于存储用户文件的存储类型和参数。
STORAGE_TYPE
:- 说明: 用于存储用户文件的存储类型。
- 默认值:
opendal
(推荐) - 其他可选值:
s3
,azure-blob
,google-storage
,aliyun-oss
,tencent-cos
,oci
,huawei-obs
,volcengine-tos
,baidu-obs
,supabase
. (根据需要选择其中一种,并配置下方对应的参数)
- Apache OpenDAL 配置:
- 说明: OpenDAL 的配置格式为
OPENDAL_<SCHEME_NAME>_<CONFIG_NAME>
。Dify 将扫描以OPENDAL_<SCHEME_NAME>
开头的配置并自动应用它们。 - 参考: 可以在 OpenDAL 仓库 中找到所有服务配置 (
CONFIG_NAME
)。 OPENDAL_SCHEME
:- 说明: OpenDAL 存储的方案名称。
- 默认值:
fs
(本地文件系统)
OPENDAL_FS_ROOT
:- 说明: OpenDAL 本地文件系统的根路径。
- 默认值:
storage
(通常是 docker volume 挂载的路径,例如./storage
)
- 说明: OpenDAL 的配置格式为
- S3 配置 (仅当
STORAGE_TYPE=s3
时生效):S3_ENDPOINT
: S3 兼容服务的 Endpoint URL (例如 MinIO)。如果使用 AWS S3,则留空。S3_REGION
: S3 存储桶所在的区域 (例如us-east-1
)。S3_BUCKET_NAME
: S3 存储桶名称。S3_ACCESS_KEY
: S3 访问密钥 ID。S3_SECRET_KEY
: S3 秘密访问密钥。S3_USE_AWS_MANAGED_IAM
: 是否使用 AWS 托管的 IAM 角色对 S3 服务进行身份验证。如果设置为false
,则必须提供访问密钥和秘密密钥。默认为false
。
- Azure Blob 配置 (仅当
STORAGE_TYPE=azure-blob
时生效):AZURE_BLOB_ACCOUNT_NAME
: Azure Blob 存储帐户名称。AZURE_BLOB_ACCOUNT_KEY
: Azure Blob 存储帐户密钥。AZURE_BLOB_CONTAINER_NAME
: Azure Blob 容器名称。AZURE_BLOB_ACCOUNT_URL
: Azure Blob 存储帐户 URL (例如https://<your_account_name>.blob.core.windows.net
)。
- Google Storage 配置 (仅当
STORAGE_TYPE=google-storage
时生效):GOOGLE_STORAGE_BUCKET_NAME
: Google Cloud Storage 存储桶名称。GOOGLE_STORAGE_SERVICE_ACCOUNT_JSON_BASE64
: Google Cloud 服务帐户 JSON 密钥文件的 Base64 编码字符串。
- 阿里云 OSS 配置 (仅当
STORAGE_TYPE=aliyun-oss
时生效):ALIYUN_OSS_BUCKET_NAME
: 阿里云 OSS 存储桶名称。ALIYUN_OSS_ACCESS_KEY
: 阿里云 OSS AccessKey ID。ALIYUN_OSS_SECRET_KEY
: 阿里云 OSS AccessKey Secret。ALIYUN_OSS_ENDPOINT
: 阿里云 OSS Endpoint (例如https://oss-cn-hangzhou.aliyuncs.com
或内网https://oss-ap-southeast-1-internal.aliyuncs.com
)。ALIYUN_OSS_REGION
: 阿里云 OSS 区域 (例如ap-southeast-1
)。ALIYUN_OSS_AUTH_VERSION
: 阿里云 OSS 认证版本 (例如v4
)。ALIYUN_OSS_PATH
: 存储路径前缀 (不要以/
开头,OSS 不支持对象名称以斜杠开头)。
- 腾讯云 COS 配置 (仅当
STORAGE_TYPE=tencent-cos
时生效):TENCENT_COS_BUCKET_NAME
: 腾讯云 COS 存储桶名称。TENCENT_COS_SECRET_KEY
: 腾讯云 COS SecretKey。TENCENT_COS_SECRET_ID
: 腾讯云 COS SecretId。TENCENT_COS_REGION
: 腾讯云 COS 地域 (例如ap-guangzhou
)。TENCENT_COS_SCHEME
: 访问协议 (http
或https
)。
- Oracle Storage (OCI) 配置 (仅当
STORAGE_TYPE=oci
时生效):OCI_ENDPOINT
: Oracle 对象存储命名空间兼容性端点 (例如https://your-object-storage-namespace.compat.objectstorage.us-ashburn-1.oraclecloud.com
)。OCI_BUCKET_NAME
: OCI 存储桶名称。OCI_ACCESS_KEY
: OCI 访问密钥。OCI_SECRET_KEY
: OCI 秘密密钥。OCI_REGION
: OCI 区域 (例如us-ashburn-1
)。
- 华为云 OBS 配置 (仅当
STORAGE_TYPE=huawei-obs
时生效):HUAWEI_OBS_BUCKET_NAME
: 华为云 OBS 桶名称。HUAWEI_OBS_SECRET_KEY
: 华为云 OBS SecretKey。HUAWEI_OBS_ACCESS_KEY
: 华为云 OBS AccessKey。HUAWEI_OBS_SERVER
: 华为云 OBS 服务地址 (Endpoint)。
- 火山引擎 TOS 配置 (仅当
STORAGE_TYPE=volcengine-tos
时生效):VOLCENGINE_TOS_BUCKET_NAME
: 火山引擎 TOS 桶名称。VOLCENGINE_TOS_SECRET_KEY
: 火山引擎 TOS SecretKey。VOLCENGINE_TOS_ACCESS_KEY
: 火山引擎 TOS AccessKey。VOLCENGINE_TOS_ENDPOINT
: 火山引擎 TOS 服务地址 (Endpoint)。VOLCENGINE_TOS_REGION
: 火山引擎 TOS 地域。
- 百度智能云 BOS 配置 (仅当
STORAGE_TYPE=baidu-obs
时生效):BAIDU_OBS_BUCKET_NAME
: 百度智能云 BOS 桶名称。BAIDU_OBS_SECRET_KEY
: 百度智能云 BOS SecretKey。BAIDU_OBS_ACCESS_KEY
: 百度智能云 BOS AccessKey。BAIDU_OBS_ENDPOINT
: 百度智能云 BOS 服务地址 (Endpoint)。
- Supabase Storage 配置 (仅当
STORAGE_TYPE=supabase
时生效):SUPABASE_BUCKET_NAME
: Supabase 存储桶名称。SUPABASE_API_KEY
: Supabase 服务角色密钥或具有存储权限的匿名密钥。SUPABASE_URL
: Supabase 项目 URL。
10. 向量数据库配置 (Vector Database Configuration)
配置用于存储知识库向量数据的数据库。
-
VECTOR_STORE
:- 说明: 要使用的向量存储类型。
- 支持的值:
weaviate
,qdrant
,milvus
,myscale
,relyt
,pgvector
,pgvecto-rs
,chroma
,opensearch
,oracle
,tencent
,elasticsearch
,elasticsearch-ja
,analyticdb
,couchbase
,vikingdb
,oceanbase
,opengauss
,tablestore
,vastbase
,tidb
,tidb_on_qdrant
,baidu
,lindorm
,huawei_cloud
,upstash
. - 默认值:
weaviate
-
Weaviate 配置 (仅当
VECTOR_STORE=weaviate
时生效):WEAVIATE_ENDPOINT
: Weaviate 端点 URL。- 默认值:
http://weaviate:8080
-
WEAVIATE_API_KEY
: Weaviate API 密钥。- 默认值:
WVF5YThaHlkYwhGUSmCRgsX3tD5ngdN8pkih
(请与下方 Weaviate 服务环境变量中的WEAVIATE_AUTHENTICATION_APIKEY_ALLOWED_KEYS
保持一致或按需修改)
- 默认值:
-
Qdrant 配置 (仅当
VECTOR_STORE=qdrant
时生效):QDRANT_URL
: Qdrant 端点 URL。- 默认值:
http://qdrant:6333
-
QDRANT_API_KEY
: Qdrant API 密钥。-
默认值:
difyai123456
-
QDRANT_CLIENT_TIMEOUT
: Qdrant 客户端超时时间(秒)。 -
默认值:
20
-
-
QDRANT_GRPC_ENABLED
: 是否启用 Qdrant gRPC。-
默认值:
false
-
QDRANT_GRPC_PORT
: Qdrant gRPC 端口。 -
默认值:
6334
-
-
QDRANT_REPLICATION_FACTOR
: Qdrant 复制因子。- 默认值:
1
- 默认值:
-
Milvus 配置 (仅当
VECTOR_STORE=milvus
时生效):MILVUS_URI
: Milvus URI。- 默认值:
http://host.docker.internal:19530
(或 Milvus 服务地址)
-
MILVUS_DATABASE
: Milvus 数据库名称。 -
MILVUS_TOKEN
: Milvus 令牌 (用于 Zilliz Cloud 或启用 RBAC 的 Milvus)。 -
MILVUS_USER
: Milvus 用户名。 -
MILVUS_PASSWORD
: Milvus 密码。 -
MILVUS_ENABLE_HYBRID_SEARCH
: 是否启用 Milvus 混合搜索。-
默认值:
False
-
MILVUS_ANALYZER_PARAMS
: Milvus 分析器参数。
-
-
MyScale 配置 (仅当
VECTOR_STORE=myscale
时生效):-
说明: 要支持多语言,请参考 MyScale 文档 设置
MYSCALE_FTS_PARAMS
。 -
MYSCALE_HOST
: MyScale 主机。 -
默认值:
myscale
-
-
MYSCALE_PORT
: MyScale 端口。-
默认值:
8123
-
MYSCALE_USER
: MyScale 用户名。 -
默认值:
default
-
-
MYSCALE_PASSWORD
: MyScale 密码。 -
MYSCALE_DATABASE
: MyScale 数据库名称。-
默认值:
dify
-
MYSCALE_FTS_PARAMS
: MyScale 全文搜索参数。
-
-
Couchbase 配置 (仅当
VECTOR_STORE=couchbase
时生效):-
COUCHBASE_CONNECTION_STRING
: 连接字符串必须包含 docker-compose 文件中定义的主机名 (本例中为couchbase-server)。- 默认值:
couchbase://couchbase-server
- 默认值:
-
COUCHBASE_USER
: Couchbase 用户名。- 默认值:
Administrator
- 默认值:
-
COUCHBASE_PASSWORD
: Couchbase 密码。- 默认值:
password
- 默认值:
-
COUCHBASE_BUCKET_NAME
: Couchbase 桶名称。- 默认值:
Embeddings
- 默认值:
-
COUCHBASE_SCOPE_NAME
: Couchbase 作用域名。 -
默认值:
_default
-
-
pgvector 配置 (仅当
VECTOR_STORE=pgvector
时生效):-
PGVECTOR_HOST
: pgvector 数据库主机。- 默认值:
pgvector
(或PostgreSQL服务主机)
- 默认值:
-
PGVECTOR_PORT
: pgvector 数据库端口。- 默认值:
5432
- 默认值:
-
PGVECTOR_USER
: pgvector 数据库用户名。- 默认值:
postgres
- 默认值:
-
PGVECTOR_PASSWORD
: pgvector 数据库密码。- 默认值:
difyai123456
- 默认值:
-
PGVECTOR_DATABASE
: pgvector 数据库名称。- 默认值:
dify
- 默认值:
-
PGVECTOR_MIN_CONNECTION
: pgvector 最小连接数。- 默认值:
1
- 默认值:
-
PGVECTOR_MAX_CONNECTION
: pgvector 最大连接数。- 默认值:
5
- 默认值:
-
PGVECTOR_PG_BIGM
: 是否启用 pg_bigm 扩展(用于全文搜索)。- 默认值:
false
- 默认值:
-
PGVECTOR_PG_BIGM_VERSION
: pg_bigm 扩展版本。 -
默认值:
1.2-20240606
-
-
Vastbase 配置 (仅当
VECTOR_STORE=vastbase
时生效):-
VASTBASE_HOST
: Vastbase 数据库主机。- 默认值:
vastbase
- 默认值:
-
VASTBASE_PORT
: Vastbase 数据库端口。- 默认值:
5432
- 默认值:
-
VASTBASE_USER
: Vastbase 数据库用户名。- 默认值:
dify
- 默认值:
-
VASTBASE_PASSWORD
: Vastbase 数据库密码。- 默认值:
Difyai123456
- 默认值:
-
VASTBASE_DATABASE
: Vastbase 数据库名称。- 默认值:
dify
- 默认值:
-
VASTBASE_MIN_CONNECTION
: Vastbase 最小连接数。- 默认值:
1
- 默认值:
-
VASTBASE_MAX_CONNECTION
: Vastbase 最大连接数。 -
默认值:
5
-
-
pgvecto-rs 配置 (仅当
VECTOR_STORE=pgvecto-rs
时生效):-
PGVECTO_RS_HOST
: pgvecto-rs 数据库主机。- 默认值:
pgvecto-rs
(或PostgreSQL服务主机)
- 默认值:
-
PGVECTO_RS_PORT
: pgvecto-rs 数据库端口。- 默认值:
5432
- 默认值:
-
PGVECTO_RS_USER
: pgvecto-rs 数据库用户名。- 默认值:
postgres
- 默认值:
-
PGVECTO_RS_PASSWORD
: pgvecto-rs 数据库密码。- 默认值:
difyai123456
- 默认值:
-
PGVECTO_RS_DATABASE
: pgvecto-rs 数据库名称。 -
默认值:
dify
-
-
AnalyticDB 配置 (仅当
VECTOR_STORE=analyticdb
时生效):ANALYTICDB_KEY_ID
: AnalyticDB 访问密钥 ID。ANALYTICDB_KEY_SECRET
: AnalyticDB 访问密钥 Secret。ANALYTICDB_REGION_ID
: AnalyticDB 地域 ID (例如cn-hangzhou
)。ANALYTICDB_INSTANCE_ID
: AnalyticDB 实例 ID (例如gp-ab123456
)。ANALYTICDB_ACCOUNT
: AnalyticDB 数据库账户。ANALYTICDB_PASSWORD
: AnalyticDB 数据库账户密码。ANALYTICDB_NAMESPACE
: AnalyticDB 命名空间。ANALYTICDB_NAMESPACE_PASSWORD
: AnalyticDB 命名空间密码。ANALYTICDB_HOST
: AnalyticDB 主机地址。ANALYTICDB_PORT
: AnalyticDB 端口。ANALYTICDB_MIN_CONNECTION
: AnalyticDB 最小连接数。ANALYTICDB_MAX_CONNECTION
: AnalyticDB 最大连接数。
-
TiDB Vector 配置 (仅当
VECTOR_STORE=tidb_vector
时生效):-
TIDB_VECTOR_HOST
: TiDB 主机。- 默认值:
tidb
- 默认值:
-
TIDB_VECTOR_PORT
: TiDB 端口。- 默认值:
4000
- 默认值:
-
TIDB_VECTOR_USER
: TiDB 用户名。 -
TIDB_VECTOR_PASSWORD
: TiDB 密码。 -
TIDB_VECTOR_DATABASE
: TiDB 数据库名称。 -
默认值:
dify
-
-
Tidb on Qdrant 配置 (仅当
VECTOR_STORE=tidb_on_qdrant
时生效):TIDB_ON_QDRANT_URL
: Qdrant 服务 URL。- 默认值:
http://127.0.0.1
-
TIDB_ON_QDRANT_API_KEY
: Qdrant API 密钥。-
默认值:
dify
-
TIDB_ON_QDRANT_CLIENT_TIMEOUT
: Qdrant 客户端超时时间。 -
默认值:
20
-
-
TIDB_ON_QDRANT_GRPC_ENABLED
: 是否启用 Qdrant gRPC。-
默认值:
false
-
TIDB_ON_QDRANT_GRPC_PORT
: Qdrant gRPC 端口。 -
默认值:
6334
-
-
TIDB_PUBLIC_KEY
: TiDB Cloud 公钥。-
默认值:
dify
-
TIDB_PRIVATE_KEY
: TiDB Cloud 私钥。 -
默认值:
dify
-
-
TIDB_API_URL
: TiDB Cloud API URL。-
默认值:
http://127.0.0.1
-
TIDB_IAM_API_URL
: TiDB Cloud IAM API URL。 -
默认值:
http://127.0.0.1
-
-
TIDB_REGION
: TiDB Cloud 区域。-
默认值:
regions/aws-us-east-1
-
TIDB_PROJECT_ID
: TiDB Cloud 项目 ID。 -
默认值:
dify
-
-
TIDB_SPEND_LIMIT
: TiDB Cloud 消费限制。- 默认值:
100
- 默认值:
-
Chroma 配置 (仅当
VECTOR_STORE=chroma
时生效):-
CHROMA_HOST
: Chroma 主机。- 默认值:
127.0.0.1
(如果 Chroma 在 Docker 中运行,应为 Chroma 服务名,例如chroma
)
- 默认值:
-
CHROMA_PORT
: Chroma 端口。- 默认值:
8000
- 默认值:
-
CHROMA_TENANT
: Chroma 租户。- 默认值:
default_tenant
- 默认值:
-
CHROMA_DATABASE
: Chroma 数据库。- 默认值:
default_database
- 默认值:
-
CHROMA_AUTH_PROVIDER
: Chroma 认证提供者。- 默认值:
chromadb.auth.token_authn.TokenAuthClientProvider
- 默认值:
-
CHROMA_AUTH_CREDENTIALS
: Chroma 认证凭据。 (如果 Chroma 服务配置了认证,这里需要填写对应的 token)
-
-
Oracle 配置 (仅当
VECTOR_STORE=oracle
时生效):-
ORACLE_USER
: Oracle 用户名。- 默认值:
dify
- 默认值:
-
ORACLE_PASSWORD
: Oracle 密码。- 默认值:
dify
- 默认值:
-
ORACLE_DSN
: Oracle DSN (Data Source Name),例如oracle:1521/FREEPDB1或 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=your_oracle_host)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=your_service_name)))
。- 默认值:
oracle:1521/FREEPDB1
- 默认值:
-
ORACLE_CONFIG_DIR
: Oracle 钱包配置目录 (用于 mTLS 连接)。- 默认值:
/app/api/storage/wallet
- 默认值:
-
ORACLE_WALLET_LOCATION
: Oracle 钱包位置 (用于 mTLS 连接)。- 默认值:
/app/api/storage/wallet
- 默认值:
-
ORACLE_WALLET_PASSWORD
: Oracle 钱包密码。- 默认值:
dify
- 默认值:
-
ORACLE_IS_AUTONOMOUS
: 是否为 Oracle Autonomous Database。 -
默认值:
false
-
-
Relyt 配置 (仅当
VECTOR_STORE=relyt
时生效):-
RELYT_HOST
: Relyt 数据库主机。- 默认值:
db
(或 PostgreSQL 服务主机)
- 默认值:
-
RELYT_PORT
: Relyt 数据库端口。- 默认值:
5432
- 默认值:
-
RELYT_USER
: Relyt 数据库用户名。- 默认值:
postgres
- 默认值:
-
RELYT_PASSWORD
: Relyt 数据库密码。- 默认值:
difyai123456
- 默认值:
-
RELYT_DATABASE
: Relyt 数据库名称。 -
默认值:
postgres
-
-
OpenSearch 配置 (仅当
VECTOR_STORE=opensearch
时生效):OPENSEARCH_HOST
: OpenSearch 主机。- 默认值:
opensearch
-
OPENSEARCH_PORT
: OpenSearch 端口。-
默认值:
9200
-
OPENSEARCH_SECURE
: 是否使用 HTTPS 连接 OpenSearch。 -
默认值:
true
-
-
OPENSEARCH_VERIFY_CERTS
: 是否验证 SSL 证书。-
默认值:
true
-
OPENSEARCH_AUTH_METHOD
: OpenSearch 认证方法(basic, iam)
。 -
默认值:
basic
-
-
OPENSEARCH_USER
: OpenSearch 用户名(当 OPENSEARCH_AUTH_METHOD=basic 时)。
-
默认值:
admin
-
OPENSEARCH_PASSWORD
: OpenSearch 密码(当 OPENSEARCH_AUTH_METHOD=basic 时)。
-
默认值:
admin
(请与下方 OpenSearch 服务环境变量中的OPENSEARCH_INITIAL_ADMIN_PASSWORD
匹配或按需修改)
-
-
OPENSEARCH_AWS_REGION
: AWS 区域 (如果使用 AWS 托管的 IAM,例如托管集群或 OpenSearch Serverless)。-
默认值:
ap-southeast-1
-
OPENSEARCH_AWS_SERVICE
: AWS 服务名称 (例如aoss
for OpenSearch Serverless)。
-
-
Tencent VectorDB 配置 (仅当
VECTOR_STORE=tencent
时生效):TENCENT_VECTOR_DB_URL
: 腾讯云向量数据库 URL。- 默认值:
http://127.0.0.1
-
TENCENT_VECTOR_DB_API_KEY
: 腾讯云向量数据库 API 密钥。-
默认值:
dify
-
TENCENT_VECTOR_DB_TIMEOUT
: 腾讯云向量数据库超时时间(秒)。 -
默认值:
30
-
-
TENCENT_VECTOR_DB_USERNAME
: 腾讯云向量数据库用户名。-
默认值:
dify
-
TENCENT_VECTOR_DB_DATABASE
: 腾讯云向量数据库名称。 -
默认值:
dify
-
-
TENCENT_VECTOR_DB_SHARD
: 腾讯云向量数据库分片数。-
默认值:
1
-
TENCENT_VECTOR_DB_REPLICAS
: 腾讯云向量数据库副本数。 -
默认值:
2
-
-
TENCENT_VECTOR_DB_ENABLE_HYBRID_SEARCH
: 是否启用腾讯云向量数据库混合搜索。- 默认值:
false
- 默认值:
-
Elasticsearch 配置 (仅当
VECTOR_STORE=elasticsearch
时生效):-
ELASTICSEARCH_HOST
: Elasticsearch 主机。- 默认值:
0.0.0.0
(应为 Elasticsearch 服务名,例如elasticsearch
)
- 默认值:
-
ELASTICSEARCH_PORT
: Elasticsearch 端口。- 默认值:
9200
- 默认值:
-
ELASTICSEARCH_USERNAME
: Elasticsearch 用户名。- 默认值:
elastic
- 默认值:
-
ELASTICSEARCH_PASSWORD
: Elasticsearch 密码。- 默认值:
elastic
- 默认值:
-
KIBANA_PORT
: Kibana 端口 (仅作参考,Dify 不直接使用)。 -
默认值:
5601
-
-
百度智能云向量数据库 (Baidu VectorDB) 配置 (仅当
VECTOR_STORE=baidu
时生效):-
BAIDU_VECTOR_DB_ENDPOINT
: 百度向量数据库 Endpoint。- 默认值:
http://127.0.0.1:5287
- 默认值:
-
BAIDU_VECTOR_DB_CONNECTION_TIMEOUT_MS
: 百度向量数据库连接超时时间(毫秒)。- 默认值:
30000
- 默认值:
-
BAIDU_VECTOR_DB_ACCOUNT
: 百度向量数据库账户。- 默认值:
root
- 默认值:
-
BAIDU_VECTOR_DB_API_KEY
: 百度向量数据库 API Key。- 默认值:
dify
- 默认值:
-
BAIDU_VECTOR_DB_DATABASE
: 百度向量数据库名称。- 默认值:
dify
- 默认值:
-
BAIDU_VECTOR_DB_SHARD
: 百度向量数据库分片数。- 默认值:
1
- 默认值:
-
BAIDU_VECTOR_DB_REPLICAS
: 百度向量数据库副本数。 -
默认值:
3
-
-
VikingDB (火山引擎) 配置 (仅当
VECTOR_STORE=vikingdb
时生效):-
VIKINGDB_ACCESS_KEY
: VikingDB Access Key。 -
VIKINGDB_SECRET_KEY
: VikingDB Secret Key。 -
VIKINGDB_REGION
: VikingDB 地域 (例如cn-shanghai
)。 -
VIKINGDB_HOST
: VikingDB 主机 (例如api-vikingdb.xxx.volces.com
)。 -
VIKINGDB_SCHEMA
: VikingDB 协议 (http 或 https
)。- 默认值:
http
- 默认值:
-
VIKINGDB_CONNECTION_TIMEOUT
: VikingDB 连接超时时间(秒)。- 默认值:
30
- 默认值:
-
VIKINGDB_SOCKET_TIMEOUT
: VikingDB 套接字超时时间(秒)。 -
默认值:
30
-
-
Lindorm (阿里云) 配置 (仅当
VECTOR_STORE=lindorm
时生效):LINDORM_URL
: Lindorm 连接 URL。- 默认值:
http://lindorm:30070
-
LINDORM_USERNAME
: Lindorm 用户名。-
默认值:
lindorm
-
LINDORM_PASSWORD
: Lindorm 密码。 -
默认值:
lindorm
-
-
LINDORM_QUERY_TIMEOUT
: Lindorm 查询超时时间(秒)。- 默认值:
1
- 默认值:
-
OceanBase Vector 配置 (仅当
VECTOR_STORE=oceanbase
时生效):OCEANBASE_VECTOR_HOST
: OceanBase 主机。- 默认值:
oceanbase
-
OCEANBASE_VECTOR_PORT
: OceanBase 端口。-
默认值:
2881
-
OCEANBASE_VECTOR_USER
: OceanBase 用户名 (例如 root@test )。 -
默认值:
root@test
-
-
OCEANBASE_VECTOR_PASSWORD
: OceanBase 密码。-
默认值:
difyai123456
-
OCEANBASE_VECTOR_DATABASE
: OceanBase 数据库名称。 -
默认值:
test
-
-
OCEANBASE_CLUSTER_NAME
: OceanBase 集群名称。-
默认值:
difyai
-
OCEANBASE_MEMORY_LIMIT
: OceanBase 内存限制。 -
默认值:
6G
-
-
OCEANBASE_ENABLE_HYBRID_SEARCH
: 是否启用 OceanBase 混合搜索。- 默认值:
false
- 默认值:
-
OpenGauss 配置 (仅当
VECTOR_STORE=opengauss
时生效):OPENGAUSS_HOST
: OpenGauss 主机。- 默认值:
opengauss
-
OPENGAUSS_PORT
: OpenGauss 端口。-
默认值:
6600
-
OPENGAUSS_USER
: OpenGauss 用户名。 -
默认值:
postgres
-
-
OPENGAUSS_PASSWORD
: OpenGauss 密码。-
默认值:
Dify@123
-
OPENGAUSS_DATABASE
: OpenGauss 数据库名称。 -
默认值:
dify
-
-
OPENGAUSS_MIN_CONNECTION
: OpenGauss 最小连接数。-
默认值:
1
-
OPENGAUSS_MAX_CONNECTION
: OpenGauss 最大连接数。 -
默认值:
5
-
-
OPENGAUSS_ENABLE_PQ
: 是否启用 OpenGauss 的 Product Quantization (PQ) 加速。- 默认值:
false
- 默认值:
-
华为云搜索服务向量 (Huawei Cloud Search Service Vector) 配置 (仅当
VECTOR_STORE=huawei_cloud
时生效):HUAWEI_CLOUD_HOSTS
: 华为云搜索服务主机列表 (例如 https://127.0.0.1:9200 )。- 默认值:
https://127.0.0.1:9200
-
HUAWEI_CLOUD_USER
: 华为云搜索服务用户名。-
默认值:
admin
-
HUAWEI_CLOUD_PASSWORD
: 华为云搜索服务密码。- 默认值:
admin
- 默认值:
-
-
Upstash Vector 配置 (仅当
VECTOR_STORE=upstash
时生效):UPSTASH_VECTOR_URL
: Upstash Vector URL (例如https://xxx-vector.upstash.io
)。UPSTASH_VECTOR_TOKEN
: Upstash Vector Token。
-
TableStore (阿里云表格存储) Vector 配置 (仅当
VECTOR_STORE=tablestore
时生效):TABLESTORE_ENDPOINT
: TableStore Endpoint (例如https://instance-name.cn-hangzhou.ots.aliyuncs.com
)。TABLESTORE_INSTANCE_NAME
: TableStore 实例名称。TABLESTORE_ACCESS_KEY_ID
: TableStore AccessKey ID。TABLESTORE_ACCESS_KEY_SECRET
: TableStore AccessKey Secret。
11. 知识库配置 (Knowledge Configuration)
与知识库文件上传和处理相关的配置。
UPLOAD_FILE_SIZE_LIMIT
:- 说明: 上传文件大小限制 (MB)。
- 默认值:
15
UPLOAD_FILE_BATCH_LIMIT
:- 说明: 一次可以上传的最大文件数。
- 默认值:
5
ETL_TYPE
:- 说明: ETL (Extract, Transform, Load) 类型。
- 支持的值:
dify
: Dify 专有的文件提取方案。Unstructured
: Unstructured.io 文件提取方案。
- 默认值:
dify
UNSTRUCTURED_API_URL
:- 说明: Unstructured API 路径,当
ETL_TYPE
为Unstructured
时,或使用 Unstructured 作为 pptx 文件的文档提取器节点时需要配置。 - 示例:
http://unstructured:8000/general/v0/general
(如果使用 docker-compose 中的 unstructured 服务)
- 说明: Unstructured API 路径,当
UNSTRUCTURED_API_KEY
:- 说明: Unstructured API 密钥 (如果需要)。
SCARF_NO_ANALYTICS
:- 说明: 是否禁用 Unstructured 的 Scarf 分析。
- 默认值:
true
12. 模型配置 (Model Configuration)
与语言模型调用相关的配置。
PROMPT_GENERATION_MAX_TOKENS
:- 说明: 提示词生成允许的最大 token 数。此设置控制 LLM 在提示词生成工具中生成提示时可以使用的 token 上限。
- 默认值:
512
CODE_GENERATION_MAX_TOKENS
:- 说明: 代码生成允许的最大 token 数。此设置控制 LLM 在代码生成工具中生成代码时可以使用的 token 上限。
- 默认值:
1024
PLUGIN_BASED_TOKEN_COUNTING_ENABLED
:- 说明: 启用或禁用基于插件的 token 计数。如果禁用,token 计数将返回 0。这可以通过跳过 token 计数操作来提高性能。
- 默认值:
false
<a name=“multimodal-configuration”></a>
13. 多模态配置 (Multi-modal Configuration)
与多模态模型输入相关的配置。
MULTIMODAL_SEND_FORMAT
:- 说明: 多模态模型输入时发送图像/视频/音频/文档的格式。
- 默认值:
base64
- 可选值:
url
- 注意:
url
模式的调用延迟将低于base64
模式。通常建议使用兼容性更好的base64
模式。如果配置为url
,则需要将FILES_URL
配置为可外部访问的地址,以便多模态模型可以访问图像/视频/音频/文档。
UPLOAD_IMAGE_FILE_SIZE_LIMIT
:- 说明: 上传图片文件大小限制 (MB)。
- 默认值:
10
UPLOAD_VIDEO_FILE_SIZE_LIMIT
:- 说明: 上传视频文件大小限制 (MB)。
- 默认值:
100
UPLOAD_AUDIO_FILE_SIZE_LIMIT
:- 说明: 上传音频文件大小限制 (MB)。
- 默认值:
50
14. Sentry 配置 (应用监控与错误跟踪)
Sentry 用于应用程序监控和错误日志跟踪。
SENTRY_DSN
:- 说明: (已废弃或通用) Sentry DSN 地址。
API_SENTRY_DSN
:- 说明: API 服务 Sentry DSN 地址。默认为空,为空时,所有监控信息不报告给 Sentry。如果不设置,Sentry 错误报告将被禁用。
API_SENTRY_TRACES_SAMPLE_RATE
:- 说明: API 服务 Sentry 事件的报告比率,如果是
0.01
,则为 1%。 - 默认值:
1.0
- 说明: API 服务 Sentry 事件的报告比率,如果是
API_SENTRY_PROFILES_SAMPLE_RATE
:- 说明: API 服务 Sentry profiles 的报告比率,如果是
0.01
,则为 1%。 - 默认值:
1.0
- 说明: API 服务 Sentry profiles 的报告比率,如果是
WEB_SENTRY_DSN
:- 说明: Web 服务 Sentry DSN 地址。默认为空,为空时,所有监控信息不报告给 Sentry。如果不设置,Sentry 错误报告将被禁用。
15. Notion 集成配置
通过申请 Notion 集成可以获取这些变量:Notion My Integrations
NOTION_INTEGRATION_TYPE
:- 说明: 配置为 “public” (公开) 或 “internal” (内部)。由于 Notion 的 OAuth 重定向 URL 仅支持 HTTPS,如果在本地部署,请使用 Notion 的内部集成。
- 默认值:
public
NOTION_CLIENT_SECRET
:- 说明: Notion OAuth 客户端密钥 (用于 public 集成类型)。
NOTION_CLIENT_ID
:- 说明: Notion OAuth 客户端 ID (用于 public 集成类型)。
NOTION_INTERNAL_SECRET
:- 说明: Notion 内部集成密钥。如果
NOTION_INTEGRATION_TYPE
的值为 “internal”,则需要配置此变量。
- 说明: Notion 内部集成密钥。如果
16. 邮件相关配置 (Mail related configuration)
用于配置邮件发送服务,例如用户邀请、密码重置等。
-
MAIL_TYPE
:- 说明: 邮件服务类型。
- 支持的值:
resend
,smtp
- 默认值:
resend
-
MAIL_DEFAULT_SEND_FROM
:- 说明: 默认发件人邮箱地址 (如果未指定)。
-
Resend 配置 (仅当
MAIL_TYPE=resend
时生效):RESEND_API_URL
: Resend API URL。- 默认值:
https://api.resend.com
-
RESEND_API_KEY
: Resend API 密钥。- 配置:
your-resend-api-key
(替换为你的 Resend API Key)
- 配置:
-
SMTP 配置 (仅当
MAIL_TYPE=smtp
时生效):-
SMTP_SERVER
: SMTP 服务器地址。 -
SMTP_PORT
: SMTP 服务器端口 (例如 465 for SSL, 587 for TLS)。- 默认值:
465
- 默认值:
-
SMTP_USERNAME
: SMTP 用户名。 -
SMTP_PASSWORD
: SMTP 密码。 -
SMTP_USE_TLS
: 是否使用 TLS 加密。对于端口 587 通常为 true。- 默认值:
true
- 默认值:
-
SMTP_OPPORTUNISTIC_TLS
: 是否尝试机会性 TLS (STARTTLS)。- 默认值:
false
- 默认值:
-
17. 其他配置 (Others Configuration)
此部分包含各种未归类到特定模块但对 Dify 运行同样重要的配置项。
INDEXING_MAX_SEGMENTATION_TOKENS_LENGTH
:- 说明: 用于知识库索引的分段(segmentation)的最大 token 长度。
- 默认值:
4000
INVITE_EXPIRY_HOURS
:- 说明: 团队成员邀请链接的有效时间(单位:小时)。
- 默认值:
72
RESET_PASSWORD_TOKEN_EXPIRY_MINUTES
:- 说明: 重置密码操作的令牌有效时间(单位:分钟)。
- 默认值:
5
- 代码执行沙箱 (Code Execution Sandbox) 相关配置:
CODE_EXECUTION_ENDPOINT
:- 说明: 代码执行沙箱服务的 API 端点。
- 默认值:
http://sandbox:8194
CODE_EXECUTION_API_KEY
:- 说明: 调用代码执行沙箱服务所需的 API 密钥。
- 默认值:
dify-sandbox
(应与 Sandbox 服务环境变量中的SANDBOX_API_KEY
保持一致)
CODE_MAX_NUMBER
:- 说明: 代码执行中允许处理的最大数值。
- 默认值:
9223372036854775807
CODE_MIN_NUMBER
:- 说明: 代码执行中允许处理的最小数值。
- 默认值:
-9223372036854775808
CODE_MAX_DEPTH
:- 说明: 代码执行中数据结构(如JSON)允许的最大嵌套深度。
- 默认值:
5
CODE_MAX_PRECISION
:- 说明: 代码执行中数值允许的最大精度。
- 默认值:
20
CODE_MAX_STRING_LENGTH
:- 说明: 代码执行中允许处理的字符串最大长度。
- 默认值:
80000
CODE_MAX_STRING_ARRAY_LENGTH
:- 说明: 代码执行中允许的字符串数组成员最大数量。
- 默认值:
30
CODE_MAX_OBJECT_ARRAY_LENGTH
:- 说明: 代码执行中允许的对象数组成员最大数量。
- 默认值:
30
CODE_MAX_NUMBER_ARRAY_LENGTH
:- 说明: 代码执行中允许的数值数组成员最大数量。
- 默认值:
1000
CODE_EXECUTION_CONNECT_TIMEOUT
:- 说明: 调用代码执行沙箱服务的连接超时时间(秒)。
- 默认值:
10
CODE_EXECUTION_READ_TIMEOUT
:- 说明: 调用代码执行沙箱服务的读取超时时间(秒)。
- 默认值:
60
CODE_EXECUTION_WRITE_TIMEOUT
:- 说明: 调用代码执行沙箱服务的写入超时时间(秒)。
- 默认值:
10
TEMPLATE_TRANSFORM_MAX_LENGTH
:- 说明: Jinja2 模板转换允许的最大长度。
- 默认值:
80000
- 工作流运行时配置 (Workflow runtime configuration):
WORKFLOW_MAX_EXECUTION_STEPS
:- 说明: 单个工作流实例允许执行的最大步骤数。
- 默认值:
500
WORKFLOW_MAX_EXECUTION_TIME
:- 说明: 单个工作流实例允许的最大执行时间(秒)。
- 默认值:
1200
WORKFLOW_CALL_MAX_DEPTH
:- 说明: 工作流调用其他工作流(子工作流)的最大嵌套深度。
- 默认值:
5
MAX_VARIABLE_SIZE
:- 说明: 工作流中单个变量允许存储的最大数据大小(字节)。
- 默认值:
204800
(即 200KB)
WORKFLOW_PARALLEL_DEPTH_LIMIT
:- 说明: 工作流中并行分支(Parallel)节点允许的最大嵌套深度。
- 默认值:
3
WORKFLOW_FILE_UPLOAD_LIMIT
:- 说明: 工作流执行过程中允许上传的文件数量上限。
- 默认值:
10
- 工作流存储配置 (Workflow storage configuration):
WORKFLOW_NODE_EXECUTION_STORAGE
:- 说明: 工作流节点执行历史数据的存储方式。
- 选项:
rdbms
: 仅使用关系型数据库(例如 PostgreSQL)存储(默认)。hybrid
: 新数据保存到对象存储服务,读取时会同时查询对象存储和关系型数据库。
- 默认值:
rdbms
- 工作流中 HTTP 请求节点配置 (HTTP request node in workflow configuration):
HTTP_REQUEST_NODE_MAX_BINARY_SIZE
:- 说明: HTTP 请求节点下载的二进制文件内容的最大允许大小(字节)。
- 默认值:
10485760
(即 10MB)
HTTP_REQUEST_NODE_MAX_TEXT_SIZE
:- 说明: HTTP 请求节点下载的文本内容的最大允许大小(字节)。
- 默认值:
1048576
(即 1MB)
HTTP_REQUEST_NODE_SSL_VERIFY
:- 说明: HTTP 请求节点在发起 HTTPS 请求时是否验证 SSL/TLS 证书。
- 默认值:
True
- SSRF 代理服务器配置 (SSRF Proxy server Configuration):
SSRF_PROXY_HTTP_URL
:- 说明: 用于 HTTP 请求的 SSRF (Server-Side Request Forgery) 防护代理服务器 URL。
- 默认值:
http://ssrf_proxy:3128
SSRF_PROXY_HTTPS_URL
:- 说明: 用于 HTTPS 请求的 SSRF 防护代理服务器 URL。
- 默认值:
http://ssrf_proxy:3128
LOOP_NODE_MAX_COUNT
:- 说明: 工作流中循环(Loop)节点允许的最大迭代次数。
- 默认值:
100
MAX_TOOLS_NUM
:- 说明: Agent 应用中允许使用的最大工具数量。
- 默认值:
10
MAX_PARALLEL_LIMIT
:- 说明: 工作流中并行(Parallel)节点允许的最大分支数量。
- 默认值:
10
MAX_ITERATIONS_NUM
:- 说明: Agent 应用中“迭代”模式允许的最大迭代次数。
- 默认值:
5
18. Web 服务环境变量 (Environment Variables for web Service)
这些变量用于配置 Web 服务(通常指前端或与前端交互紧密的后端部分)的行为。
TEXT_GENERATION_TIMEOUT_MS
:- 说明: 文本生成型应用(如聊天机器人、 completions)等待模型响应的超时时间(毫秒)。
- 默认值:
60000
19. 数据库服务环境变量 (Environment Variables for db Service)
这些变量用于 Docker Compose 环境中配置 db
服务 (PostgreSQL)。它们通常引用在数据库配置部分已定义的同名变量。
PGUSER
:- 说明: PostgreSQL 数据库连接时使用的用户名。
- 默认值:
${DB_USERNAME}
(引用#Database Configuration
中的DB_USERNAME
)
POSTGRES_PASSWORD
:- 说明: PostgreSQL
postgres
用户的密码,用于数据库初始化。 - 默认值:
${DB_PASSWORD}
(引用#Database Configuration
中的DB_PASSWORD
)
- 说明: PostgreSQL
POSTGRES_DB
:- 说明: PostgreSQL 初始化时创建的默认数据库名称。
- 默认值:
${DB_DATABASE}
(引用#Database Configuration
中的DB_DATABASE
)
PGDATA
:- 说明: PostgreSQL 存储数据的内部路径。
- 默认值:
/var/lib/postgresql/data/pgdata
20. Sandbox 服务环境变量 (Environment Variables for sandbox Service)
这些变量用于 Docker Compose 环境中配置 sandbox
服务 (代码执行沙箱)。
SANDBOX_API_KEY
:- 说明:
sandbox
服务自身启动时设置的 API 密钥,用于验证来自 Dify API 服务的请求。 - 默认值:
dify-sandbox
(应与#Others Configuration
->CODE_EXECUTION_API_KEY
保持一致)
- 说明:
SANDBOX_GIN_MODE
:- 说明:
sandbox
服务内部使用的 Gin Web 框架的运行模式 (debug
,release
,test
)。 - 默认值:
release
- 说明:
SANDBOX_WORKER_TIMEOUT
:- 说明:
sandbox
服务中执行单个代码任务的工作进程的超时时间(秒)。 - 默认值:
15
- 说明:
SANDBOX_ENABLE_NETWORK
:- 说明: 是否允许在
sandbox
服务中执行的代码访问外部网络。 - 默认值:
true
- 说明: 是否允许在
SANDBOX_HTTP_PROXY
:- 说明:
sandbox
服务进行出站 HTTP 请求时使用的代理服务器,通常用于 SSRF 防护。 - 默认值:
http://ssrf_proxy:3128
(指向 SSRF Proxy 服务)
- 说明:
SANDBOX_HTTPS_PROXY
:- 说明:
sandbox
服务进行出站 HTTPS 请求时使用的代理服务器,通常用于 SSRF 防护。 - 默认值:
http://ssrf_proxy:3128
(指向 SSRF Proxy 服务)
- 说明:
SANDBOX_PORT
:- 说明:
sandbox
服务在容器内部监听的端口。 - 默认值:
8194
- 说明:
21. Weaviate 服务环境变量 (Environment Variables for weaviate Service)
这些变量仅在 VECTOR_STORE
设置为 weaviate
时,用于 Docker Compose 环境中配置 weaviate
服务。
WEAVIATE_PERSISTENCE_DATA_PATH
:- 说明: Weaviate 在容器内持久化数据的路径。
- 默认值:
/var/lib/weaviate
WEAVIATE_QUERY_DEFAULTS_LIMIT
:- 说明: Weaviate 执行查询时默认返回的最大结果数量。
- 默认值:
25
WEAVIATE_AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED
:- 说明: 是否允许匿名用户访问 Weaviate 服务。
- 默认值:
true
(Dify 通过 API Key 连接,这里可能指 Weaviate 服务本身的配置)
WEAVIATE_DEFAULT_VECTORIZER_MODULE
:- 说明: Weaviate 使用的默认向量化模块。Dify 通常在应用层面进行文本向量化,因此这里设置为
none
。 - 默认值:
none
- 说明: Weaviate 使用的默认向量化模块。Dify 通常在应用层面进行文本向量化,因此这里设置为
WEAVIATE_CLUSTER_HOSTNAME
:- 说明: Weaviate 集群节点的主机名,用于集群内部通信。
- 默认值:
node1
WEAVIATE_AUTHENTICATION_APIKEY_ENABLED
:- 说明: 是否启用 Weaviate 的 API 密钥认证机制。
- 默认值:
true
WEAVIATE_AUTHENTICATION_APIKEY_ALLOWED_KEYS
:- 说明: 允许访问 Weaviate 的 API 密钥列表 (逗号分隔)。此密钥应与 API 服务配置中的
WEAVIATE_API_KEY
匹配。 - 默认值:
WVF5YThaHlkYwhGUSmCRgsX3tD5ngdN8pkih
- 说明: 允许访问 Weaviate 的 API 密钥列表 (逗号分隔)。此密钥应与 API 服务配置中的
WEAVIATE_AUTHENTICATION_APIKEY_USERS
:- 说明: 上述 API 密钥对应的用户名列表 (逗号分隔)。
- 默认值:
hello@dify.ai
WEAVIATE_AUTHORIZATION_ADMINLIST_ENABLED
:- 说明: 是否启用 Weaviate 的管理员列表授权机制。
- 默认值:
true
WEAVIATE_AUTHORIZATION_ADMINLIST_USERS
:- 说明: Weaviate 管理员用户列表 (逗号分隔)。
- 默认值:
hello@dify.ai
22. Chroma 服务环境变量 (Environment Variables for Chroma)
这些变量仅在 VECTOR_STORE
设置为 chroma
时,用于 Docker Compose 环境中配置 chroma
服务。
CHROMA_SERVER_AUTHN_CREDENTIALS
:- 说明: Chroma 服务器用于 token 认证的凭据。此凭据应与 API 服务配置中的
CHROMA_AUTH_CREDENTIALS
对应(如果 Chroma 客户端使用此凭据)。 - 默认值:
difyai123456
(生产环境强烈建议修改为一个安全的随机字符串)
- 说明: Chroma 服务器用于 token 认证的凭据。此凭据应与 API 服务配置中的
CHROMA_SERVER_AUTHN_PROVIDER
:- 说明: Chroma 服务器使用的认证提供者类。
- 默认值:
chromadb.auth.token_authn.TokenAuthenticationServerProvider
CHROMA_IS_PERSISTENT
:- 说明: Chroma 服务器是否将数据持久化存储。设置为
TRUE
表示启用持久化。 - 默认值:
TRUE
- 说明: Chroma 服务器是否将数据持久化存储。设置为
23. Oracle 服务环境变量 (Environment Variables for Oracle Service)
这些变量仅在 VECTOR_STORE
设置为 oracle
时,并且您在 Docker Compose 中部署 Oracle 数据库服务时使用。
ORACLE_PWD
:- 说明: Oracle 数据库
SYS
,SYSTEM
和PDBADMIN
用户的密码,在数据库容器初始化时设置。 - 默认值:
Dify123456
(生产环境强烈建议修改为一个安全的强密码)
- 说明: Oracle 数据库
ORACLE_CHARACTERSET
:- 说明: Oracle 数据库创建时使用的字符集。
- 默认值:
AL32UTF8
24. Milvus 服务环境变量 (Environment Variables for milvus Service)
这些变量仅在 VECTOR_STORE
设置为 milvus
时,用于 Docker Compose 环境中配置 Milvus 及其依赖服务 (etcd, minio)。
- ETCD 相关配置 (Milvus 元数据存储):
ETCD_AUTO_COMPACTION_MODE
:- 说明: ETCD 自动压缩模式 (
revision
或periodic
)。 - 默认值:
revision
- 说明: ETCD 自动压缩模式 (
ETCD_AUTO_COMPACTION_RETENTION
:- 说明: 当
ETCD_AUTO_COMPACTION_MODE
为revision
时,保留的修订版本数量;为periodic
时,保留的时间(例如1h
)。 - 默认值:
1000
(指版本数量)
- 说明: 当
ETCD_QUOTA_BACKEND_BYTES
:- 说明: ETCD 后端存储的配额大小(字节)。
- 默认值:
4294967296
(4GB)
ETCD_SNAPSHOT_COUNT
:- 说明: ETCD 在多少次事务后自动创建快照。
- 默认值:
50000
- MinIO 相关配置 (Milvus 对象存储):
MINIO_ACCESS_KEY
:- 说明: MinIO 服务的 Access Key。
- 默认值:
minioadmin
(生产环境建议修改)
MINIO_SECRET_KEY
:- 说明: MinIO 服务的 Secret Key。
- 默认值:
minioadmin
(生产环境建议修改)
- Milvus 服务自身配置:
ETCD_ENDPOINTS
:- 说明: Milvus 连接的 ETCD 服务端点。
- 默认值:
etcd:2379
(指向 Docker Compose 中的etcd
服务)
MINIO_ADDRESS
:- 说明: Milvus 连接的 MinIO 服务地址。
- 默认值:
minio:9000
(指向 Docker Compose 中的minio
服务)
MILVUS_AUTHORIZATION_ENABLED
:- 说明: 是否在 Milvus 中启用用户认证和授权。
- 默认值:
true
25. pgvector / pgvecto-rs 服务环境变量
这些变量仅在 VECTOR_STORE
设置为 pgvector
或 pgvecto-rs
时,用于 Docker Compose 环境中配置 PostgreSQL 服务 (通常命名为 pgvector
或 pgvecto-rs
服务)。
PGVECTOR_PGUSER
:- 说明: PostgreSQL 数据库连接时使用的用户名 (通常是
postgres
)。 - 默认值:
postgres
- 说明: PostgreSQL 数据库连接时使用的用户名 (通常是
PGVECTOR_POSTGRES_PASSWORD
:- 说明: PostgreSQL
postgres
用户的密码。此密码应与 API 服务配置中对应的PGVECTOR_PASSWORD
或PGVECTO_RS_PASSWORD
保持一致。 - 默认值:
difyai123456
- 说明: PostgreSQL
PGVECTOR_POSTGRES_DB
:- 说明: PostgreSQL 中创建的数据库名称。此名称应与 API 服务配置中对应的
PGVECTOR_DATABASE
或PGVECTO_RS_DATABASE
保持一致。 - 默认值:
dify
- 说明: PostgreSQL 中创建的数据库名称。此名称应与 API 服务配置中对应的
PGVECTOR_PGDATA
:- 说明: PostgreSQL 在容器内持久化数据的路径。
- 默认值:
/var/lib/postgresql/data/pgdata
26. OpenSearch 服务环境变量
这些变量仅在 VECTOR_STORE
设置为 opensearch
时,用于 Docker Compose 环境中配置 opensearch
服务。
OPENSEARCH_DISCOVERY_TYPE
:- 说明: OpenSearch 节点发现类型。对于单节点部署,通常设置为
single-node
。 - 默认值:
single-node
- 说明: OpenSearch 节点发现类型。对于单节点部署,通常设置为
OPENSEARCH_BOOTSTRAP_MEMORY_LOCK
:- 说明: 是否在启动时锁定 OpenSearch 使用的内存,防止被交换到磁盘,提高性能。
- 默认值:
true
OPENSEARCH_JAVA_OPTS_MIN
:- 说明: OpenSearch JVM 最小堆内存大小。
- 默认值:
512m
OPENSEARCH_JAVA_OPTS_MAX
:- 说明: OpenSearch JVM 最大堆内存大小。
- 默认值:
1024m
(建议根据服务器内存调整,通常设置为物理内存的一半,但不超过 30GB 左右)
OPENSEARCH_INITIAL_ADMIN_PASSWORD
:- 说明: OpenSearch 初始化时设置的
admin
用户密码。此密码应与 API 服务配置中OPENSEARCH_PASSWORD
对应。 - 默认值:
Qazwsxedc!@#123
(生产环境强烈建议修改为一个安全的强密码)
- 说明: OpenSearch 初始化时设置的
OPENSEARCH_MEMLOCK_SOFT
:- 说明: OpenSearch 进程内存锁定的软限制 (ulimit -l)。
-1
表示无限制。 - 默认值:
-1
- 说明: OpenSearch 进程内存锁定的软限制 (ulimit -l)。
OPENSEARCH_MEMLOCK_HARD
:- 说明: OpenSearch 进程内存锁定的硬限制 (ulimit -l)。
-1
表示无限制。 - 默认值:
-1
- 说明: OpenSearch 进程内存锁定的硬限制 (ulimit -l)。
OPENSEARCH_NOFILE_SOFT
:- 说明: OpenSearch 进程可打开文件描述符数量的软限制 (ulimit -n)。
- 默认值:
65536
OPENSEARCH_NOFILE_HARD
:- 说明: OpenSearch 进程可打开文件描述符数量的硬限制 (ulimit -n)。
- 默认值:
65536
27. Nginx 反向代理环境变量
这些变量用于 Docker Compose 环境中配置 nginx
服务,作为 Dify 应用的反向代理。
NGINX_SERVER_NAME
:- 说明: Nginx 监听的服务器名(域名)。如果只有一个服务,可以设置为
_
匹配所有请求。 - 默认值:
_
- 说明: Nginx 监听的服务器名(域名)。如果只有一个服务,可以设置为
NGINX_HTTPS_ENABLED
:- 说明: 是否启用 HTTPS。如果为
true
,则需要配置 SSL 证书。 - 默认值:
false
- 说明: 是否启用 HTTPS。如果为
NGINX_PORT
:- 说明: Nginx 监听的 HTTP 端口。
- 默认值:
80
NGINX_SSL_PORT
:- 说明: Nginx 监听的 HTTPS 端口 (仅当
NGINX_HTTPS_ENABLED=true
时生效)。 - 默认值:
443
- 说明: Nginx 监听的 HTTPS 端口 (仅当
NGINX_SSL_CERT_FILENAME
:- 说明: SSL 证书文件名。如果启用 HTTPS,需将证书文件(如
your_domain.crt
)放置在 Nginx 配置的ssl
目录下(通常是./nginx/ssl
映射到容器的/etc/nginx/ssl
)。 - 默认值:
dify.crt
- 说明: SSL 证书文件名。如果启用 HTTPS,需将证书文件(如
NGINX_SSL_CERT_KEY_FILENAME
:- 说明: SSL 证书私钥文件名。如果启用 HTTPS,需将私钥文件(如
your_domain.key
)放置在 Nginx 配置的ssl
目录下。 - 默认值:
dify.key
- 说明: SSL 证书私钥文件名。如果启用 HTTPS,需将私钥文件(如
NGINX_SSL_PROTOCOLS
:- 说明: Nginx 支持的 SSL/TLS 协议版本。
- 默认值:
TLSv1.1 TLSv1.2 TLSv1.3
- Nginx 性能调优:
NGINX_WORKER_PROCESSES
:- 说明: Nginx worker 进程数量。
auto
表示根据 CPU 核心数自动设置。 - 默认值:
auto
- 说明: Nginx worker 进程数量。
NGINX_CLIENT_MAX_BODY_SIZE
:- 说明: Nginx 允许的客户端请求体最大大小,影响文件上传等。
- 默认值:
15M
(与知识库文件上传限制UPLOAD_FILE_SIZE_LIMIT
协调)
NGINX_KEEPALIVE_TIMEOUT
:- 说明: Nginx keep-alive 连接的超时时间(秒)。
- 默认值:
65
- 代理设置 (Proxy settings):
NGINX_PROXY_READ_TIMEOUT
:- 说明: Nginx 从后端代理服务器读取响应的超时时间。
- 默认值:
3600s
(以支持长轮询或 SSE)
NGINX_PROXY_SEND_TIMEOUT
:- 说明: Nginx 向后端代理服务器发送请求的超时时间。
- 默认值:
3600s
NGINX_ENABLE_CERTBOT_CHALLENGE
:- 说明: 是否允许 Nginx 处理
/.well-known/acme-challenge/
路径的请求,用于 Certbot (Let’s Encrypt) 进行 HTTP-01 验证。 - 默认值:
false
- 说明: 是否允许 Nginx 处理
28. Certbot 配置
这些变量用于 Docker Compose 环境中配置 certbot
服务,以自动获取和续签 Let’s Encrypt SSL 证书。仅当 NGINX_HTTPS_ENABLED=true
且希望使用 Let’s Encrypt 时需要配置。
CERTBOT_EMAIL
:- 说明: 用于注册 Let’s Encrypt 账户和接收重要通知的电子邮件地址 (必需)。
- 配置:
your_email@example.com
(替换为您的有效邮箱)
CERTBOT_DOMAIN
:- 说明: 您希望为其申请 SSL 证书的域名 (例如
dify.example.com
)。 - 配置:
your_domain.com
(替换为您的域名)
- 说明: 您希望为其申请 SSL 证书的域名 (例如
CERTBOT_OPTIONS
:- 说明: 传递给 Certbot 命令的额外选项。
- 示例:
--force-renewal
(强制续签),--dry-run
(测试运行),--test-cert
(使用 Let’s Encrypt 的测试证书),--debug
(输出调试信息)。 - 默认值: 空
29. SSRF 代理环境变量 (Environment Variables for SSRF Proxy)
这些变量用于 Docker Compose 环境中配置 ssrf_proxy
服务 (通常是 Squid 代理),用于防护 SSRF 攻击。
SSRF_HTTP_PORT
:- 说明:
ssrf_proxy
服务监听的 HTTP 端口。 - 默认值:
3128
- 说明:
SSRF_COREDUMP_DIR
:- 说明: Squid 代理 coredump 文件的存储目录。
- 默认值:
/var/spool/squid
SSRF_REVERSE_PROXY_PORT
:- 说明:
ssrf_proxy
反向代理的目标端口 (通常是 Sandbox 服务端口)。 - 默认值:
8194
- 说明:
SSRF_SANDBOX_HOST
:- 说明:
ssrf_proxy
反向代理的目标主机 (通常是 Sandbox 服务的主机名)。 - 默认值:
sandbox
- 说明:
SSRF_DEFAULT_TIME_OUT
:- 说明:
ssrf_proxy
代理请求的默认总超时时间(秒)。 - 默认值:
5
- 说明:
SSRF_DEFAULT_CONNECT_TIME_OUT
:- 说明:
ssrf_proxy
代理请求的默认连接超时时间(秒)。 - 默认值:
5
- 说明:
SSRF_DEFAULT_READ_TIME_OUT
:- 说明:
ssrf_proxy
代理请求的默认读取超时时间(秒)。 - 默认值:
5
- 说明:
SSRF_DEFAULT_WRITE_TIME_OUT
:- 说明:
ssrf_proxy
代理请求的默认写入超时时间(秒)。 - 默认值:
5
- 说明:
30. Docker Compose Profiles 配置
此变量用于在启动 Docker Compose 时动态选择要激活的服务组合 (profiles),主要用于根据选择的向量数据库启动对应的服务。
COMPOSE_PROFILES
:- 说明: 指定 Docker Compose 要激活的 profiles 名称,逗号分隔。根据
VECTOR_STORE
的值来决定启动哪些向量数据库服务。如果想额外启动unstructured
服务 (用于文件解析),可以在末尾添加,unstructured
。 - 默认值:
${VECTOR_STORE:-weaviate}
(如果VECTOR_STORE
环境变量未设置或为空,则默认为weaviate
)
- 说明: 指定 Docker Compose 要激活的 profiles 名称,逗号分隔。根据
31. Docker Compose 服务暴露主机端口配置
这些变量用于配置 Docker Compose 中某些服务(如 Nginx)映射到主机的端口号。
EXPOSE_NGINX_PORT
:- 说明: 将 Nginx 容器的 HTTP 端口映射到主机的哪个端口。
- 默认值:
80
EXPOSE_NGINX_SSL_PORT
:- 说明: 将 Nginx 容器的 HTTPS 端口映射到主机的哪个端口。
- 默认值:
443
32. 模型提供商与工具位置配置 (ModelProvider & Tool Position Configuration)
用于在 Dify 应用界面中自定义模型提供商和工具的显示顺序(置顶)、包含或排除。
- 工具 (Tool) 配置:
- 说明: 使用逗号分隔的工具 ID 列表,各项之间不要有空格。
POSITION_TOOL_PINS
:- 示例:
bing,google
(将 Bing 和 Google 搜索工具置顶显示)
- 示例:
POSITION_TOOL_INCLUDES
:- 示例:
stability-ai,wolframalpha
(仅显示 Stability AI 和 WolframAlpha 工具,其他工具将被隐藏)
- 示例:
POSITION_TOOL_EXCLUDES
:- 示例:
wikipedia
(从工具列表中排除 Wikipedia 工具)
- 示例:
- 模型提供商 (Model Provider) 配置:
- 说明: 使用逗号分隔的模型提供商 ID 列表,各项之间不要有空格。
POSITION_PROVIDER_PINS
:- 示例:
openai,openllm
(将 OpenAI 和 OpenLLM 模型提供商置顶显示)
- 示例:
POSITION_PROVIDER_INCLUDES
:- 示例:
azure_openai,anthropic
(仅显示 Azure OpenAI 和 Anthropic 模型提供商)
- 示例:
POSITION_PROVIDER_EXCLUDES
:- 示例:
huggingface_hub
(排除 Hugging Face Hub 模型提供商)
- 示例:
CSP_WHITELIST
:- 说明: 内容安全策略 (Content Security Policy) 白名单。用于指定允许加载资源的来源,以增强安全性。格式遵循 CSP 规范。
- 参考: MDN CSP
- 默认值: 空
CREATE_TIDB_SERVICE_JOB_ENABLED
:- 说明: 是否启用创建 TiDB 服务相关的一次性作业(通常用于 TiDB Cloud 等特定集成)。
- 默认值:
false
MAX_SUBMIT_COUNT
:- 说明: 用于工作流中并行节点执行的线程池中,允许同时提交的最大任务数量。
- 默认值:
100
TOP_K_MAX_VALUE
:- 说明: 在 RAG (Retrieval Augmented Generation) 应用中,知识库检索时允许设置的最大 Top K 值。
- 默认值:
10
33. 插件守护进程配置 (Plugin Daemon Configuration)
用于配置 Dify 插件守护进程 (plugin_daemon
服务) 的相关参数。
DB_PLUGIN_DATABASE
:- 说明: 插件守护进程使用的数据库名称 (通常是一个独立的 SQLite 文件或配置给特定数据库服务)。
- 默认值:
dify_plugin
EXPOSE_PLUGIN_DAEMON_PORT
:- 说明: 将插件守护进程容器的端口映射到主机的哪个端口。
- 默认值:
5002
PLUGIN_DAEMON_PORT
:- 说明: 插件守护进程在容器内部监听的端口。
- 默认值:
5002
PLUGIN_DAEMON_KEY
:- 说明: 插件守护进程用于验证来自 Dify API 服务请求的密钥。
- 默认值:
lYkiYYT6owG+71oLerGzA7GXCgOT++6ovaezWAjpCjf+Sjc3ZtU+qUEi
(生产环境建议修改)
PLUGIN_DAEMON_URL
:- 说明: Dify API 服务访问插件守护进程的 URL。
- 默认值:
http://plugin_daemon:5002
(指向 Docker Compose 中的plugin_daemon
服务)
PLUGIN_MAX_PACKAGE_SIZE
:- 说明: 允许上传的插件包 (通常是 .zip 文件) 的最大大小(字节)。
- 默认值:
52428800
(50MB)
PLUGIN_PPROF_ENABLED
:- 说明: 是否为插件守护进程启用 Go pprof (性能分析) 端点。
- 默认值:
false
- 插件调试配置 (Plugin Debugging):
PLUGIN_DEBUGGING_HOST
:- 说明: 插件调试服务在容器内监听的主机地址。
- 默认值:
0.0.0.0
PLUGIN_DEBUGGING_PORT
:- 说明: 插件调试服务在容器内监听的端口。
- 默认值:
5003
EXPOSE_PLUGIN_DEBUGGING_HOST
:- 说明: 将插件调试服务映射到主机的地址 (通常用于本地开发时从主机访问调试器)。
- 默认值:
localhost
EXPOSE_PLUGIN_DEBUGGING_PORT
:- 说明: 将插件调试服务容器的端口映射到主机的哪个端口。
- 默认值:
5003
PLUGIN_DIFY_INNER_API_KEY
:- 说明: 插件守护进程用于调用 Dify 核心 API (例如回调) 的内部 API 密钥。注意:如果此密钥更改,Dify API 服务中的相应配置(如果存在直接调用)或依赖此密钥的组件也需要更新。
- 默认值:
QaHbTe77CtuXmsfyhR7+vRjI/+XbV1AaFy691iy+kGDv2Jvy0/eAh8Y1
(生产环境建议修改)
PLUGIN_DIFY_INNER_API_URL
:- 说明: 插件守护进程回调 Dify 核心 API 时使用的 URL。
- 默认值:
http://api:5001
(指向 Docker Compose 中的api
服务)
ENDPOINT_URL_TEMPLATE
:- 说明: 插件创建的 webhook 端点的 URL 模板。
{hook_id}
会被替换为实际的钩子 ID。 - 默认值:
http://localhost/e/{hook_id}
(这里的localhost
通常指从外部访问 Dify 应用的域名或 IP)
- 说明: 插件创建的 webhook 端点的 URL 模板。
MARKETPLACE_ENABLED
:- 说明: 是否启用 Dify 插件市场功能。
- 默认值:
true
MARKETPLACE_API_URL
:- 说明: Dify 插件市场的 API 端点 URL。
- 默认值:
https://marketplace.dify.ai
FORCE_VERIFYING_SIGNATURE
:- 说明: 是否强制验证从市场下载或用户上传的插件的数字签名。
- 默认值:
true
PLUGIN_PYTHON_ENV_INIT_TIMEOUT
:- 说明: 插件 Python 虚拟环境初始化的超时时间(秒)。
- 默认值:
120
PLUGIN_MAX_EXECUTION_TIMEOUT
:- 说明: 单个插件函数执行的最大超时时间(秒)。
- 默认值:
600
PIP_MIRROR_URL
:- 说明: 插件安装 Python依赖包 (pip install) 时使用的镜像源 URL。留空则使用官方 PyPI 源。
- 示例:
https://pypi.tuna.tsinghua.edu.cn/simple
(清华大学镜像源) - 默认值: 空
- 插件存储配置 (Plugin Storage) (参考: dify-plugin-daemon .env.example)
PLUGIN_STORAGE_TYPE
:- 说明: 插件包和相关文件的存储类型。
- 支持的值:
local
(本地文件系统),aws_s3
,tencent_cos
,azure_blob
,aliyun_oss
- 默认值:
local
PLUGIN_STORAGE_LOCAL_ROOT
:- 说明: 当
PLUGIN_STORAGE_TYPE=local
时,本地存储的根路径。 - 默认值:
/app/storage
(容器内路径)
- 说明: 当
PLUGIN_WORKING_PATH
:- 说明: 插件运行时的工作目录。
- 默认值:
/app/storage/cwd
PLUGIN_INSTALLED_PATH
:- 说明: 已安装插件的存储路径。
- 默认值:
plugin
(相对于PLUGIN_STORAGE_LOCAL_ROOT
或 OSS 桶内路径)
PLUGIN_PACKAGE_CACHE_PATH
:- 说明: 插件包的缓存路径。
- 默认值:
plugin_packages
PLUGIN_MEDIA_CACHE_PATH
:- 说明: 插件使用的媒体文件(如图标)的缓存路径。
- 默认值:
assets
PLUGIN_STORAGE_OSS_BUCKET
:- 说明: 当使用对象存储 (S3, Tencent COS, Aliyun OSS) 时,指定的存储桶名称。
- S3 存储凭据 (Plugin S3 credentials):
PLUGIN_S3_USE_AWS_MANAGED_IAM
: 是否使用 AWS 托管的 IAM 角色进行认证。- 默认值:
false
- 默认值:
PLUGIN_S3_ENDPOINT
: S3 兼容服务的 Endpoint URL (例如 MinIO)。如果使用 AWS S3,则通常留空。PLUGIN_S3_USE_PATH_STYLE
: S3 是否使用路径样式访问 (通常用于 MinIO 等兼容服务)。- 默认值:
false
- 默认值:
PLUGIN_AWS_ACCESS_KEY
: AWS Access Key ID 或 S3 兼容服务的 Access Key。PLUGIN_AWS_SECRET_KEY
: AWS Secret Access Key 或 S3 兼容服务的 Secret Key。PLUGIN_AWS_REGION
: AWS 区域 (例如us-east-1
)。
- Azure Blob 存储 (Plugin oss azure blob):
PLUGIN_AZURE_BLOB_STORAGE_CONTAINER_NAME
: Azure Blob 存储容器名称。PLUGIN_AZURE_BLOB_STORAGE_CONNECTION_STRING
: Azure Blob 存储连接字符串。
- 腾讯云 COS (Plugin oss tencent cos):
PLUGIN_TENCENT_COS_SECRET_KEY
: 腾讯云 COS SecretKey。PLUGIN_TENCENT_COS_SECRET_ID
: 腾讯云 COS SecretId。PLUGIN_TENCENT_COS_REGION
: 腾讯云 COS 地域 (例如ap-guangzhou
)。
- 阿里云 OSS (Plugin oss aliyun oss):
PLUGIN_ALIYUN_OSS_REGION
: 阿里云 OSS 地域 (例如oss-cn-hangzhou
)。PLUGIN_ALIYUN_OSS_ENDPOINT
: 阿里云 OSS Endpoint (例如oss-cn-hangzhou.aliyuncs.com
)。PLUGIN_ALIYUN_OSS_ACCESS_KEY_ID
: 阿里云 OSS AccessKey ID。PLUGIN_ALIYUN_OSS_ACCESS_KEY_SECRET
: 阿里云 OSS AccessKey Secret。PLUGIN_ALIYUN_OSS_AUTH_VERSION
: 阿里云 OSS 签名版本 (例如 v4 )。- 默认值:
v4
- 默认值:
PLUGIN_ALIYUN_OSS_PATH
: 在 OSS 存储桶内的路径前缀。
34. OTLP Collector 配置 (OpenTelemetry Protocol)
用于配置 Dify 应用通过 OpenTelemetry Protocol (OTLP) 导出遥测数据 (traces, metrics, logs)。
ENABLE_OTEL
:- 说明: 是否启用 OpenTelemetry 数据导出功能。
- 默认值:
false
OTLP_BASE_ENDPOINT
:- 说明: OTLP Collector 的基础端点 URL。例如,如果 Collector 监听在
localhost:4318
,并且您希望通过 HTTP 发送 traces,那么 traces 的完整端点可能是http://localhost:4318/v1/traces
。这里通常配置 Collector 的根地址。 - 默认值:
http://localhost:4318
- 说明: OTLP Collector 的基础端点 URL。例如,如果 Collector 监听在
OTLP_API_KEY
:- 说明: 连接到 OTLP Collector 可能需要的 API 密钥或认证头。
- 默认值: 空
OTEL_EXPORTER_OTLP_PROTOCOL
:- 说明: 指定 OTLP 导出器使用的协议。
- 常见值:
grpc
,http/protobuf
,http/json
。 - 默认值: 空 (通常会根据端点自动推断或有库的默认值)
OTEL_EXPORTER_TYPE
:- 说明: OpenTelemetry 导出器的类型。
- 默认值:
otlp
OTEL_SAMPLING_RATE
:- 说明: Traces 的采样率。值为
1.0
表示全部采样,0.1
表示采样 10%。 - 默认值:
0.1
- 说明: Traces 的采样率。值为
OTEL_BATCH_EXPORT_SCHEDULE_DELAY
:- 说明: OpenTelemetry 批量导出器两次导出之间的调度延迟(毫秒)。
- 默认值:
5000
OTEL_MAX_QUEUE_SIZE
:- 说明: OpenTelemetry 导出器队列的最大大小。当队列满时,新的遥测数据可能会被丢弃。
- 默认值:
2048
OTEL_MAX_EXPORT_BATCH_SIZE
:- 说明: OpenTelemetry 导出器每次批量导出的最大遥测数据条目数。
- 默认值:
512
OTEL_METRIC_EXPORT_INTERVAL
:- 说明: OpenTelemetry 指标(Metrics)的导出间隔(毫秒)。
- 默认值:
60000
OTEL_BATCH_EXPORT_TIMEOUT
:- 说明: OpenTelemetry 批量导出操作的超时时间(毫秒)。
- 默认值:
10000
OTEL_METRIC_EXPORT_TIMEOUT
:- 说明: OpenTelemetry 指标导出操作的超时时间(毫秒)。
- 默认值:
30000
35. 防点击劫持配置 (Prevent Clickjacking)
ALLOW_EMBED
:- 说明: 是否允许 Dify 应用的页面被嵌入到其他网站的
<iframe>
,<frame>
,<object>
,<embed>
或<applet>
中。设置为false
会添加X-Frame-Options: DENY
HTTP 头部,有助于防止点击劫持攻击。 - 默认值:
false
- 说明: 是否允许 Dify 应用的页面被嵌入到其他网站的
这份 Dify 配置参考手册到此结束。希望它能帮助您更好地理解和配置您的 Dify 实例。如果您在配置过程中遇到任何问题,建议查阅 Dify 官方文档或向社区寻求帮助。