从零开始部署Dify:后端与前端服务完整指南
- 一、环境准备
- 1. 系统要求
- 2. 项目结构
- 二、后端服务部署
- 1. 中间件启动(Docker Compose)
- 2. 后端环境配置
- 3. 依赖安装与数据库迁移
- 4. 服务启动
- 三、前端界面搭建
- 1. 环境配置
- 2. 服务启动
- 四、常见问题排查
- 五、总结
在AI应用开发中,Dify作为一款功能强大的工具,其部署过程涉及多个技术栈的整合。本文将详细讲解如何从零开始搭建Dify的完整环境,包括后端服务和前端界面的配置与启动。
一、环境准备
1. 系统要求
- 操作系统:Windows Subsystem for Linux (WSL) 或 Ubuntu 22.04+
- Docker:版本24.0+
- Python:3.12(通过Poetry管理)
- Node.js:v18.x LTS(NPM/Yarn)
2. 项目结构
dify/ ├── docker/ │ ├── docker-compose.middleware.yaml │ └── middleware.env ├── api/ │ ├── .env │ └── requirements.txt └── web/ ├── package.json └── .env.local
二、后端服务部署
1. 中间件启动(Docker Compose)
# 进入docker目录 cd ../docker # 复制环境变量模板 cp middleware.env.example middleware.env # 启动Weaviate配置的中间件栈 docker compose -f docker-compose.middleware.yaml \ --profile weaviate \ -p dify \ up -d
注意:在WSL环境中,不能使用/mnt路径,否则dify-db-1容器报错initdb: error: could not change permissions of directory "/var/lib/postgresql/data/pgdata": Operation not permitted,无法启动。
2. 后端环境配置
# 进入API目录 cd ../api # 生成随机密钥 sed -i "/^SECRET_KEY=/c\SECRET_KEY=$(openssl rand -base64 42)" .env
3. 依赖安装与数据库迁移
# 激活Poetry环境 poetry env use 3.12 poetry lock poetry install # 数据库迁移 poetry run python -m flask db upgrade
4. 服务启动
# 后台启动API服务 poetry run python -m flask run \ --host 0.0.0.0 \ --port=5001 \ --debug # 启动Celery异步任务队列 poetry run python -m celery \ -A app.celery worker \ -P gevent \ -c 1 \ --loglevel INFO \ -Q dataset,generation,mail,ops_trace,app_deletion
三、前端界面搭建
1. 环境配置
# 安装Node.js依赖 npm install # 配置环境变量 cp .env.example .env.local # 示例配置(根据实际环境调整) NEXT_PUBLIC_API_PREFIX=http://localhost:5001/console/api NEXT_PUBLIC_PUBLIC_API_PREFIX=http://localhost:5001/api
2. 服务启动
# 开发模式启动 npm run dev # 访问地址 http://localhost:3000
四、常见问题排查
- 端口冲突:检查5001和3000端口是否被占用
- 环境变量错误:确保.env文件无语法错误
五、总结
通过以上步骤,我们成功搭建了Dify的完整运行环境。后端服务负责数据处理与存储,前端界面提供直观的操作界面。
参考文档:
- Dify Backend API
- Dify Frontend