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管理)
- 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
- 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