Ubuntu本地源码部署Dify(超详细,附可能遇到的问题及解决方案)

Dify本地源码部署主要涉及两部分:后端api部署和前端web部署

一、后端api部署

1.从github克隆 Dify 源代码到本地:

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

2.启动 docker-compose 堆栈,后端需要一些中间件,包括 PostgreSQL、Redis 和 Weaviate,可以使用 一起启动.

cd ../docker
cp middleware.env.example middleware.env
docker compose -f docker-compose.middleware.yaml --profile weaviate -p dify up -d

注:在此之前如果之前用过docker部署过其他容器,最好查看一下docker状态,将其关闭,避免后面dify中的容器端口与之前的端口冲突。

3.配置api环境

cd ../api
cp .env.example .env 
sed -i "/^SECRET_KEY=/c\SECRET_KEY=$(openssl rand -base64 42)" .env

4.由于Dify使用的是poetry来管理所有依赖,因此还需要提前安装好poetry,然后激活环境并安装依赖。(我这里之前安装过依赖了,所以显示无依赖安装更新)

poetry env use 3.12
poetry shell
poetry install

注:这里在执行poetry install时,你大概率会遇到的一个问题,是所有依赖一直处于pending状态,卡住很久也没有downloading。原因是keyring在尝试访问系统密钥服务时发生时延。

解决方案:禁用keyring,就可以继续下载了。

export PYTHON_KEYRING_BACKEND=keyring.backends.null.Keyring

5.运行 migrate,在首次启动之前,请将数据库迁移到最新版本。

poetry run python -m flask db upgrade

6.启动后端(注意启动完,不要关闭,可以另开一个终端去配置前端web环境,文末解释原因)

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

二、Dify前端部署

在启动web服务之前,需要提前准备好一些环境: Node.js v18.x (LTS)和 NPM 版本 8.x.x

1.安装依赖项:

npm install

注:但由于官方镜像资源下载不下来,因此需要使用国内镜像,国内我试了最好的镜像是淘宝源镜像。

npm install --registry=https://registry.npmmirror.com

2.然后,配置环境变量。在当前目录中创建一个名为 的文件,并从 中复制内容。根据您的要求修改这些环境变量的值:

cp .env.example .env.local

3.最后,运行开发服务器:

npm run dev

三、将配置好的源码部署到本地服务器上

1.首先,构建用于生产的应用程序:

npm run build

2.启动服务器,就完成了Dify本地源码的部署了:

npm run start

3.最后只需要在浏览器输入http://localhost:3000 即可访问本地部署的Dify:

注:在部署后端api的时候,启动完后端不要关掉(poetry run python -m flask run --host 0.0.0.0 --port=5001 --debug),可以再开一个终端来配置前端,否则,最后启动项源码会发现一直在加载窗口进不去:

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值