当前位置: 首页 > article >正文

从零开始部署Dify:后端与前端服务完整指南

从零开始部署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

四、常见问题排查

  1. 端口冲突:检查50013000端口是否被占用
  2. 环境变量错误:确保.env文件无语法错误

五、总结

通过以上步骤,我们成功搭建了Dify的完整运行环境。后端服务负责数据处理与存储,前端界面提供直观的操作界面。


参考文档:

  • Dify Backend API
  • Dify Frontend

http://www.kler.cn/a/531193.html

相关文章:

  • Deepseek-R1 和 OpenAI o1 这样的推理模型普遍存在“思考不足”的问题
  • Deep Crossing:深度交叉网络在推荐系统中的应用
  • 电控三周速成计划参考
  • 冷启动+强化学习:DeepSeek-R1 的原理详解——无需监督数据的推理能力进化之路
  • 队列—学习
  • 深度学习之“线性代数”
  • CSS Module 常用笔记
  • ubuntuCUDA安装
  • 第28节课:前端项目实战—从需求分析到开发流程的全方位指南
  • Vue3学习笔记-事件-4
  • 什么是ThreadLocal的上下文丢失问题?
  • FPGA|生成jic文件固化程序到flash
  • Git 的起源与发展
  • [STM32 标准库]EXTI应用场景 功能框图 寄存器
  • 二分/双指针/单调栈队列专题
  • shell -c
  • gdb 调试多进程中多线程的方法
  • linux远程链接mysql数据库的方法
  • 全面剖析 XXE 漏洞:从原理到修复
  • 读书笔记--分布式架构的异步化和缓存技术原理及应用场景
  • Weevely代码分析
  • Vue和Java使用AES加密传输
  • DeepSeek系列模型完全使用手册|附安装教程
  • SpringCloud系列教程:微服务的未来(二十)Seata快速入门、部署TC服务、微服务集成Seata
  • Vue.js 异步、延迟组件加载
  • 数据结构:时间复杂度