windows下dify本地源码启动

一、环境准备

1、Clone Dify 代码:

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

2、Docker desktop 安装

进入Docker官网 (www.docker.com/) ,下载对应版本并安装,docker 安装教程资料较多,请自行搜索安装。

3、中间件安装

在启用业务服务之前,我们需要先部署中间件,包括 PostgreSQL / Redis / Weaviate(如果本地没有的话),可以通过以下命令启动:

cd docker
cp middleware.env.example middleware.env
docker compose -f docker-compose.middleware.yaml up -d

成功后运行docker ps 命令,查看容器启动情况
在这里插入图片描述

二、服务端部署

2.1、安装基础环境

服务器启动推荐 Python 3.12+版本

2.2、启动步骤

进入 api 目录

cd api

复制环境变量配置文件

cp .env.example .env

生成随机密钥,并替换 .env 中 SECRET_KEY 的值

awk -v key="$(openssl rand -base64 42)" '/^SECRET_KEY=/ {sub(/=.*/, "=" key)} 1' .env > temp_env && mv temp_env .env

若没有安装awk,可参考一下方式安装:
下载windows版本的awk软件:

http://sourceforge.net/projects/gnuwin32/files/gawk/3.1.6-1/gawk-3.1.6-1-bin.zip/download

解压,将${gawk安装路径}\bin添加到path环境变量中:我的电脑——(右键)属性——高级系统设置——环境变量——(双击)Path——新建
打开dos窗口(win+R,cmd),运行命令awk --version查看版本
在这里插入图片描述
如果不想安装,我们在安装git软件是已经安装了shell虚拟环境,右键点击open git bash here即可,在打开的终端中可以运行linux命令
在这里插入图片描述
安装依赖包
Dify API 服务使用 Poetry 来管理依赖。你可以执行 poetry shell 来激活环境。

poetry env use 3.12
poetry install

如果需要安装poetry,则查看官方文档

https://python-poetry.org/docs/#installing-with-pipx

在这里插入图片描述
可能会出现以下错误
在这里插入图片描述
需要执行如下命令

poetry env activate

或者

poetry env activate .venv

再次执行:
在这里插入图片描述
如果出现error: Microsoft Visual C++ 14.0 is required. Get it with “Microsoft Visual C++ Build Tools”,
在这里插入图片描述
安装 Microsoft visual c++ 14.0,下载地址

https://download.visualstudio.microsoft.com/download/pr/f73d49f7-22b6-4a11-b980-72f3daae77a6/751fc7138facfe9a7d846945e4643fb592562964c2a3a4c6336b192d61913f5a/vs_BuildTools.exe

以下内容勾选上
在这里插入图片描述
在这里插入图片描述
执行数据库迁移
将数据库结构迁移至最新版本。
如果缺少相应的module,执行pip install XXX 安装相应依赖即可
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
gevent 报错,执行以下命令

pip install -U --force-reinstall --no-binary :all: gevent

在这里插入图片描述
报以下错误
在这里插入图片描述
这个错误提示说明你正在使用的 Poetry 版本 (>=2.0.0) 中,shell命令已经不再是默认内置功能。无需激活虚拟环境,直接在命令前加poetry run:

poetry run flask db upgrade

安装 shell 插件(长期解决方案)

poetry self add poetry-plugin-shell

启动 API 服务

poetry run flask run --host 0.0.0.0 --port=5001 --debug

手动激活虚拟环境
获取虚拟环境路径:

poetry env info --path

激活环境(根据系统选择):

# Windows (PowerShell)

.venv\Scripts\Activate.ps1

#Windows (CMD)
.venv\Scripts\activate.bat

# Linux/macOS
 source .venv/bin/activate

再运行命令:

flask run --host 0.0.0.0 --port=5001 --debug

启动成功标识:
再运行命令:

flask run --host 0.0.0.0 --port=5001 --debug

启动成功标识:
在这里插入图片描述

三、启动 Worker 服务

用于消费异步队列任务,如知识库文件导入、更新知识库文档等异步操作。 Linux / MacOS 启动:

celery -A app.celery worker -P gevent -c 1 -Q dataset,generation,mail,ops_trace --loglevel INFO

如果使用 Windows 系统启动,请替换为该命令:

celery -A app.celery worker -P solo --without-gossip --without-mingle -Q dataset,generation,mail,ops_trace --loglevel INFO

正确输出:
在这里插入图片描述
在这里插入图片描述

四、前端页面部署

Web 前端客户端页面服务

安装基础环境
Web 前端服务启动需要用到 Node.js v18.x (LTS) 、NPM 版本 8.x.x 或 Yarn。

安装 NodeJS + NPM
进入 https://nodejs.org/en/download,选择对应操作系统的 v18.x 以上的安装包下载并安装,建议 stable 版本,已自带 NPM。

4.1 启动步骤

进入 web 目录

cd web

安装依赖包

npm install
npm install next react react-dom

配置环境变量。在当前目录下创建文件 .env.local,并复制.env.example中的内容。根据需求修改这些环境变量的值:

# For production release, change this to PRODUCTION
NEXT_PUBLIC_DEPLOY_ENV=DEVELOPMENT
# The deployment edition, SELF_HOSTED
NEXT_PUBLIC_EDITION=SELF_HOSTED
# The base URL of console application, refers to the Console base URL of WEB service if console domain is
# different from api or web app domain.
# example: http://cloud.dify.ai/console/api
NEXT_PUBLIC_API_PREFIX=http://localhost:5001/console/api
# The URL for Web APP, refers to the Web App base URL of WEB service if web app domain is different from
# console or api domain.
# example: http://udify.app/api
NEXT_PUBLIC_PUBLIC_API_PREFIX=http://localhost:5001/api
# SENTRY
NEXT_PUBLIC_SENTRY_DSN=
NEXT_PUBLIC_SENTRY_ORG=
NEXT_PUBLIC_SENTRY_PROJECT=
构建代码
npm run build
启动 web 服务
npm run start
# or
yarn start
# or
pnpm start

正常启动后,终端会输出如下信息:
在这里插入图片描述
访问页面:
在这里插入图片描述
如果docker与api服务不在同一台服务器上,需要在api目录下.env文件中将相应中间件地址配置成docker部署地址。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值