Windows 平台源码部署 Dify教程(不依赖 Docker)
Windows 平台源码部署 Dify 实操教程(不依赖 Docker)
🚫 适用于v0.x开头的版本,本实例以v0.15.4 版本为例,不支持 1.x.x+ 版本
✅ 本文手把手教你如何在 Windows 上从源码部署 Dify,无需 Docker,适合对系统控制力要求较高的开发者或运维人员。
1 为什么选择部署 0.15.4 而不是最新版?
1.1 最新版 Dify 的部署难点
从 Dify v1.x.x 版本开始,引入了插件服务 plugin-daemon
,此服务基于 Go 编写,并需单独编译、运行。由于该服务设计为在 Linux/Docker 环境中运行:
- ❌ Windows 原生环境运行
plugin-daemon
复杂,需要本地配置 Go 环境并手动编译。 - ❌ 官方不再提供 Windows 下的非 Docker 部署方式。
- ❌ 插件服务依赖 Unix Socket,不兼容 Windows。
- ✅ 推荐部署方式为使用 Docker 或 WSL。
1.2 为什么选择 0.15.4 版本?
- ✅ 无插件服务依赖,源码干净,部署逻辑清晰。
- ✅ 可在纯 Windows 系统中运行,无需安装 Docker/WSL。
- ✅ 适合本地调试、二次开发或非正式环境部署。
2 源码准备和环境配置
2.1 克隆 Dify 源码仓库
git clone https://github.com/langgenius/dify.git
cd dify
git checkout tags/v0.15.4
2.1 直接下载对就版本的源码仓库
3 安装和配置 PostgreSQL 数据库
💡 Dify 依赖 PostgreSQL 数据库。建议使用 PostgreSQL 14 或以上版本。
3.1 下载 PostgreSQL
前往官网下载安装:
👉 https://www.postgresql.org/download/windows/
3.2 安装 PostgreSQL
安装时记得:
- 记下用户名和密码(例如:
postgres
/your_password
) - 端口一般默认为
5432
- 安装完成后可以用 pgAdmin GUI 工具管理数据库
3.3 创建数据库
- 使用 pgAdmin 或命令行连接 PostgreSQL
- 创建数据库
dify
CREATE DATABASE dify;
4 后端服务部署(API)
4.1 配置 Python 环境
Dify 使用 Poetry
管理依赖。
- 安装 Python 3.12(建议使用 官方安装器)
- 安装 Poetry:
pip install poetry
验证安装:
poetry --version
4.2 复制环境文件
cd api
copy .env.example .env
4.3 配置 SECRET_KEY
打开 .env
文件,将 SECRET_KEY
修改为任意 42 字符的字符串。例如使用 Python 生成:
import base64, os
print(base64.b64encode(os.urandom(32)).decode())
然后复制输出内容替换 .env
中的 SECRET_KEY=...
4.4 设置数据库连接
在 .env
中找到:
DATABASE_URL=postgresql+psycopg2://user:password@localhost:5432/dify
将其改为你自己的 PostgreSQL 用户名、密码。
4.5 安装依赖并初始化环境
poetry env use python3.12
poetry install
4.6 数据库迁移
python -m flask db upgrade
数据库迁移结果完成有73张表,查看数据库表状况,如下图:
4.7 启动后端服务
poetry run python -m flask run --host 0.0.0.0 --port=5001```
5 启动异步任务 Worker(可选)
异步任务处理如数据集导入、索引等操作:
python -m celery -A app.celery worker -P gevent -c 1 --loglevel INFO -Q dataset,generation,mail,ops_trace,app_deletion
6 前端部署(WEB)
6.1 安装 Node.js 和 依赖
下载 LTS 版 Node.js:https://nodejs.org/en/download
这里需要V20以上的版本,不然可能会报各种错.
6.2 安装前端依赖
cd ../web
npm install
6.3 配置环境变量
copy .env.example .env.local
修改 .env.local
文件中的以下内容:
NEXT_PUBLIC_API_PREFIX=http://localhost:5001/console/api
NEXT_PUBLIC_PUBLIC_API_PREFIX=http://localhost:5001/api
其余保持默认即可。
6.4 启动前端开发服务
npm run dev
访问浏览器:http://localhost:3000
7 总结与后续建议
7.1 成功部署标志
- http://localhost:3000 可访问控制台界面
- 后端 5001 接口返回数据正常
- 可通过控制台添加 API Keys、模型等操作
7.2 后续可选配置
- ✅ 使用 Nginx 做反向代理,实现正式部署
- ✅ 配置 https、域名访问
- ✅ 前后端打包运行在生产环境
7.3 推荐使用场景
- 本地测试或定制开发
- 想深入了解 Dify 原理的开发者
- 不愿意安装 Docker / WSL 的开发环境
8 附录:问题排查
问题 | 可能原因 | 解决方案 |
---|---|---|
后端报错连接数据库失败 | 数据库配置不正确 | 检查 .env 中的 DATABASE_URL |
启动 Celery 报错找不到 gevent | gevent 未安装 | poetry install 后自动安装 |
前端访问 5001 报跨域错误 | 没有设置允许跨域 | 修改 Flask 后端添加 CORS 支持 |
📝 如需将 plugin-daemon 手动运行于 Windows,需要额外配置 Go 环境,建议使用 Linux 或 Docker 方式更为稳妥。