本文档涵盖了 Dify 的全面环境配置系统,包括 Docker 部署设置、特定服务配置和运行时环境管理。环境配置是控制 Dify 在不同部署场景下行为的主要机制。
有关 Docker 部署的详细信息,请参阅 Docker 部署。有关开发环境设置,请参阅 开发环境设置。
Dify 使用分层配置系统,结合环境变量、配置文件和运行时设置来管理平台在其分布式架构中的行为。
来源:docker/.env.example1-757 api/.env.example1-501 api/configs/app_config.py1-50 api/app_factory.py12-26
该平台由三个主要服务组成,每个服务都有不同的配置要求,通过 docker-compose.yaml 共享环境模式进行管理。
来源:docker/docker-compose.yaml7-11 api/configs/feature/__init__.py51-68 api/configs/feature/__init__.py18-49 api/configs/feature/__init__.py195-224 api/configs/feature/__init__.py226-244
| 服务 | 配置方法 | 关键变量 |
|---|---|---|
| API 服务 | 共享环境 + MODE=api | DIFY_BIND_ADDRESS, DIFY_PORT, SERVER_WORKER_AMOUNT |
| Worker 服务 | 共享环境 + MODE=worker | CELERY_WORKER_AMOUNT, CELERY_AUTO_SCALE, CELERY_BROKER_URL |
| Web 服务 | Next.js 环境变量 | CONSOLE_API_URL, APP_API_URL, MARKETPLACE_API_URL |
来源:docker/docker-compose.yaml510-535 docker/docker-compose.yaml539-562 docker/docker-compose.yaml565-587
来源:api/configs/middleware/__init__.py96-202 docker/.env.example200-241 docker/docker-compose.yaml589-609
存储通过 StorageConfig 类进行配置,通过 OpenDAL 抽象层支持多种后端。
| 存储类型 | 配置类 | 关键变量 |
|---|---|---|
| OpenDAL(默认) | OpenDALStorageConfig | OPENDAL_SCHEME=fs, OPENDAL_FS_ROOT=storage |
| AWS S3 | S3StorageConfig | S3_ENDPOINT, S3_BUCKET_NAME, S3_ACCESS_KEY |
| Azure Blob | AzureBlobStorageConfig | AZURE_BLOB_ACCOUNT_NAME, AZURE_BLOB_CONTAINER_NAME |
| Aliyun OSS | AliyunOSSStorageConfig | ALIYUN_OSS_BUCKET_NAME, ALIYUN_OSS_ACCESS_KEY |
来源:api/configs/middleware/__init__.py47-73 docker/.env.example307-396 api/extensions/ext_storage.py16-31
向量数据库系统通过 VectorFactory 中实现的工厂模式来支持多种提供商。
来源: core/rag/datasource/vdb/vector_factory.py58-127 core/rag/datasource/vdb/vector_type.py4-23 api/configs/middleware/__init__.py75-86 docker/.env.example401-618
| 向量存储 | 默认配置 | 连接变量 |
|---|---|---|
| Weaviate | VECTOR_STORE=weaviate | WEAVIATE_ENDPOINT=http://weaviate:8080WEAVIATE_API_KEY=WVF5YThaHlkYwhGUSmCRgsX3tD5ngdN8pkih |
| Qdrant | VECTOR_STORE=qdrant | QDRANT_URL=http://qdrant:6333QDRANT_API_KEY=difyai123456 |
| PGVector | VECTOR_STORE=pgvector | PGVECTOR_HOST=pgvectorPGVECTOR_DATABASE=dify |
来源: docker/.env.example403-463 docker/docker-compose.yaml160-186
安全配置通过 SecurityConfig 类和各种与认证相关的环境变量进行管理。
来源: api/configs/feature/__init__.py18-49 docker/.env.example701-740 docker/.env.example722-740
Web前端使用不同的配置方法,基于Next.js环境变量和运行时数据属性。
来源: web/config/index.ts5-44 web/docker/entrypoint.sh15-38 web/app/layout.tsx36-56
| 类别 | 变量 | 目的 |
|---|---|---|
| API 端点 | NEXT_PUBLIC_API_PREFIX, NEXT_PUBLIC_PUBLIC_API_PREFIX | 后端服务 URL |
| 功能控制 | NEXT_PUBLIC_MAX_TOOLS_NUM, NEXT_PUBLIC_EDITION | UI 功能限制 |
| 市场 | NEXT_PUBLIC_MARKETPLACE_API_PREFIX, NEXT_PUBLIC_MARKETPLACE_URL_PREFIX | 插件市场集成 |
来源: web/config/index.ts10-44 web/app/layout.tsx38-56
来源: api/app_factory.py12-26 api/app_factory.py39-101 api/extensions/ext_storage.py16-20 api/extensions/ext_logging.py13-41
| 配置 | 开发 | 生产 |
|---|---|---|
| 调试模式 | DEBUG=true, FLASK_DEBUG=true | DEBUG=false, FLASK_DEBUG=false |
| 部署环境 | DEPLOY_ENV=DEVELOPMENT | DEPLOY_ENV=PRODUCTION |
| 数据库 | 本地 PostgreSQL | 经过参数调优的生产 PostgreSQL |
| 存储 | 本地文件系统 (OPENDAL_SCHEME=fs) | 云存储(S3、Azure 等) |
| 日志记录 | 控制台输出 | 带有 LOG_FILE 的文件轮换 |
配置系统遵循以下优先顺序
.env 文件值来源: docker/.env.example68-96 api/.env.example351-354 api/configs/feature/__init__.py51-68
来源: api/configs/feature/__init__.py141-177 docker/docker-compose.yaml649-704 docker/.env.example453-486
这个全面的配置系统使 Dify 能够适应各种部署场景,同时在分布式服务中保持一致的行为。分层方法确保了特定于环境的设置可以在不进行代码更改的情况下覆盖默认设置。