1. 完整配置文件
# ------------------------------
# API 服务和工作者的环境变量
# ------------------------------
# ------------------------------
# 通用变量
# ------------------------------
# 控制台 API 的后端 URL,
# 用于连接授权回调。
# 如果为空,则为同一域名。
# 示例: https://api.console.dify.ai
CONSOLE_API_URL=
# 控制台网页的前端 URL,
# 用于连接一些前端地址和进行 CORS 配置使用。
# 如果为空,则为同一域名。
# 示例: https://console.dify.ai
CONSOLE_WEB_URL=
# 服务 API 的 URL,
# 用于在前端显示服务 API 基础 URL。
# 如果为空,则为同一域名。
# 示例: https://api.dify.ai
SERVICE_API_URL=
# WebApp API 后端 URL,
# 用于声明前端 API 的后端 URL。
# 如果为空,则为同一域名。
# 示例: https://api.app.dify.ai
APP_API_URL=
# WebApp URL,
# 用于在前端显示 WebAPP API 基础 URL。
# 如果为空,则为同一域名。
# 示例: https://app.dify.ai
APP_WEB_URL=
# 文件预览或下载 URL 前缀。
# 用于在前端显示文件预览或下载 URL 或作为多模型输入;
# URL 是签名的并有过期时间。
FILES_URL=
# ------------------------------
# 服务器配置
# ------------------------------
# 应用程序的日志级别。
# 支持的值有 `DEBUG`、`INFO`、`WARNING`、`ERROR`、`CRITICAL`
LOG_LEVEL=INFO
# 调试模式,默认值为 false。
# 建议在本地开发时开启此配置,
# 以防止由猴子补丁引起的一些问题。
DEBUG=false
# Flask 调试模式,开启后可以在接口输出跟踪信息,
# 便于调试。
FLASK_DEBUG=false
# 用于安全签名会话 cookie 和加密数据库中的敏感信息的密钥。
# 你可以使用 `openssl rand -base64 42` 生成一个强密钥。
SECRET_KEY=sk-9f73s3ljTXVcMT3Blb3ljTqtsKiGHXVcMT3BlbkFJLK7U
# 初始化管理员用户的密码。
# 如果未设置,创建初始管理员账户时不会提示设置密码。
INIT_PASSWORD=
# 部署环境。
# 支持的值有 `PRODUCTION`、`TESTING`。默认值是 `PRODUCTION`。
# 测试环境。在前端页面会有明显的颜色标签,
# 表明此环境是测试环境。
DEPLOY_ENV=PRODUCTION
# 是否启用版本检查策略。
# 如果设置为空,https://updates.dify.ai 将不会被调用进行版本检查。
CHECK_UPDATE_URL=https://updates.dify.ai
# 用于更改 OpenAI 基地址,默认是 https://api.openai.com/v1。
# 当 OpenAI 在中国无法访问时,可以替换为国内镜像地址,
# 或者当本地模型提供 OpenAI 兼容 API 时,也可以替换。
OPENAI_API_BASE=https://api.openai.com/v1
# 启用时,将在应用启动前执行迁移,
# 并在迁移完成后启动应用。
MIGRATION_ENABLED=true
# 文件访问时间指定文件被访问的时间间隔(秒)。
# 默认值为 300 秒。
FILES_ACCESS_TIMEOUT=300
# 应用的最大活跃请求数,0 表示无限制,应该是非负整数。
APP_MAX_ACTIVE_REQUESTS=0
# ------------------------------
# 容器启动相关配置
# 仅在使用 docker 镜像或 docker-compose 启动时有效。
# ------------------------------
# API 服务绑定地址,默认: 0.0.0.0,即所有地址都可以访问。
DIFY_BIND_ADDRESS=0.0.0.0
# API 服务绑定端口号,默认 5001。
DIFY_PORT=5001
# API 服务器工作进程数,即 gevent 工作进程数。
# 公式: CPU 核心数 x 2 + 1
# 参考: https://docs.gunicorn.org/en/stable/design.html#how-many-workers
SERVER_WORKER_AMOUNT=
# 默认为 gevent。如果使用 Windows,可以切换为 sync 或 solo。
SERVER_WORKER_CLASS=
# 类似于 SERVER_WORKER_CLASS。默认是 gevent。
# 如果使用 Windows,可以切换为 sync 或 solo。
CELERY_WORKER_CLASS=
# 请求处理超时。默认值为 200,
# 建议设置为 360 以支持更长的 SSE 连接时间。
GUNICORN_TIMEOUT=360
# Celery 工作进程数。默认值为 1,可以根据需要设置。
CELERY_WORKER_AMOUNT=
# 标志,指示是否启用 Celery 工作进程的自动扩展。
#
# 当任务是 CPU 密集型时,自动扩展非常有用,可以根据工作负载动态
# 分配和释放工作进程。
#
# 启用自动扩展时,可以指定工作进程的最大和最小数量。
# 自动扩展算法将在指定范围内动态调整工作进程数量。
#
# 默认值为 false(即禁用自动扩展)。
#
# 示例:
# CELERY_AUTO_SCALE=true
CELERY_AUTO_SCALE=false
# 自动扩展时 Celery 工作进程的最大数量。
# 这是可选的,仅在启用自动扩展时使用。
# 默认未设置。
CELERY_MAX_WORKERS=
# 自动扩展时 Celery 工作进程的最小数量。
# 这是可选的,仅在启用自动扩展时使用。
# 默认未设置。
CELERY_MIN_WORKERS=
# API 工具配置
API_TOOL_DEFAULT_CONNECT_TIMEOUT=10
API_TOOL_DEFAULT_READ_TIMEOUT=60
# ------------------------------
# 数据库配置
# 数据库使用 PostgreSQL。请使用 public schema。
# 与下面的 'db' 服务中的配置一致。
# ------------------------------
DB_USERNAME=postgres
DB_PASSWORD=difyai123456
DB_HOST=db
DB_PORT=5432
DB_DATABASE=dify
# 数据库连接池的大小。
# 默认是 30 个连接,可以适当增加。
SQLALCHEMY_POOL_SIZE=30
# 数据库连接池回收时间,默认是 3600 秒。
SQLALCHEMY_POOL_RECYCLE=3600
# 是否打印 SQL,默认是 false。
SQLALCHEMY_ECHO=false
# 数据库的最大连接数
# 默认是 100
#
# 参考: https://www.postgresql.org/docs/current/runtime-config-connection.html#GUC-MAX-CONNECTIONS
POSTGRES_MAX_CONNECTIONS=100
# 设置 postgres 共享缓冲区使用的共享内存量。
# 默认是 128MB
# 推荐值: 可用内存的 25%
# 参考: https://www.postgresql.org/docs/current/runtime-config-resource.html#GUC-SHARED-BUFFERS
POSTGRES_SHARED_BUFFERS=128MB
# 设置每个数据库工作者用于工作空间的内存量。
# 默认是 4MB
#
# 参考: https://www.postgresql.org/docs/current/runtime-config-resource.html#GUC-WORK-MEM
POSTGRES_WORK_MEM=4MB
# 设置保留用于维护活动的内存量。
# 默认是 64MB
#
# 参考: https://www.postgresql.org/docs/current/runtime-config-resource.html#GUC-MAINTENANCE-WORK-MEM
POSTGRES_MAINTENANCE_WORK_MEM=64MB
# 设置规划器对有效缓存大小的假设。
# 默认是 4096MB
#
# 参考: https://www.postgresql.org/docs/current/runtime-config-query.html#GUC-EFFECTIVE-CACHE-SIZE
POSTGRES_EFFECTIVE_CACHE_SIZE=4096MB
# ------------------------------
# Redis 配置
# 此 Redis 配置用于缓存和对话期间的 pub/sub。
# ------------------------------
REDIS_HOST=redis
REDIS_PORT=6379
REDIS_USERNAME=
REDIS_PASSWORD=difyai123456
REDIS_USE_SSL=false
# ------------------------------
# Celery 配置
# ------------------------------
# 使用 redis 作为代理,并使用 redis db 1 作为 celery 代理。
# 格式如下: `redis://<redis_username>:<redis_password>@<redis_host>:<redis_port>/<redis_database>`
# 示例: redis://:difyai123456@redis:6379/1
CELERY_BROKER_URL=redis://:difyai123456@redis:6379/1
BROKER_USE_SSL=false
# ------------------------------
# CORS 配置
# 用于设置前端跨域访问策略。
# ------------------------------
# 指定 Web API 的跨域请求允许的来源,
# 例如 https://dify.app 或 * 表示所有来源。
WEB_API_CORS_ALLOW_ORIGINS=*
# 指定控制台 API 的跨域请求允许的来源,
# 例如 https://cloud.dify.ai 或 * 表示所有来源。
CONSOLE_CORS_ALLOW_ORIGINS=*
# ------------------------------
# 文件存储配置
# ------------------------------
# 用于存储用户文件的存储类型。
# 支持的值有 `local`、`s3`、`azure-blob`、`google-storage` 和 `tencent-cos`,
# 默认值: `local`
STORAGE_TYPE=local
# S3 配置
# 是否使用 AWS 管理的 IAM 角色来进行 S3 服务的身份验证。
# 如果设置为 false,必须提供访问密钥和秘密密钥。
S3_USE_AWS_MANAGED_IAM=false
# S3 服务的终端节点。
S3_ENDPOINT=
# S3 服务的区域。
S3_REGION=us-east-1
# 用于存储文件的 S3 桶名称。
S3_BUCKET_NAME=difyai
# 用于与 S3 服务进行身份验证的访问密钥。
S3_ACCESS_KEY=
# 用于与 S3 服务进行身份验证的秘密密钥。
S3_SECRET_KEY=
# Azure Blob 配置
# 用于存储文件的 Azure Blob 存储账户名称。
AZURE_BLOB_ACCOUNT_NAME=difyai
# 用于与 Azure Blob 存储账户进行身份验证的访问密钥。
AZURE_BLOB_ACCOUNT_KEY=difyai
# 用于存储文件的 Azure Blob 存储容器名称。
AZURE_BLOB_CONTAINER_NAME=difyai-container
# Azure Blob 存储账户的 URL。
AZURE_BLOB_ACCOUNT_URL=https://<your_account_name>.blob.core.windows.net
# Google Storage 配置
# 用于存储文件的 Google Storage 桶名称。
GOOGLE_STORAGE_BUCKET_NAME=your-bucket-name
# 用于与 Google Storage 服务进行身份验证的服务账户 JSON 密钥(Base64 编码)。
GOOGLE_STORAGE_SERVICE_ACCOUNT_JSON_BASE64=your-google-service-account-json-base64-string
# 阿里云 OSS 配置,
# 仅在 STORAGE_TYPE 为 `aliyun-oss` 时可用
ALIYUN_OSS_BUCKET_NAME=your-bucket-name
ALIYUN_OSS_ACCESS_KEY=your-access-key
ALIYUN_OSS_SECRET_KEY=your-secret-key
ALIYUN_OSS_ENDPOINT=https://oss-ap-southeast-1-internal.aliyuncs.com
ALIYUN_OSS_REGION=ap-southeast-1
ALIYUN_OSS_AUTH_VERSION=v4
# 腾讯 COS 配置
# 用于存储文件的腾讯 COS 桶名称。
TENCENT_COS_BUCKET_NAME=your-bucket-name
# 用于与腾讯 COS 服务进行身份验证的秘密密钥。
TENCENT_COS_SECRET_KEY=your-secret-key
# 用于与腾讯 COS 服务进行身份验证的秘密 ID。
TENCENT_COS_SECRET_ID=your-secret-id
# 腾讯 COS 服务的区域。
TENCENT_COS_REGION=your-region
# 腾讯 COS 服务的协议。
TENCENT_COS_SCHEME=your-scheme
# ------------------------------
# 向量数据库配置
# ------------------------------
# 使用的向量存储类型。
# 支持的值有 `weaviate`、`qdrant`、`milvus`、`myscale`、`relyt`、`pgvector`、`chroma`、`opensearch`、`tidb_vector`、`oracle`、`tencent`、`elasticsearch`。
VECTOR_STORE=weaviate
# Weaviate 端点 URL。仅在 VECTOR_STORE 为 `weaviate` 时可用。
WEAVIATE_ENDPOINT=http://weaviate:8080
# Weaviate API 密钥。
WEAVIATE_API_KEY=WVF5YThaHlkYwhGUSmCRgsX3tD5ngdN8pkih
# Qdrant 端点 URL。仅在 VECTOR_STORE 为 `qdrant` 时可用。
QDRANT_URL=http://qdrant:6333
# Qdrant API 密钥。
QDRANT_API_KEY=difyai123456
# Qdrant 客户端超时设置。
QDRANT_CLIENT_TIMEOUT=20
# Qdrant 客户端是否启用 gRPC 模式。
QDRANT_GRPC_ENABLED=false
# Qdrant 服务器 gRPC 模式端口。
QDRANT_GRPC_PORT=6334
# Milvus 配置,仅在 VECTOR_STORE 为 `milvus` 时可用。
# Milvus 主机。
MILVUS_HOST=127.0.0.1
# Milvus 端口。
MILVUS_PORT=19530
# Milvus 用户名。
MILVUS_USER=root
# Milvus 密码。
MILVUS_PASSWORD=Milvus
# Milvus TLS 开关。
MILVUS_SECURE=false
# MyScale 配置,仅在 VECTOR_STORE 为 `myscale` 时可用
# 为多语言支持,请设置 MYSCALE_FTS_PARAMS,参考:
# https://myscale.com/docs/en/text-search/#understanding-fts-index-parameters
MYSCALE_HOST=myscale
MYSCALE_PORT=8123
MYSCALE_USER=default
MYSCALE_PASSWORD=
MYSCALE_DATABASE=dify
MYSCALE_FTS_PARAMS=
# pgvector 配置,仅在 VECTOR_STORE 为 `pgvector-rs` 或 `pgvector` 时可用
PGVECTOR_HOST=pgvector
PGVECTOR_PORT=5432
PGVECTOR_USER=postgres
PGVECTOR_PASSWORD=difyai123456
PGVECTOR_DATABASE=dify
# TiDB 向量配置,仅在 VECTOR_STORE 为 `tidb` 时可用
TIDB_VECTOR_HOST=tidb
TIDB_VECTOR_PORT=4000
TIDB_VECTOR_USER=xxx.root
TIDB_VECTOR_PASSWORD=xxxxxx
TIDB_VECTOR_DATABASE=dify
# Chroma 配置,仅在 VECTOR_STORE 为 `chroma` 时可用
CHROMA_HOST=127.0.0.1
CHROMA_PORT=8000
CHROMA_TENANT=default_tenant
CHROMA_DATABASE=default_database
CHROMA_AUTH_PROVIDER=chromadb.auth.token_authn.TokenAuthClientProvider
CHROMA_AUTH_CREDENTIALS=xxxxxx
# Oracle 配置,仅在 VECTOR_STORE 为 `oracle` 时可用
ORACLE_HOST=oracle
ORACLE_PORT=1521
ORACLE_USER=dify
ORACLE_PASSWORD=dify
ORACLE_DATABASE=FREEPDB1
# relyt 配置,仅在 VECTOR_STORE 为 `relyt` 时可用
RELYT_HOST=db
RELYT_PORT=5432
RELYT_USER=postgres
RELYT_PASSWORD=difyai123456
RELYT_DATABASE=postgres
# open search 配置,仅在 VECTOR_STORE 为 `opensearch` 时可用
OPENSEARCH_HOST=opensearch
OPENSEARCH_PORT=9200
OPENSEARCH_USER=admin
OPENSEARCH_PASSWORD=admin
OPENSEARCH_SECURE=true
# 腾讯向量配置,仅在 VECTOR_STORE 为 `tencent` 时可用
TENCENT_VECTOR_DB_URL=http://127.0.0.1
TENCENT_VECTOR_DB_API_KEY=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
# ElasticSearch 配置,仅在 VECTOR_STORE 为 `elasticsearch` 时可用
ELASTICSEARCH_HOST=0.0.0.0
ELASTICSEARCH_PORT=9200
ELASTICSEARCH_USERNAME=elastic
ELASTICSEARCH_PASSWORD=elastic
# ------------------------------
# 知识配置
# ------------------------------
# 上传文件大小限制,默认 15M。
UPLOAD_FILE_SIZE_LIMIT=100
# 一次最多可以上传的文件数量,默认 5。
UPLOAD_FILE_BATCH_LIMIT=5
# ETL 类型,支持: `dify`、`Unstructured`
# `dify` Dify 的专有文件提取方案
# `Unstructured` Unstructured.io 文件提取方案
ETL_TYPE=dify
# Unstructured API 路径,当 ETL_TYPE 为 Unstructured 时需要配置。
# 例如: http://unstructured:8000/general/v0/general
UNSTRUCTURED_API_URL=
# ------------------------------
# 多模态配置
# ------------------------------
# 多模态模型输入时发送的图像格式,
# 默认是 base64,可选 url。
# url 模式的调用延迟将低于 base64 模式。
# 通常建议使用更兼容的 base64 模式。
# 如果配置为 url,则需要将 FILES_URL 配置为外部可访问的地址,以便多模态模型可以访问图像。
MULTIMODAL_SEND_IMAGE_FORMAT=base64
# 上传图像文件大小限制,默认 10M。
UPLOAD_IMAGE_FILE_SIZE_LIMIT=10
# ------------------------------
# Sentry 配置
# 用于应用监控和错误日志跟踪。
# ------------------------------
# API 服务的 Sentry DSN 地址,默认为空,
# 当为空时,所有监控信息不会上报到 Sentry。
# 如果未设置,Sentry 错误报告将被禁用。
API_SENTRY_DSN=
# API 服务的 Sentry 事件上报比例,如果是 0.01,则是 1%。
API_SENTRY_TRACES_SAMPLE_RATE=1.0
# API 服务的 Sentry 配置文件上报比例,如果是 0.01,则是 1%。
API_SENTRY_PROFILES_SAMPLE_RATE=1.0
# Web 服务的 Sentry DSN 地址,默认为空,
# 当为空时,所有监控信息不会上报到 Sentry。
# 如果未设置,Sentry 错误报告将被禁用。
WEB_SENTRY_DSN=
# ------------------------------
# Notion 集成配置
# 变量可以通过申请 Notion 集成获得: https://www.notion.so/my-integrations
# ------------------------------
# 配置为 "public" 或 "internal"。
# 由于 Notion 的 OAuth 重定向 URL 仅支持 HTTPS,
# 如果在本地部署,请使用 Notion 的内部集成。
NOTION_INTEGRATION_TYPE=public
# Notion OAuth 客户端密钥(用于公共集成类型)
NOTION_CLIENT_SECRET=
# Notion OAuth 客户端 ID(用于公共集成类型)
NOTION_CLIENT_ID=
# Notion 内部集成密钥。
# 如果 NOTION_INTEGRATION_TYPE 的值为 "internal",
# 需要配置此变量。
NOTION_INTERNAL_SECRET=
# ------------------------------
# 邮件相关配置
# ------------------------------
# 邮件类型,支持: resend, smtp
MAIL_TYPE=resend
# 默认的发送邮箱地址,如果未指定
MAIL_DEFAULT_SEND_FROM=
# Resend 邮件提供商的 API-Key,当 MAIL_TYPE 为 `resend` 时使用。
RESEND_API_KEY=your-resend-api-key
# SMTP 服务器配置,当 MAIL_TYPE 为 `smtp` 时使用
SMTP_SERVER=
SMTP_PORT=465
SMTP_USERNAME=
SMTP_PASSWORD=
SMTP_USE_TLS=true
SMTP_OPPORTUNISTIC_TLS=false
# ------------------------------
# 其他配置
# ------------------------------
# 索引分段的最大标记长度
INDEXING_MAX_SEGMENTATION_TOKENS_LENGTH=1000
# 成员邀请链接有效时间(小时),
# 默认: 72。
INVITE_EXPIRY_HOURS=72
# 重置密码令牌有效时间(小时),
# 默认: 24。
RESET_PASSWORD_TOKEN_EXPIRY_HOURS=24
# 沙箱服务端点。
CODE_EXECUTION_ENDPOINT=http://sandbox:8194
CODE_MAX_NUMBER=9223372036854775807
CODE_MIN_NUMBER=-9223372036854775808
CODE_MAX_DEPTH=5
CODE_MAX_PRECISION=20
CODE_MAX_STRING_LENGTH=80000
TEMPLATE_TRANSFORM_MAX_LENGTH=80000
CODE_MAX_STRING_ARRAY_LENGTH=30
CODE_MAX_OBJECT_ARRAY_LENGTH=30
CODE_MAX_NUMBER_ARRAY_LENGTH=1000
# SSRF 代理服务器 HTTP URL
SSRF_PROXY_HTTP_URL=http://ssrf_proxy:3128
# SSRF 代理服务器 HTTPS URL
SSRF_PROXY_HTTPS_URL=http://ssrf_proxy:3128
# ------------------------------
# db 服务的环境变量
# ------------------------------
PGUSER=${DB_USERNAME}
# 默认 postgres 用户的密码。
POSTGRES_PASSWORD=${DB_PASSWORD}
# 默认 postgres 数据库的名称。
POSTGRES_DB=${DB_DATABASE}
# postgres 数据目录
PGDATA=/var/lib/postgresql/data/pgdata
# ------------------------------
# sandbox 服务的环境变量
# ------------------------------
# sandbox 服务的 API 密钥
SANDBOX_API_KEY=dify-sandbox
# Gin 框架运行模式
SANDBOX_GIN_MODE=release
# 工作者超时(秒)
SANDBOX_WORKER_TIMEOUT=15
# 启用 sandbox 服务的网络
SANDBOX_ENABLE_NETWORK=true
# SSRF 保护的 HTTP 代理 URL
SANDBOX_HTTP_PROXY=http://ssrf_proxy:3128
# SSRF 保护的 HTTPS 代理 URL
SANDBOX_HTTPS_PROXY=http://ssrf_proxy:3128
# sandbox 服务运行的端口
SANDBOX_PORT=8194
# ------------------------------
# weaviate 服务的环境变量
# (仅在 VECTOR_STORE 为 weaviate 时使用)
# ------------------------------
WEAVIATE_PERSISTENCE_DATA_PATH='/var/lib/weaviate'
WEAVIATE_QUERY_DEFAULTS_LIMIT=25
WEAVIATE_AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED=true
WEAVIATE_DEFAULT_VECTORIZER_MODULE=none
WEAVIATE_CLUSTER_HOSTNAME=node1
WEAVIATE_AUTHENTICATION_APIKEY_ENABLED=true
WEAVIATE_AUTHENTICATION_APIKEY_ALLOWED_KEYS=WVF5YThaHlkYwhGUSmCRgsX3tD5ngdN8pkih
[email protected]
WEAVIATE_AUTHORIZATION_ADMINLIST_ENABLED=true
[email protected]
# ------------------------------
# Chroma 的环境变量
# (仅在 VECTOR_STORE 为 chroma 时使用)
# ------------------------------
# Chroma 服务器的认证凭证
CHROMA_SERVER_AUTHN_CREDENTIALS=difyai123456
# Chroma 服务器的认证提供者
CHROMA_SERVER_AUTHN_PROVIDER=chromadb.auth.token_authn.TokenAuthenticationServerProvider
# Chroma 服务器的持久化设置
CHROMA_IS_PERSISTENT=TRUE
# ------------------------------
# Oracle 服务的环境变量
# (仅在 VECTOR_STORE 为 Oracle 时使用)
# ------------------------------
ORACLE_PWD=Dify123456
ORACLE_CHARACTERSET=AL32UTF8
# ------------------------------
# milvus 服务的环境变量
# (仅在 VECTOR_STORE 为 milvus 时使用)
# ------------------------------
# 自动压缩模式的 ETCD 配置
ETCD_AUTO_COMPACTION_MODE=revision
# 自动压缩保留的修订次数
ETCD_AUTO_COMPACTION_RETENTION=1000
# 后端配额(字节)
ETCD_QUOTA_BACKEND_BYTES=4294967296
# 触发快照前的更改次数
ETCD_SNAPSHOT_COUNT=50000
# MinIO 访问密钥用于认证
MINIO_ACCESS_KEY=minioadmin
# MinIO 秘密密钥用于认证
MINIO_SECRET_KEY=minioadmin
# ETCD 服务端点
ETCD_ENDPOINTS=etcd:2379
# MinIO 服务地址
MINIO_ADDRESS=minio:9000
# 启用或禁用安全授权
MILVUS_AUTHORIZATION_ENABLED=true
# ------------------------------
# pgvector / pgvector-rs 服务的环境变量
# (仅在 VECTOR_STORE 为 pgvector / pgvector-rs 时使用)
# ------------------------------
PGVECTOR_PGUSER=postgres
# 默认 postgres 用户的密码。
PGVECTOR_POSTGRES_PASSWORD=difyai123456
# 默认 postgres 数据库的名称。
PGVECTOR_POSTGRES_DB=dify
# postgres 数据目录
PGVECTOR_PGDATA=/var/lib/postgresql/data/pgdata
# ------------------------------
# opensearch 的环境变量
# (仅在 VECTOR_STORE 为 opensearch 时使用)
# ------------------------------
OPENSEARCH_DISCOVERY_TYPE=single-node
OPENSEARCH_BOOTSTRAP_MEMORY_LOCK=true
OPENSEARCH_JAVA_OPTS_MIN=512m
OPENSEARCH_JAVA_OPTS_MAX=1024m
OPENSEARCH_INITIAL_ADMIN_PASSWORD=Qazwsxedc!@#123
OPENSEARCH_MEMLOCK_SOFT=-1
OPENSEARCH_MEMLOCK_HARD=-1
OPENSEARCH_NOFILE_SOFT=65536
OPENSEARCH_NOFILE_HARD=65536
# ------------------------------
# Nginx 反向代理的环境变量
# ------------------------------
NGINX_SERVER_NAME=_
NGINX_HTTPS_ENABLED=false
# HTTP 端口
NGINX_PORT=80
# 仅当 HTTPS_ENABLED 为 true 时应用 SSL 设置
NGINX_SSL_PORT=443
# 如果 HTTPS_ENABLED 为 true,需要将你自己的 SSL 证书/密钥添加到 `./nginx/ssl` 目录
# 并相应修改以下环境变量。
NGINX_SSL_CERT_FILENAME=dify.crt
NGINX_SSL_CERT_KEY_FILENAME=dify.key
NGINX_SSL_PROTOCOLS=TLSv1.1 TLSv1.2 TLSv1.3
# Nginx 性能调优
NGINX_WORKER_PROCESSES=auto
NGINX_CLIENT_MAX_BODY_SIZE=15M
NGINX_KEEPALIVE_TIMEOUT=65
# 代理设置
NGINX_PROXY_READ_TIMEOUT=3600s
NGINX_PROXY_SEND_TIMEOUT=3600s
# 设置为 true 以接受 /.well-known/acme-challenge/ 的请求
NGINX_ENABLE_CERTBOT_CHALLENGE=false
# ------------------------------
# Certbot 配置
# ------------------------------
# 邮箱地址(获取 Let's Encrypt 证书时必填)
[email protected]
# 域名
CERTBOT_DOMAIN=your_domain.com
# certbot 命令选项
# 例如: --force-renewal --dry-run --test-cert --debug
CERTBOT_OPTIONS=
# ------------------------------
# SSRF 代理的环境变量
# ------------------------------
SSRF_HTTP_PORT=3128
SSRF_COREDUMP_DIR=/var/spool/squid
SSRF_REVERSE_PROXY_PORT=8194
SSRF_SANDBOX_HOST=sandbox
# ------------------------------
# 用于在启动时指定向量数据库类型的 Docker 环境变量
# (根据向量数据库类型,相应的 Docker
# compose 配置文件将被使用)
# 如果你想使用 unstructured,在末尾添加 ',unstructured'
# ------------------------------
COMPOSE_PROFILES=${VECTOR_STORE:-weaviate}
# ------------------------------
# Docker Compose 服务暴露主机端口配置
# ------------------------------
EXPOSE_NGINX_PORT=18102
EXPOSE_NGINX_SSL_PORT=443
# ----------------------------------------------------------------------------
# ModelProvider & 工具位置配置
# 用于指定应用中可使用的模型提供者和工具。
# ----------------------------------------------------------------------------
# Pin、include 和 exclude 工具
# 使用逗号分隔的值,中间没有空格。
# 示例: POSITION_TOOL_PINS=bing,google
POSITION_TOOL_PINS=
POSITION_TOOL_INCLUDES=
POSITION_TOOL_EXCLUDES=
# Pin、include 和 exclude 模型提供者
# 使用逗号分隔的值,中间没有空格。
# 示例: POSITION_PROVIDER_PINS=openai,openllm
POSITION_PROVIDER_PINS=
POSITION_PROVIDER_INCLUDES=
POSITION_PROVIDER_EXCLUDES=
2. 配置说明
通用变量(Common Variables)
作用
这些变量用于配置应用程序的基本 URL 和服务地址,确保不同组件之间能够正确通信。
关键变量
CONSOLE_API_URL
:控制台 API 的后端 URL,用于授权回调。CONSOLE_WEB_URL
:控制台网页的前端 URL,用于前端地址拼接和 CORS 配置。SERVICE_API_URL
:服务 API 的基础 URL,用于前端显示。APP_API_URL
和APP_WEB_URL
:WebApp API 和 WebApp 的 URL。FILES_URL
:文件预览或下载的 URL 前缀,支持签名和过期时间。
服务器配置(Server Configuration)
作用
配置应用程序的运行模式、日志级别、安全密钥等。
关键变量
LOG_LEVEL
:日志级别(如DEBUG
,INFO
等)。DEBUG
和FLASK_DEBUG
:调试模式开关。SECRET_KEY
:用于安全签名会话 cookie 和加密数据库敏感信息的密钥。INIT_PASSWORD
:初始化管理员用户的密码。DEPLOY_ENV
:部署环境(如PRODUCTION
,TESTING
)。CHECK_UPDATE_URL
:版本检查的 URL。OPENAI_API_BASE
:OpenAI API 的基础地址。FILES_ACCESS_TIMEOUT
:文件访问的超时时间。APP_MAX_ACTIVE_REQUESTS
:应用的最大活跃请求数。
容器启动相关配置(Container Startup Related Configuration)
作用
配置 Docker 容器的绑定地址、端口、工作进程数量等,优化容器性能。
关键变量
DIFY_BIND_ADDRESS
和DIFY_PORT
:API 服务的绑定地址和端口。SERVER_WORKER_AMOUNT
和SERVER_WORKER_CLASS
:Gunicorn 工作进程数量及类型。CELERY_WORKER_CLASS
和CELERY_WORKER_AMOUNT
:Celery 工作进程类型及数量。GUNICORN_TIMEOUT
:请求处理的超时时间。CELERY_AUTO_SCALE
、CELERY_MAX_WORKERS
和CELERY_MIN_WORKERS
:Celery 工作进程的自动扩展配置。API_TOOL_DEFAULT_CONNECT_TIMEOUT
和API_TOOL_DEFAULT_READ_TIMEOUT
:API 工具的默认连接和读取超时。
数据库配置(Database Configuration)
作用
配置 PostgreSQL 数据库的连接信息和性能参数。
关键变量
DB_USERNAME
,DB_PASSWORD
,DB_HOST
,DB_PORT
,DB_DATABASE
:数据库的连接凭证和地址。SQLALCHEMY_POOL_SIZE
和SQLALCHEMY_POOL_RECYCLE
:数据库连接池的大小和回收时间。POSTGRES_MAX_CONNECTIONS
:数据库的最大连接数。POSTGRES_SHARED_BUFFERS
,POSTGRES_WORK_MEM
,POSTGRES_MAINTENANCE_WORK_MEM
,POSTGRES_EFFECTIVE_CACHE_SIZE
:PostgreSQL 的性能优化参数。
Redis 配置(Redis Configuration)
作用
配置 Redis 缓存和消息队列的连接信息。
关键变量
REDIS_HOST
,REDIS_PORT
,REDIS_PASSWORD
:Redis 的连接地址和密码。REDIS_USE_SSL
:是否使用 SSL 连接。- 其他 Sentinel 配置变量(如使用 Sentinel 时需要设置)。
Celery 配置(Celery Configuration)
作用
配置 Celery 任务队列的代理和相关参数。
关键变量
CELERY_BROKER_URL
:Celery 的代理 URL(通常使用 Redis)。BROKER_USE_SSL
:是否使用 SSL 连接代理。- Sentinel 相关配置(如果使用 Sentinel)。
CORS 配置(CORS Configuration)
作用
配置跨域资源共享(CORS)策略,允许前端应用访问 API。
关键变量
WEB_API_CORS_ALLOW_ORIGINS
:Web API 允许的跨域来源。CONSOLE_CORS_ALLOW_ORIGINS
:控制台 API 允许的跨域来源。
文件存储配置(File Storage Configuration)
作用
配置用户文件的存储方式和相关参数,支持多种存储后端(如本地、S3、Azure Blob 等)。
关键变量
STORAGE_TYPE
:选择存储类型(如local
,s3
,azure-blob
等)。- 各种存储后端的具体配置变量(如
S3_BUCKET_NAME
,AZURE_BLOB_ACCOUNT_NAME
等)。
向量数据库配置(Vector Database Configuration)
作用
配置用于存储向量数据的数据库,支持多种类型(如 Weaviate, Qdrant, Milvus 等)。
关键变量
VECTOR_STORE
:选择向量存储类型(如weaviate
,qdrant
等)。- 各种向量数据库的具体配置变量(如
WEAVIATE_ENDPOINT
,QDRANT_URL
等)。
知识配置(Knowledge Configuration)
作用
配置知识库相关的参数,如文件上传限制和 ETL 类型。
关键变量
UPLOAD_FILE_SIZE_LIMIT
:上传文件的大小限制。UPLOAD_FILE_BATCH_LIMIT
:一次上传文件的最大数量。ETL_TYPE
:ETL 类型(如dify
,Unstructured
)。UNSTRUCTURED_API_URL
:当ETL_TYPE
为Unstructured
时,需要配置的 API 路径。
多模态配置(Multi-modal Configuration)
作用
配置多模态模型的输入格式和上传图像的限制。
关键变量
MULTIMODAL_SEND_IMAGE_FORMAT
:多模态模型输入时发送的图像格式(base64
或url
)。UPLOAD_IMAGE_FILE_SIZE_LIMIT
:上传图像文件的大小限制。
Sentry 配置(Sentry Configuration)
作用
配置 Sentry 用于应用监控和错误日志跟踪。
关键变量
API_SENTRY_DSN
和WEB_SENTRY_DSN
:Sentry 的 DSN 地址。API_SENTRY_TRACES_SAMPLE_RATE
和API_SENTRY_PROFILES_SAMPLE_RATE
:Sentry 事件和配置文件的采样率。
Notion 集成配置(Notion Integration Configuration)
作用
配置与 Notion 的集成,支持 OAuth 授权。
关键变量
NOTION_INTEGRATION_TYPE
:集成类型(public
或internal
)。NOTION_CLIENT_SECRET
,NOTION_CLIENT_ID
:公共集成类型的 OAuth 凭证。NOTION_INTERNAL_SECRET
:内部集成类型的秘密。
邮件相关配置(Mail Configuration)
作用
配置应用程序的邮件发送方式和相关参数。
关键变量
MAIL_TYPE
:邮件类型(resend
或smtp
)。MAIL_DEFAULT_SEND_FROM
:默认发送邮件的地址。RESEND_API_KEY
:Resend 邮件提供商的 API 密钥。- SMTP 配置变量(如
SMTP_SERVER
,SMTP_PORT
等)。
其他配置(Others Configuration)
作用
配置应用程序的其他功能,如分段标记长度限制、邀请链接有效时间等。
关键变量
INDEXING_MAX_SEGMENTATION_TOKENS_LENGTH
:索引分段的最大标记长度。INVITE_EXPIRY_HOURS
:成员邀请链接的有效时间。RESET_PASSWORD_TOKEN_EXPIRY_HOURS
:重置密码令牌的有效时间。CODE_EXECUTION_ENDPOINT
等代码执行相关参数。SSRF_PROXY_HTTP_URL
和SSRF_PROXY_HTTPS_URL
:SSRF 代理服务器的 URL。