当前位置: 首页 > news >正文

【配置指南】Dify部署超全配置参考手册

本手册旨在为 Dify 使用Docker部署的用户提供 .env配置文件中各项参数的详细中文说明和配置指导。请根据您的实际部署需求,仔细阅读并修改这些配置。

重要提示:

  • 修改任何配置后,通常需要重启 Dify 服务才能生效。
  • 对于涉及密钥 (Secret Key, API Key) 的配置,请务必使用强随机字符串,并妥善保管,避免泄露。
  • 在生产环境中,建议详细评估各项参数对性能和安全的影响。
  • 本文档基于您提供的配置文件版本,未来 Dify 版本可能会新增或修改配置项。

目录

  1. 通用变量 (Common Variables)
  2. 服务配置 (Server Configuration)
  3. 容器启动相关配置 (Container Startup Related Configuration)
  4. 数据源配置 (Datasource Configuration)
  5. 数据库配置 (Database Configuration)
  6. Redis 配置
  7. Celery 配置
  8. CORS 配置 (Cross-Origin Resource Sharing)
  9. 文件存储配置 (File Storage Configuration)
  10. 向量数据库配置 (Vector Database Configuration)
  11. 知识库配置 (Knowledge Configuration)
  12. 模型配置 (Model Configuration)
  13. 多模态配置 (Multi-modal Configuration)
  14. Sentry 配置 (应用监控与错误跟踪)
  15. Notion 集成配置
  16. 邮件相关配置 (Mail related configuration)
  17. 其他配置 (Others Configuration)
  18. Web 服务环境变量 (Environment Variables for web Service)
  19. 数据库服务环境变量 (Environment Variables for db Service)
  20. Sandbox 服务环境变量 (Environment Variables for sandbox Service)
  21. Weaviate 服务环境变量 (Environment Variables for weaviate Service)
  22. Chroma 服务环境变量 (Environment Variables for Chroma)
  23. Oracle 服务环境变量 (Environment Variables for Oracle Service)
  24. Milvus 服务环境变量 (Environment Variables for milvus Service)
  25. pgvector / pgvecto-rs 服务环境变量
  26. OpenSearch 服务环境变量
  27. Nginx 反向代理环境变量
  28. Certbot 配置
  29. SSRF 代理环境变量 (Environment Variables for SSRF Proxy)
  30. Docker Compose Profiles 配置
  31. Docker Compose 服务暴露主机端口配置
  32. 模型提供商与工具位置配置 (ModelProvider & Tool Position Configuration)
  33. 插件守护进程配置 (Plugin Daemon Configuration)
  34. OTLP Collector 配置 (OpenTelemetry Protocol)
  35. 防点击劫持配置 (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>:5001http://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
  • 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 上使用,可以切换到 syncsolo
  • SERVER_WORKER_CONNECTIONS:
    • 说明: 每个工作进程的默认连接数。
    • 默认值: 10
  • CELERY_WORKER_CLASS:
    • 说明: Celery 工作进程类型,与 SERVER_WORKER_CLASS 类似。如果在 Windows 上使用,可以切换到 syncsolo
  • GUNICORN_TIMEOUT:
    • 说明: 请求处理超时时间(秒)。
    • 默认值: 200。建议设置为 360 以支持更长的 SSE (Server-Sent Events) 连接时间。
    • 配置值: 360
  • CELERY_WORKER_AMOUNT:
    • 说明: Celery 工作进程数量。默认为 1,可以根据需要设置。
  • 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.yamldb 服务的配置一致。

  • 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_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)
  • 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: 访问协议 (httphttps)。
  • 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_TYPEUnstructured 时,或使用 Unstructured 作为 pptx 文件的文档提取器节点时需要配置。
    • 示例: http://unstructured:8000/general/v0/general (如果使用 docker-compose 中的 unstructured 服务)
  • 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_PROFILES_SAMPLE_RATE:
    • 说明: API 服务 Sentry profiles 的报告比率,如果是 0.01,则为 1%。
    • 默认值: 1.0
  • 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”,则需要配置此变量。

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)
  • 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_CLUSTER_HOSTNAME:
    • 说明: Weaviate 集群节点的主机名,用于集群内部通信。
    • 默认值: node1
  • WEAVIATE_AUTHENTICATION_APIKEY_ENABLED:
    • 说明: 是否启用 Weaviate 的 API 密钥认证机制。
    • 默认值: true
  • WEAVIATE_AUTHENTICATION_APIKEY_ALLOWED_KEYS:
    • 说明: 允许访问 Weaviate 的 API 密钥列表 (逗号分隔)。此密钥应与 API 服务配置中的 WEAVIATE_API_KEY 匹配。
    • 默认值: WVF5YThaHlkYwhGUSmCRgsX3tD5ngdN8pkih
  • 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_SERVER_AUTHN_PROVIDER:
    • 说明: Chroma 服务器使用的认证提供者类。
    • 默认值: chromadb.auth.token_authn.TokenAuthenticationServerProvider
  • CHROMA_IS_PERSISTENT:
    • 说明: Chroma 服务器是否将数据持久化存储。设置为 TRUE 表示启用持久化。
    • 默认值: TRUE

23. Oracle 服务环境变量 (Environment Variables for Oracle Service)

这些变量仅在 VECTOR_STORE 设置为 oracle 时,并且您在 Docker Compose 中部署 Oracle 数据库服务时使用。

  • ORACLE_PWD:
    • 说明: Oracle 数据库 SYS, SYSTEMPDBADMIN 用户的密码,在数据库容器初始化时设置。
    • 默认值: Dify123456 (生产环境强烈建议修改为一个安全的强密码)
  • 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 自动压缩模式 (revisionperiodic)。
      • 默认值: revision
    • ETCD_AUTO_COMPACTION_RETENTION:
      • 说明: 当 ETCD_AUTO_COMPACTION_MODErevision 时,保留的修订版本数量;为 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 设置为 pgvectorpgvecto-rs 时,用于 Docker Compose 环境中配置 PostgreSQL 服务 (通常命名为 pgvectorpgvecto-rs 服务)。

  • PGVECTOR_PGUSER:
    • 说明: PostgreSQL 数据库连接时使用的用户名 (通常是 postgres)。
    • 默认值: postgres
  • PGVECTOR_POSTGRES_PASSWORD:
    • 说明: PostgreSQL postgres 用户的密码。此密码应与 API 服务配置中对应的 PGVECTOR_PASSWORDPGVECTO_RS_PASSWORD 保持一致。
    • 默认值: difyai123456
  • PGVECTOR_POSTGRES_DB:
    • 说明: PostgreSQL 中创建的数据库名称。此名称应与 API 服务配置中对应的 PGVECTOR_DATABASEPGVECTO_RS_DATABASE 保持一致。
    • 默认值: dify
  • 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_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_MEMLOCK_SOFT:
    • 说明: OpenSearch 进程内存锁定的软限制 (ulimit -l)。-1 表示无限制。
    • 默认值: -1
  • OPENSEARCH_MEMLOCK_HARD:
    • 说明: OpenSearch 进程内存锁定的硬限制 (ulimit -l)。-1 表示无限制。
    • 默认值: -1
  • 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_HTTPS_ENABLED:
    • 说明: 是否启用 HTTPS。如果为 true,则需要配置 SSL 证书。
    • 默认值: false
  • NGINX_PORT:
    • 说明: Nginx 监听的 HTTP 端口。
    • 默认值: 80
  • NGINX_SSL_PORT:
    • 说明: Nginx 监听的 HTTPS 端口 (仅当 NGINX_HTTPS_ENABLED=true 时生效)。
    • 默认值: 443
  • NGINX_SSL_CERT_FILENAME:
    • 说明: SSL 证书文件名。如果启用 HTTPS,需将证书文件(如 your_domain.crt)放置在 Nginx 配置的 ssl 目录下(通常是 ./nginx/ssl 映射到容器的 /etc/nginx/ssl)。
    • 默认值: dify.crt
  • NGINX_SSL_CERT_KEY_FILENAME:
    • 说明: SSL 证书私钥文件名。如果启用 HTTPS,需将私钥文件(如 your_domain.key)放置在 Nginx 配置的 ssl 目录下。
    • 默认值: dify.key
  • NGINX_SSL_PROTOCOLS:
    • 说明: Nginx 支持的 SSL/TLS 协议版本。
    • 默认值: TLSv1.1 TLSv1.2 TLSv1.3
  • Nginx 性能调优:
    • NGINX_WORKER_PROCESSES:
      • 说明: Nginx worker 进程数量。auto 表示根据 CPU 核心数自动设置。
      • 默认值: auto
    • 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

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 (替换为您的域名)
  • 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)

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)
  • 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_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
  • 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 官方文档或向社区寻求帮助。

相关文章:

  • Python 训练营打卡 Day 32-官方文档的阅读
  • 英语写作中“专注于”focus on、concentrate的用法
  • 考研系列—操作系统:第四章、文件管理(part.2)
  • 哈希:闭散列的开放定址法
  • 鸿蒙OSUniApp集成WebGL:打造跨平台3D视觉盛宴#三方框架 #Uniapp
  • 【 SpringCloud | 微服务 网关 】
  • CMake指令:add_executable
  • 2024年数维杯国际大学生数学建模挑战赛A题飞行器激光测速中的频率估计问题解题全过程论文及程序
  • 79. Word Search
  • 西瓜书第十一章——降维与度量学习
  • π0论文阅读
  • SpringAI(GA):RAG下的ETL快速上手
  • LeetCode - 100. 相同的树
  • 力扣上C语言编程题
  • Golang——3、流程控制语句
  • 2024年12月 C/C++(三级)真题解析#中国电子学会#全国青少年软件编程等级考试
  • 嵌入式硬件篇---蜂鸣器
  • Java基础 Day27
  • DAY 18 推断聚类后簇的类型
  • svg实现常见伪3D效果
  • 网站开发 总结报告/平台推广策略都有哪些
  • 做网站域名不备案会怎么样/免费域名邮箱
  • 网站如何做搜狗搜索引擎/海南百度竞价排名
  • 怎么做视频还有网站/什么是互联网销售
  • 做网站需要什么部门批准/一个网站可以优化多少关键词
  • 公司简介模板范文样本/天津优化加盟