news 2026/4/24 4:17:20

在Linux环境下从0私有化部署Dify

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
在Linux环境下从0私有化部署Dify

在Linux环境下从0搭建Dify

  • 准备工作
    • 系统环境
  • 私有化部署
    • 下载 Dify 代码ZIP包
    • 启动Dify
    • 隐藏原有logo
    • 安装python3和相关依赖
    • 启动 DIfy Docker 容器
  • 访问 Dify
    • 本地环境
    • 服务器环境

准备工作

因工作需要私有化部署公司内部的知识库,研究了一下准备采用Dify+RAG的方式实现,以下是具体步骤。

系统环境

  1. 服务器配置:官方建议2核4G以上;
  2. Liunx版本:Rocky Linux release 9.4;
  3. Docker版本: 28.1.1;
  4. Dify版本:1.13.3;

私有化部署

官方建议用Docker Compose的方式部署,由于最近Github不太稳定,或者是我本地网络的问题,在克隆 Dify 代码仓库的时候总是显示失败,这里采用直接下载ZIP文件的方式部署。

下载 Dify 代码ZIP包

按理说我git clone不了的话,wget也应该不行,结果就是wget下来了,不去深究了。

#Centos/Rockywgethttps://github.com/langgenius/dify/archive/refs/tags/1.13.3.zip

另附上git clone方式拉取。

# 拉取当前最新版本gitclone https://github.com/langgenius/dify.git

启动Dify

将下载好的zip包解压缩

#Centos/Rockyunzipdify-1.13.3.zip

进到目录里面

#Centos/Rockycddify-1.13.3/docker

拷贝个配置模版作为配置文件

#Centos/Rockycp.env.example .env

编辑配置文件

#Centos/Rockyvim.env

修改端口配置,避免跟80端口冲突,容器映射出来的端口改为8088,NGINX两个端口保持一致

#Nginx端口EXPOSE_NGINX_PORT=8088NGINX_PORT=8088

Dify的知识库默认上传文件大小限制为15M,对于我们要上传的文件有点小了,这里改为150M,可以根据实际情况做调整。

#上传文件大小改为150MUPLOAD_FILE_SIZE_LIMIT=150#上传图片大小改为150MUPLOAD_IMAGE_FILE_SIZE_LIMIT=150#上传视频大小改为1000MUPLOAD_VIDEO_FILE_SIZE_LIMIT=1000#上传音频大小改为500MUPLOAD_AUDIO_FILE_SIZE_LIMIT=500#NGINX上传限制改为150M,跟上面有没有冲突没有试,大概率是有的NGINX_CLIENT_MAX_BODY_SIZE=150M

隐藏原有logo

一共有4个文件:
文件1:dify-1.13.3/web/app/components/base/chat/chat-with-history/sidebar/index.tsx
注释掉power by这一段

文件2:dify-1.13.3/web/app/components/base/chat/embedded-chatbot/index.tsx
同样是power by

文件3:dify-1.13.3/web/app/components/base/chat/embedded-chatbot/header/index.tsx
依然是power by

文件4:dify-1.13.3/web/app/components/custom/custom-web-app-brand/components/powered-by-brand.tsx
最后的power by

然后回去修改一下dify-1.13.3/docker/docker-compose.yaml,找到web端的配置,注释掉原有的image,替换成本地。

image: myweb build:../web

进入dify-1.13.3/docker目录

dockercompose downdockercompose up-d--build

安装python3和相关依赖

在更新sandbox后,执行python代码报错
Got error code: -500. Got error msg: fork/exec /usr/local/bin/python3: no such file or directory

Traceback (most recent call last): File “/var/sandbox/sandbox-python/tmp/c0d32cf9_dee7_40da_becf_83cf69b6b501.py”, line 48, in File “”, line 2, in ModuleNotFoundError: No module named ‘dateutil’ error: exit status 255
经查是容器中没有安装python3和相关依赖导致:
先去调整了配置文件。
文件1:dify-1.13.3/docker/volumes/sandbox/conf/config.yaml

app: port:8194debug: True key: dify-sandbox max_workers:4max_requests:50worker_timeout:5python_path: /opt/python/bin/python3 nodejs_path: /usr/local/bin/node enable_network: True# please make sure there is no network risk in your environmentallowed_syscalls:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336]proxy: socks5:''http:''https:''

文件2:dify-1.13.3/docker/volumes/sandbox/dependencies/python-requirements.txt

python-dateutil numpy scipy cython joblib scikit-learn transformers datasets accelerate icetk cpm_kernels pyspark colorama bitsandbytes sentencepiece streamlit transformers_stream_generator xformers protobuf>=4.25.3 transformers>=4.38.1 tokenizers>=0.15.0 cpm_kernels>=1.0.11 torch>=2.1.0 gradio>=4.19.2 sentencepiece>=0.2.0 sentence_transformers>=2.4.0 accelerate>=0.27.2 streamlit>=1.31.0 fastapi>=0.109.0 loguru~=0.7.2 mdtex2html>=1.3.0 latex2mathml>=3.77.0 jupyter_client>=8.6.0 openai>=1.12.0 zhipuai>=2.0.1 pydantic>=2.6.2 sse-starlette>=2.0.0 uvicorn>=0.27.1 timm>=0.9.12 tiktoken>=0.6.0 langchain>=0.1.9 langchainhub>=0.1.14 arxiv>=2.1.0

调整配置后再次重启容器

dockercompose downdockercompose up-d

这里虽然加了python-dateutil,但还是会报错

遂直接进入容器安装:
1.首先检查当前容器状态

# 查看容器运行状态dockerps|grepsandbox# 进入容器dockerexec-itdocker-sandbox-1 /bin/bash

2.在容器内检查 Python 和模块

# 在容器内执行以下命令:# 1. 检查 Python 版本python3--versionwhichpython3# 2. 检查 pippip3--versionwhichpip3# 3. 检查 dateutil 是否已安装python3-c"import dateutil; print(dateutil.__version__)"2>/dev/null||echo"dateutil 未安装"# 4. 检查已安装的包pip3 list|grep-idateutil pip3 list|grep-ipython-dateutil

3.安装缺失的模块

# 在容器内执行pip3installpython-dateutil# 如果权限问题,使用pip3install--userpython-dateutil# 或python3-mpipinstallpython-dateutil

4.验证安装

python3-c"import dateutil; print(dateutil.__version__)"

至此问题得到解决。

启动 DIfy Docker 容器

这里发现没有安装Docker,安装之。

#Centos/Rockydockercompose up-d

访问 Dify

本地环境

http://localhost:8088/install

服务器环境

http://your_server_ip:8088/install

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/24 4:16:16

create-react-app Sass/SCSS集成:现代化CSS预处理支持终极指南

create-react-app Sass/SCSS集成:现代化CSS预处理支持终极指南 【免费下载链接】create-react-app Set up a modern web app by running one command. 项目地址: https://gitcode.com/gh_mirrors/cr/create-react-app create-react-app是一个强大的工具&…

作者头像 李华
网站建设 2026/4/24 4:15:18

TorrServer DLNA功能实战:在智能电视上播放Torrent内容

TorrServer DLNA功能实战:在智能电视上播放Torrent内容 【免费下载链接】TorrServer Torrent stream server 项目地址: https://gitcode.com/gh_mirrors/to/TorrServer TorrServer是一款强大的Torrent流媒体服务器,通过其DLNA功能,你可…

作者头像 李华
网站建设 2026/4/24 4:14:18

Keras性能优化秘籍:20个专业技巧加速模型训练流程

Keras性能优化秘籍:20个专业技巧加速模型训练流程 【免费下载链接】keras Deep Learning for humans 项目地址: https://gitcode.com/GitHub_Trending/ke/keras Keras作为"Deep Learning for humans"的热门框架,其简洁的API设计让深度学…

作者头像 李华
网站建设 2026/4/24 4:13:23

掌握daisyUI渐变效果:打造惊艳色彩过渡动画的完整指南

掌握daisyUI渐变效果:打造惊艳色彩过渡动画的完整指南 【免费下载链接】daisyui 🌼 🌼 🌼 🌼 🌼  The most popular, free and open-source Tailwind CSS component library 项目地址: https://gitcode.…

作者头像 李华
网站建设 2026/4/24 4:13:19

终极指南:如何让旧款Mac重获新生,完整解锁最新macOS功能

终极指南:如何让旧款Mac重获新生,完整解锁最新macOS功能 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 你是否有一台性能尚可但被苹果…

作者头像 李华
网站建设 2026/4/24 4:11:17

终极指南:如何快速免费解密QQ音乐QMC格式并转换为MP3/FLAC

终极指南:如何快速免费解密QQ音乐QMC格式并转换为MP3/FLAC 【免费下载链接】qmc-decoder Fastest & best convert qmc 2 mp3 | flac tools 项目地址: https://gitcode.com/gh_mirrors/qm/qmc-decoder 你是否曾经下载了QQ音乐歌曲,却发现只能在…

作者头像 李华