本文档涵盖了 Dify 平台的部署和配置,包括基于 Docker 的部署、环境设置和服务配置。Dify 是一个全面的 AI 应用开发平台,由基于 Flask 的 API 后端、Next.js 前端和支持性基础设施服务组成。
有关系统架构和组件关系的信息,请参阅 系统架构。有关开发环境设置的具体信息,请参阅 开发环境设置。
Dify 支持多种部署方法,其中 Docker Compose 是生产部署的主要推荐方法。该平台由多个核心服务组成,可以一起部署,也可以单独部署。
来源: docker/docker-compose.yaml508-720 docker/docker-compose-template.yaml2-280
来源: docker/docker-compose.yaml525-562 api/docker/entrypoint.sh5-39
最简单的部署方法是使用预配置的 Docker Compose 设置。
克隆并导航:
配置环境:
启动服务:
来源: docker/README.md1-100 docker/.env.example1-10
Docker 部署使用基于模板的方法,其中 docker-compose.yaml 是从 docker-compose-template.yaml 自动生成的。
来源: docker/docker-compose-template.yaml1-5 docker/docker-compose.yaml1-5
API 服务可以在不同的模式下运行,由 MODE 环境变量控制。
MODE=api: 运行 Flask API 服务器。MODE=worker: 运行 Celery worker 以进行后台任务。MODE=beat: 运行 Celery beat 调度器。来源: docker/docker-compose.yaml510-525 api/docker/entrypoint.sh10-39
PostgreSQL 配置了性能调优参数。
来源: docker/docker-compose.yaml597-602 docker/middleware.env.example13-41
Dify 通过工厂模式支持多种向量数据库。选择通过 VECTOR_STORE 环境变量进行配置。
来源: api/core/rag/datasource/vdb/vector_factory.py59-150 api/core/rag/datasource/vdb/vector_type.py4-30
Dify 使用一个分层结构化的配置系统。
来源: api/configs/app_config.py1-50 api/configs/feature/__init__.py1-500 api/configs/middleware/__init__.py1-200
来源: api/configs/feature/__init__.py18-49
来源: api/configs/middleware/__init__.py96-147
Dify 通过统一的接口支持多种存储后端。
来源: api/configs/middleware/__init__.py47-73 api/extensions/ext_storage.py22-50
主要的配置在 docker/.env.example 中定义,包含超过 500 个按类别划分的配置选项。
来源: docker/.env.example1-501 api/.env.example1-501
Dify 使用 DevContainers 提供了一个预配置的开发环境。
来源: .devcontainer/post_create_command.sh1-15
安装 UV 包管理器:
安装依赖项:
配置环境:
运行数据库迁移:
启动开发服务器:
来源: api/README.md40-78 api/app.py40-41
安装依赖项:
配置环境:
启动开发服务器:
来源: web/README.md13-49 web/package.json8-12
来源: api/docker/entrypoint.sh30-39 docker/.env.example136-176
Flask应用程序使用工厂模式进行初始化
工厂模式允许不同的应用程序配置
create_app():具有所有扩展的完整应用程序create_migrations_app():仅用于数据库迁移的最小应用程序