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

Dify 本地源码安装教程

目录

    • 1. 克隆代码
    • 2. 启动中间件服务
    • 3. 配置并启动后端服务
    • 4. 配置并启动前端服务
    • 5. 访问服务

1. 克隆代码

git clone https://github.com/langgenius/dify.git

在这里插入图片描述

2. 启动中间件服务

首先需要启动必要的中间件服务(PostgreSQL、Redis等):

  1. 进入 docker 目录:
cd dify/docker
  1. 复制环境配置文件:
copy middleware.env.example middleware.env
  1. 启动中间件服务:
docker compose -f docker-compose.middleware.yaml up -d

在这里插入图片描述

3. 配置并启动后端服务

  1. 进入 api 目录:
cd api
  1. 复制环境配置文件:
copy .env.example .env

在这里插入图片描述

  1. 生成密钥:
    这个网址可以随机生成密钥:https://www.lddgo.net/string/randompassword
    在这里插入图片描述
    替换.env 文件中的密钥SECRET_KEY:
    在这里插入图片描述

  2. 安装依赖:

uv sync

在这里插入图片描述

  1. 执行数据库迁移:
uv run flask db upgrade

在这里插入图片描述

  1. 启动API服务(Windows系统):
uv run flask run --host 0.0.0.0 --port=5001 --debug

在这里插入图片描述

  1. 启动Worker服务(Windows系统):
    在另一个窗口开启Worker服务:
uv run celery -A app.celery worker -P solo --without-gossip --without-mingle -Q dataset,generation,mail

在这里插入图片描述

4. 配置并启动前端服务

  1. 确保已安装Node.js v18.x以上版本和PNPM

  2. 进入web目录:

cd web
  1. 复制环境配置文件:
copy .env.example .env.local
  1. 安装依赖:
pnpm install --frozen-lockfile

在这里插入图片描述
在这里插入图片描述

  1. 构建前端:
    命令行窗口用管理员权限开启,然后运行下面命令:
pnpm build
  1. 启动前端服务:

因为windows系统的特殊性,在package.json文件下修改start脚本

 "start": "xcopy \".next\\static\" \".next\\standalone\\.next\\static\" /E /I /Y && xcopy \"public\" \".next\\standalone\\public\" /E /I /Y && cross-env PORT=3000 HOSTNAME=localhost node .next/standalone/server.js",

在这里插入图片描述

然后启动命令

pnpm start

5. 访问服务

完成以上步骤后,可以通过浏览器访问:
http://localhost:3000
在这里插入图片描述

至此,Dify的本地开发环境就搭建完成了。前端运行在3000端口,后端API运行在5001端口。

注意事项:

  1. 确保Docker已经正确安装并运行
  2. Windows系统下需要使用管理员权限运行命令提示符
  3. 如果遇到权限相关问题,可以尝试以管理员身份运行命令
  4. 确保所需端口(3000、5001等)未被其他程序占用

参考链接:https://docs.dify.ai/en/getting-started/install-self-hosted/local-source-code

http://www.xdnf.cn/news/634969.html

相关文章:

  • 【漫话机器学习系列】277.梯度裁剪(Gradient Clipping)
  • Redis数据安全分析
  • Java——优先级队列(堆)
  • 前沿探索之Kuikly框架
  • Java 虚拟机(JVM)原理与实战:打造高效稳定的运行环境
  • YOLOV8涨点技巧之空间通道协作注意力(SCCA)-应用于自动驾驶领域
  • 【公式】MathType公式右编号对齐
  • C/C++ 结构体:. 与 -> 的区别与用法及其STM32中的使用
  • 2025.5.25总结
  • Windows 11 [close recent file browsing history]
  • 对WireShark 中的UDP抓包数据进行解析
  • win11 禁用/恢复 内置笔记本键盘(保证管用)
  • 嵌入式软件--DAY8 IIC通讯下 硬件实现
  • 解决WPF短暂的白色闪烁(白色闪屏)
  • 从智能提效到产品赋能的架构实践
  • Pycharm and Flask 的学习心得(9)
  • PCB 通孔是电容性的,但不一定是电容器
  • CSS相关知识
  • 基于PyTorch的残差网络图像分类实现指南
  • 如何理解Pytorch中前向传播的计算过程
  • 小土堆pytorch--神经网络搭建小实战Sequential的使用
  • 高可用 Redis 服务架构分析与搭建
  • 【C/C++】从零开始掌握Kafka
  • P2676 [USACO07DEC] Bookshelf B
  • 电商小程序店铺详情页:头部无限分类与筛选功能实现
  • LabVIEW实战项目推荐与学习建议
  • 打卡第28天:装饰器
  • 【HarmonyOS5】DevEco Studio 预览器与模拟工具详解
  • 掌握聚合函数:COUNT,MAX,MIN,SUM,AVG,GROUP BY和HAVING子句的用法,Where和HAVING的区别
  • TIGER - 一个轻量高效的语音分离模型,支持人声伴奏分离、音频说话人分离等 支持50系显卡 本地一键整合包下载