Dify 本地化部署深度解析与实战指南
Dify 本地化部署深度解析与实战指南
引言
Dify 是一个开源的低代码/无代码 AI 应用开发平台,旨在帮助用户快速构建和部署基于大型语言模型(LLM)和自主代理的 AI 应用。Dify 的本地化部署允许用户在本地机器或服务器上运行平台,提供更高的数据隐私、成本控制和离线功能。本文将深入探讨 Dify 的本地化部署方法,包括 Docker Compose 和源代码部署,结合系统要求、实战步骤和最佳实践,为用户提供逻辑清晰、可操作的指南,适合从初学者到高级开发者的需求。
为什么选择 Dify 本地化部署?
本地化部署 Dify 的核心优势在于:
- 数据隐私:数据完全存储在本地,避免云端数据泄露风险,适合对安全敏感的企业或个人。
- 离线能力:结合本地 LLM(如 Ollama),可在无网络环境下运行 AI 应用。
- 成本控制:无需支付云服务费用,适合长期使用的团队。
- 高度定制:源代码部署允许用户修改代码,满足特定需求。
截至 2025 年 7 月,Dify 在 GitHub 上拥有超过 800 名贡献者和 500 万次下载,显示其在 AI 开发领域的广泛接受度。本地化部署为用户提供了完全控制 AI 基础设施的能力,是隐私和定制化的理想选择。
Dify 本地化部署方法
Dify 支持两种主要的本地化部署方式:Docker Compose 和源代码部署。以下详细介绍两种方法的特点、步骤和注意事项。
1. Docker Compose 部署
Docker Compose 是最推荐的部署方式,适合初学者和希望快速上手的用户。它通过容器化技术简化依赖管理和部署流程,减少配置复杂性。
系统要求
- 硬件:至少 2 vCPU,8GB 内存,20GB 存储空间(复杂工作流可能需要更高配置)。
- 软件:
- Docker(Linux 需 Docker Engine,Windows/macOS 需 Docker Desktop)。
- Git(用于克隆 Dify 仓库)。
- 网络:稳定的本地网络,若需外部模型 API,需确保网络访问。
部署步骤
- 安装 Docker:
- Linux(Ubuntu):
参考 Docker 官方文档 确保版本兼容。sudo apt-get update sudo apt-get install docker.io
- Windows/macOS:下载 Docker Desktop,Windows 用户建议启用 WSL 2。
- Linux(Ubuntu):
- 克隆 Dify 仓库:
git clone https://github.com/langgenius/dify.git
- 进入 Docker 目录:
cd dify/docker
- 配置环境变量:
- 复制环境变量模板:
cp .env.example .env
- 编辑
.env
文件,常见配置包括:DOCKER_COMPOSE_PORT=80 STORAGE_TYPE=local OLLAMA_BASE_URL=http://localhost:11434
- 复制环境变量模板:
- 启动中间件服务:
- 复制中间件环境变量:
cp middleware.env.example middleware.env
- 启动 PostgreSQL、Redis、Weaviate:
docker compose -f docker-compose.middleware.yaml up -d
- 复制中间件环境变量:
- 启动 Dify 服务:
docker compose up -d --build
- 访问初始化页面:
- 打开浏览器,访问
http://localhost/install
(若修改端口,替换为对应端口)。 - 设置管理员账户,完成初始化。
- 打开浏览器,访问
- 访问 Dify:
- 初始化完成后,访问
http://localhost
进入 Dify 主界面。
- 初始化完成后,访问
注意事项
- 端口冲突:检查
80
端口是否被占用,可在.env
中修改DOCKER_COMPOSE_PORT
。 - 镜像更新:定期运行
docker compose pull
获取最新镜像。 - 日志检查:若部署失败,使用
docker compose logs
查看错误信息。 - 社区支持:参考 Dify 文档 - 本地部署 获取最新指南。
2. 源代码部署
源代码部署适合需要定制或参与 Dify 开发的进阶用户,提供更高的灵活性,但配置复杂。
系统要求
- 硬件:至少 2 vCPU,8GB 内存,20GB 存储。
- 软件:
- Python 3.10+(建议使用 pyenv)。
- Node.js v16+,pnpm。
- PostgreSQL、Redis、Weaviate。
- FFmpeg(若需 OpenAI TTS 功能)。
- 操作系统:Linux(推荐 Ubuntu),Windows 可使用 WSL 2。
部署步骤
- 安装必要工具:
- Python:
配置curl https://pyenv.run | bash pyenv install 3.12 pyenv global 3.12
~/.bashrc
:echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc echo 'eval "$(pyenv init -)"' >> ~/.bashrc source ~/.bashrc
- Node.js 和 pnpm:
curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash - sudo apt-get install -y nodejs npm install -g pnpm
- FFmpeg(若需 TTS):
- Ubuntu:
sudo apt-get update sudo apt-get install ffmpeg
- Windows:从 FFmpeg 官网 下载并添加至环境变量。
- Ubuntu:
- Python:
- 克隆 Dify 仓库:
git clone https://github.com/langgenius/dify.git cd dify
- 配置中间件:
- 进入
docker
目录:cd docker cp middleware.env.example middleware.env docker compose -f docker-compose.middleware.yaml up -d
- 进入
- 配置后端:
- 进入
api
目录:cd ../api
- 安装 Poetry:
pip install poetry
- 安装依赖:
poetry install
- 配置环境变量:
编辑cp .env.example .env
.env
,设置:SECRET_KEY=$(openssl rand -base64 42) NEXT_PUBLIC_DEPLOY_ENV=PRODUCTION NEXT_PUBLIC_EDITION=SELF_HOSTED NEXT_PUBLIC_API_PREFIX=http://localhost:5001/console/api
- 启动后端:
poetry run python manage.py runserver
- 进入
- 配置前端:
- 进入
web
目录:cd ../web
- 安装依赖:
pnpm install
- 构建并启动:
pnpm run build pnpm start
- 进入
- 启动 Worker 服务:
- 在
api
目录下,运行:
Windows 用户:poetry run celery -A app.celery worker -P gevent -c 1 --loglevel INFO -Q dataset,generation,mail,ops_trace
poetry run celery -A app.celery worker -P solo --without-gossip --without-mingle -Q dataset,generation,mail,ops_trace --loglevel INFO
- 在
- 访问 Dify:
- 访问
http://localhost:3000
进入 Dify 主界面。
- 访问
注意事项
- 环境隔离:使用 pyenv 和 Poetry 确保 Python 环境干净。
- 依赖更新:定期运行
poetry update
和pnpm install
获取最新依赖。 - 调试模式:后端默认运行在调试模式(
http://127.0.0.1:5001
),生产环境需配置 WSGI 服务器。 - 社区支持:参考 Dify 文档 - 源代码部署。
3. 其他部署选项
- Windows + WSL:Windows 用户可通过 WSL 2 部署
- Kubernetes:生产环境建议使用 Kubernetes(如 Alibaba Cloud ACK),参考 Alibaba Cloud 社区。
本地模型集成
Dify 支持与本地 LLM 集成,增强离线能力。以下以 Ollama 为例:
- 启动 Ollama:
docker run -d --name ollama --rm -p 11434:11434 ollama/ollama
- 配置 Dify:
- 在 Dify 界面中,进入“模型” > “添加模型” > “Ollama”。
- 设置模型名称(如
deepseek-r1:7b
)和 Base URL(如http://localhost:11434
)。 - 保存并测试连接。
- 其他工具:支持 LocalAI、Xinference、OpenLLM 和 GPUStack,参考 Dify 文档 - 模型集成。
最佳实践与注意事项
- 技术要求:Docker Compose 适合初学者,源代码部署需熟悉 Python 和 Node.js。
- 性能优化:确保硬件满足要求,复杂工作流可能需更高配置。
- 定期更新:通过
git pull
和docker compose pull
获取最新代码和镜像。 - 生产环境:Docker Compose 和源代码部署适合开发测试,生产环境建议 Kubernetes。
- 数据备份:执行清理操作前备份数据库,避免数据丢失。
与云部署的比较
方面 | 本地部署 | 云部署(Dify Cloud) |
---|---|---|
成本 | 免费,需本地资源 | 免费试用(200 次 OpenAI 调用),之后付费 |
数据隐私 | 高,数据完全本地存储 | 较低,数据存储在 AWS 美国区域 |
部署难度 | 需要技术配置,Docker 较简单 | 无需配置,直接注册使用 |
扩展性 | 有限,需 Kubernetes 支持生产环境 | 高,托管基础设施支持扩展 |
离线能力 | 支持,结合本地模型完全离线 | 需网络连接 |
社区与资源
- 官方文档:Dify Docs - 本地部署
- GitHub 讨论:Dify GitHub Discussions
结论
Dify 的本地化部署为用户提供了强大的数据隐私和离线能力,适合个人开发者、小型团队和对安全敏感的企业。Docker Compose 提供简单快捷的部署方式,源代码部署适合深度定制。结合本地 LLM,Dify 可完全离线运行,满足多样化需求。通过本文的实战指南,用户可以快速搭建 Dify 环境,解锁 AI 应用的无限可能,下一篇我们一起看下dify工作流开发实战系列。