当前位置: 首页 > 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

相关文章:

  • Llama 4中文调优全流程解
  • Win11 系统登入时绑定微软邮箱导致用户名欠缺
  • ST表——算法的优化
  • LambdaQueryWrapper、MybatisPlus提供的基本接口方法、增删改查常用的接口方法、自定义 SQL
  • QML学习06Button
  • ArrayList 与 LinkedList 区别?
  • CMake学习笔记(六)可以在CMake的function中修改function函数体之外的变量值吗?
  • 探索智能仓颉
  • git push出现 “HTTP 400 curl 22 The requested URL returned error: 400...“错误
  • Ntfs!NtfsReadBootSector函数分析之nt!CcGetVacbMiss中得到一个nt!_VACB结构
  • 白皮精读:全国统一数据资产登记体系建设白皮书【附全文阅读】
  • MQTT-SpringBoot整合
  • 6.4.3_有向无环图描述表达式
  • JAVA 项目中 maven pom.xml 和 properties 配置文件、spring 配置文件,以及环境变量的关系
  • 深入理解Istio:全面解析与实践指南
  • 向量数据库选型实战指南:Milvus架构深度解析与技术对比
  • Lua 脚本在 Redis 中的运用-22
  • 每日Prompt:龙虎斗
  • Oracle附加日志概述
  • 华为OD机试真题——字符串序列判定(2025B卷:100分)Java/python/JavaScript/C/C++/GO最佳实现
  • 如何做销售网站/什么是软文推广
  • 有做网站维护的/网站服务公司
  • 静态手机网站/北京seo推广系统
  • 中国建设造价工程协会网站/网络营销产品的特点
  • wordpress 4.8.1下载/网站优化分析
  • 网站不备案有什么影响/上海网络推广服务公司