菜单

部署和配置

相关源文件

本文档涵盖了 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 部署

通过 Docker Compose 快速入门

最简单的部署方法是使用预配置的 Docker Compose 设置。

  1. 克隆并导航:

  2. 配置环境:

  3. 启动服务:

来源: docker/README.md1-100 docker/.env.example1-10

Docker Compose 配置结构

Docker 部署使用基于模板的方法,其中 docker-compose.yaml 是从 docker-compose-template.yaml 自动生成的。

来源: docker/docker-compose-template.yaml1-5 docker/docker-compose.yaml1-5

服务配置详情

API 服务配置

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 个按类别划分的配置选项。

  • 服务器配置:日志记录、调试设置、工作进程配置。
  • 数据库配置:PostgreSQL 连接和性能设置。
  • Redis 配置:缓存和消息队列设置。
  • 向量存储配置:多种向量数据库选项。
  • 存储配置:文件存储后端选项。
  • 安全配置:API 密钥、加密、CORS 设置。
  • 模型配置:LLM 提供商设置。
  • 插件配置:插件系统设置。

来源: docker/.env.example1-501 api/.env.example1-501

开发环境设置

DevContainer 设置

Dify 使用 DevContainers 提供了一个预配置的开发环境。

来源: .devcontainer/post_create_command.sh1-15

本地开发设置

API 后端设置

  1. 安装 UV 包管理器:

  2. 安装依赖项:

  3. 配置环境:

  4. 运行数据库迁移:

  5. 启动开发服务器:

来源: api/README.md40-78 api/app.py40-41

前端设置

  1. 安装依赖项:

  2. 配置环境:

  3. 启动开发服务器:

来源: web/README.md13-49 web/package.json8-12

开发 vs 生产配置

来源: api/docker/entrypoint.sh30-39 docker/.env.example136-176

应用程序工厂模式

Flask应用程序使用工厂模式进行初始化

工厂模式允许不同的应用程序配置

  • create_app():具有所有扩展的完整应用程序
  • create_migrations_app():仅用于数据库迁移的最小应用程序

来源: api/app.py12-38 api/app_factory.py29-112