dify本地源码启动实操&填坑

0. dify本地源码启动参考地址:

https://docs.dify.ai/zh-hans/getting-started/install-self-hosted/local-source-code

1. 操作步骤简述(相关环境要求安装略过,如docker,poetry)

  • a. 下载Dify 代码
mkdir -p /data/dify
cd /data/dify
git clone https://github.com/langgenius/dify.git
  • b. 启动依赖的中间件等
cd /data/dify/dify/docker/
cp middleware.env.example middleware.env
docker compose --env-file middleware.env -f docker-compose.middleware.yaml up -d
  • c. 服务端部署
    python版本要求3.12(可以使用conda管理)
  1. API 接口服务
cd /data/dify/dify/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
## 安装依赖包 (poetry 建议配置国内源)
poetry env use 3.12
poetry install
## 执行数据库迁移
poetry shell
flask db upgrade
## 启动API服务
flask run --host 0.0.0.0 --port=8001 --debug
  1. Worker 异步队列消费服务
celery -A app.celery worker -P gevent -c 1 -Q dataset,generation,mail,ops_trace --loglevel INFO
  • d.前端页面部署
## 进入 web 目录
cd /data/dify/dify/web/
## 安装依赖包
npm install
## 配置环境变量
cp .env.example .env.local
[修改内容]
NEXT_PUBLIC_API_PREFIX=http://localhost:8001/console/api
NEXT_PUBLIC_PUBLIC_API_PREFIX=http://localhost:8001/api

## 构建代码 (npm install有错误提示,修改为pnpm)
pnpm run build
## 启动 web 服务
export npm_config_port=8002   (设置前端监听端口,host默认为0.0.0.0)
pnpm run start 

至此环境已经搭建好,可以登录使用了。

2.填坑记录

  • 启动依赖的中间件异常
docker compose --env-file middleware.env -f docker-compose.middleware.yaml up -d

错误信息提示如下:
unknown or invalid runtime name: nvidia

错误信息

参考解决方式:https://www.jianshu.com/p/bb42a7d7db4f

## 配置仓库源
yum -y install yum-utils
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-container-runtime/$distribution/nvidia-container-runtime.repo | sudo tee /etc/yum.repos.d/nvidia-container-runtime.repo
## 下载相关包到本地
yum install nvidia-container-runtime --downloadonly --downloaddir=./
## 安装操作
rpm -Uvh --force --nodeps *.rpm
【补充其他相关内容安装】
yum install nvidia-container-runtime
##  Docker 添加 nvidia 运行时
nvidia-ctk runtime configure --runtime=docker
## 重启docker
systemctl daemon-reload
systemctl restart docker

再次启动依赖的中间件

docker compose --env-file middleware.env -f docker-compose.middleware.yaml up -d

错误信息提示如下:
error during container init: error running hook #1: fork/exec /usr/bin/nvidia-container-runtime-hook: no such file or directory: unknown


错误信息

解决方式:

## 根据提示缺少nvidia-container-runtime-hook,安装相关包
yum install nvidia-container-toolkit
  • 前端安装依赖包
npm install

错误信息:


前端安装依赖包错误

处理方案:

## 安装pnpm
npm i -g pnpm
## 使用pnpm 安装依赖包
pnpm install
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容