AI 知识库云端搭建
CentOS7部署Dify 1.13.3完整技术文章Docker官方推荐方式一、前言Dify 1.13.3是一款开源的LLM大语言模型应用开发平台核心优势在于提供可视化RAG应用搭建、多模型集成、知识库管理及应用调试功能能够快速打通大模型与实际业务场景无需复杂的代码开发即可实现私有化AI应用的快速落地适用于个人开发者、企业研发团队等各类用户。本文严格遵循Dify官方推荐的Docker Compose部署方式详细讲解在腾讯云CentOS7服务器上部署Dify 1.13.3的完整流程涵盖环境准备、依赖安装、部署配置、验证测试、文件下载及常见问题排查全程步骤可复现兼顾新手友好性与技术严谨性助力用户快速完成部署并投入使用。说明Docker Compose部署方式可自动处理Dify及相关依赖如数据库、缓存、向量库等的关联配置大幅简化部署流程降低部署难度是官方首推的部署方案。二、部署前准备2.1 服务器配置要求部署Dify 1.13.3需满足以下服务器配置确保服务稳定运行避免因资源不足导致部署失败或运行卡顿服务器规格腾讯云CentOS 7.x64位推荐CentOS 7.9兼容性最佳硬件配置最低2核4G内存推荐4核8G确保镜像下载、容器启动及服务运行流畅避免内存不足导致容器退出网络配置开放22端口SSH连接服务器、80端口Dify默认访问端口需在腾讯云控制台安全组中配置对应入站规则权限要求使用root用户操作或具备sudo权限的普通用户避免权限不足导致命令执行失败。2.2 必备依赖说明Dify 1.13.3的Docker Compose部署方式需提前安装以下核心依赖组件后续步骤将逐步完成安装与配置Docker容器化运行环境用于封装Dify及相关依赖服务如PostgreSQL、Redis、Weaviate等推荐20.10.x版本与Dify 1.13.3兼容性最佳Docker Compose容器编排工具用于统一管理Dify相关的所有容器需V2及以上版本满足Dify容器集群的编排需求Git用于克隆Dify 1.13.3源码仓库获取部署所需的配置文件和脚本wget用于下载Docker、Docker Compose等相关依赖包提升下载效率。三、具体部署步骤Docker官方推荐方式3.1 系统环境初始化登录腾讯云服务器通过SSH工具如Xshell、Putty、SecureCRT等执行以下命令初始化系统环境关闭不必要的服务避免与Docker及Dify服务冲突# 关闭防火墙CentOS7默认防火墙为firewalld也可仅开放80、22端口推荐直接关闭以简化配置systemctl stop firewalld systemctl disable firewalld# 关闭SELinux避免权限限制导致Docker容器启动失败或Dify服务无法正常访问sed-is/enforcing/disabled//etc/selinux/config setenforce0# 关闭swap分区提升Docker运行性能可选但推荐避免内存交换影响服务响应速度swapoff-ased-i/swap/s/^/#//etc/fstab# 更新系统软件包确保依赖包版本兼容yum update-y# 安装必备工具wget、git、vim后续下载依赖、编辑配置文件需用到yuminstall-ywgetgitvim提示执行完上述命令后建议重启服务器reboot确保所有配置生效重启后重新通过SSH登录。3.2 安装Docker核心依赖CentOS7默认软件源中的Docker版本较低且与Dify 1.13.3兼容性较差因此采用阿里云Docker源安装适配的稳定版Docker20.10.24步骤如下# 先清理系统中可能存在的旧版本Docker若未安装过执行此命令无副作用yum remove-ydocker\docker-client\docker-client-latest\docker-common\docker-latest\docker-latest-logrotate\docker-logrotate\docker-selinux\docker-engine-selinux\docker-engine# 安装Docker依赖组件device-mapper-persistent-data和lvm2是Docker存储驱动的必备依赖yuminstall-yyum-utils device-mapper-persistent-data lvm2# 配置阿里云Docker YUM源国内源提升下载速度避免官方源卡顿yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo# 手动替换源地址确保下载稳定若上述命令生效可跳过此步sed-isdownload.docker.commirrors.aliyun.com/docker-ce/etc/yum.repos.d/docker-ce.repo# 安装指定版本Docker CE20.10.24与Dify 1.13.3兼容避免版本过高或过低导致冲突yuminstall-ydocker-ce-20.10.24 docker-ce-cli-20.10.24 containerd.io# 启动Docker服务并设置开机自启确保服务器重启后Docker自动运行systemctl startdockersystemctlenabledocker# 验证Docker安装成功出现Docker版本信息即为安装成功docker--version验证结果示例Docker version 20.10.24, build 297e128说明Docker安装完成且可正常运行。3.3 安装Docker Compose容器编排工具Dify 1.13.3要求Docker Compose版本为V2及以上此处下载阿里云国内源的Docker Compose V2.20.2版本步骤如下# 下载Docker Compose国内源速度更快避免官方源下载超时wgethttps://mirrors.aliyun.com/docker-toolbox/linux/compose/v2.20.2/docker-compose-linux-x86_64# 赋予执行权限确保系统可执行该文件chmodx docker-compose-linux-x86_64# 移动到系统可执行目录并重命名为docker-compose简化命令调用mvdocker-compose-linux-x86_64 /usr/local/bin/docker-compose# 验证Docker Compose安装成功出现版本信息即为安装成功docker-compose--version验证结果示例Docker Compose version v2.20.2说明Docker Compose安装完成可用于编排Dify容器。3.4 下载Dify 1.13.3源码通过Git克隆Dify官方源码仓库并切换到1.13.3版本分支确保部署的版本准确无误步骤如下# 克隆Dify源码仓库若GitHub克隆速度慢可替换为国内镜像仓库如gitee镜像gitclone https://github.com/langgenius/dify.git# 进入Dify源码目录所有部署相关文件均在此目录下cddify# 切换到1.13.3版本分支关键步骤避免使用默认main分支的最新版本确保版本匹配gitcheckout v1.13.3# 进入docker部署目录Dify的Docker Compose配置文件、环境变量模板均在此目录cddocker提示若克隆时出现“git: command not found”说明wget、git安装未成功重新执行“yum install -y wget git vim”即可。3.5 配置Dify环境变量Dify官方提供了环境变量模板.env.example无需复杂修改仅需复制模板并修改关键配置数据库密码、访问端口即可满足基础使用需求步骤如下# 复制环境变量模板生成正式的环境变量配置文件.envcp.env.example .env# 编辑.env文件使用vim编辑器按i进入编辑模式编辑完成后按Esc输入:wq保存退出vim.env需修改的关键配置其他配置保持默认即可无需修改POSTGRES_PASSWORD数据库密码建议设置复杂密码如Dify123456避免使用默认密码防止数据泄露NGINX_HTTP_PORTDify默认访问端口默认为80端口若80端口被其他服务如Nginx占用可修改为其他端口如8080、8888等。修改完成后按“Esc”键退出编辑模式输入“:wq”保存并退出vim编辑器。3.6 启动Dify服务核心步骤执行Docker Compose命令启动Dify相关所有容器首次启动会自动下载Dify 1.13.3及相关依赖的镜像约2-3GB下载速度取决于服务器网速耐心等待即可步骤如下# 后台启动所有容器-d表示后台运行避免终端关闭导致服务停止docker-composeup-d# 查看容器启动状态确保所有容器均为Up状态即为启动正常docker-composeps启动成功说明执行“docker-compose ps”后会显示9个容器包括Dify业务服务api、worker、web以及基础组件weaviate、db、redis、nginx等所有容器的“State”列均显示“Up”说明服务启动正常。异常处理若有容器状态为“Exited”执行“docker-compose logs -f”查看具体报错信息常见问题为内存不足、端口占用排查问题后执行“docker-compose down”停止服务重新执行“docker-compose up -d”启动即可。四、部署验证与初始化4.1 访问Dify控制台服务启动正常后通过浏览器访问Dify控制台完成管理员账号初始化步骤如下登录腾讯云控制台进入服务器详情页获取服务器公网IP如123.45.67.89打开浏览器输入访问地址http://公网IP:端口默认端口为80若修改了NGINX\\_HTTP\\_PORT则输入对应端口如http://123\\.45\\.67\\.89:8080首次访问会自动跳转到Dify管理员账号创建页面输入个人常用邮箱、密码至少8位含字母和数字点击“创建账号”即可完成管理员账号初始化。4.2 验证服务可用性登录Dify控制台后可通过以下3个操作验证服务是否正常运行可视化应用搭建创建一个简单的AI应用如知识库问答助手测试拖拽式搭建功能确认应用可正常创建知识库管理上传一个TXT、Markdown格式的文档测试文档上传、解析功能确认知识库可正常添加内容大模型调用在应用对话窗口发送消息测试大模型响应功能默认需对接外部大模型后续可配置Ollama等本地模型。若以上操作均能正常完成说明Dify 1.13.3部署成功可投入使用。4.3 安装大模型插件点击模型供应商后再根据自己的需求安装对应大模型的插件、调用本地大模型一般安装ollama或者vllm大多数同学可能会卡在这一步因为安装插件一般要用到外网但是有些服务器不能访问外网所以就需要在配置文件里面里面去修改配置, 即使你在环境文件里面配置了也会因为配置原因而失败我遇到的问题跟大家分享下先去查看下docker 的日志dockerlogs docker-plugin_daemon-1--tail20021|grep-EGET request for: https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl\nDEBUG Found fresh response for: https://files.pythonhosted.org/packages/37/c3/6eeb6034408dac0fa653d126c9204ade96b819c936e136c5e8a6897eee9c/socksio-1.0.0-py3-none-any.whl\nDEBUG Sending fresh GET request for: https://files.pythonhosted.org/packages/37/c3/6eeb6034408dac0fa653d126c9204ade96b819c936e136c5e8a6897eee9c/socksio-1.0.0-py3-none-any.whl\nDEBUG No cache entry for: https://files.pythonhosted.org/packages/ab/de/aa4cfc69feb5b3d604310214369979bb222ed0df0e2575a1b6e7af1a5579/cachetools-6.2.3-py3-none-any.whl\nDEBUG Sending fresh GET request for: https://files.pythonhosted.org/packages/ab/de/aa4cfc69feb5b3d604310214369979bb222ed0df0e2575a1b6e7af1a5579/cachetools-6.2.3-py3-none-any.whl\nDEBUG No cache entry for: https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl\nDEBUG Sending fresh GET request for: https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl\nDEBUG Found fresh response for: https://files.pythonhosted.org/packages/10/cb/f2ad4230dc2eb1a74edf38f1a38b9b52277f75bef262d8908e60d957e13c/blinker-1.9.0-py3-none-any.whl\nDEBUG Sending fresh GET request for: https://files.pythonhosted.org/packages/10/cb/f2ad4230dc2eb1a74edf38f1a38b9b52277f75bef262d8908e60d957e13c/blinker-1.9.0-py3-none-any.whl\nDEBUG Found fresh response for: https://files.pythonhosted.org/packages/c2/b0/956902e5e1302f8c5d124e219c6bf214e2649f92ad5fce85b05c039a04c9/zope_event-6.1-py3-none-any.whl\nDEBUG Sending fresh GET request for: https://files.pythonhosted.org/packages/c2/b0/956902e5e1302f8c5d124e219c6bf214e2649f92ad5fce85b05c039a04c9/zope_event-6.1-py3-none-any.whl\nDownloading gevent (2.0MiB)\nDownloading tiktoken (1.1MiB)\nDownloading pydantic-core (2.0MiB)\ninit process exited due to no activity for 120 seconds\nfailed to init environment github.com/langgenius/dify-plugin-daemon/internal/core/control_panel.(*StandardLogger).OnLocalRuntimeStartFailed /app/internal/core/control_panel/logger.go:24 github.com/langgenius/dify-plugin-daemon/internal/core/control_panel.(*ControlPanel).LaunchLocalPlugin.func6 /app/internal/core/control_panel/launcher_local.go:97 github.com/langgenius/dify-plugin-daemon/internal/core/control_panel.(*ControlPanel).WalkNotifiers这段日志反馈的是uv下载依赖时卡住120秒无活动被系统 kill。这不是网络问题curl 测试正常而是uv 的并发下载导致连接僵死1、修改 .env文件在你的.env文件中添加如果不生效就进行步骤2 # 插件 Python 环境初始化超时关键必须大于依赖安装时间PLUGIN_PYTHON_ENV_INIT_TIMEOUT600可选同时设置这些PLUGIN_MAX_EXECUTION_TIMEOUT600 PLUGIN_DAEMON_TIMEOUT600 PIP_MIRROR_URLmirrors.cloud.tencent.com/pypi/simple…修改后的如下2、修改 docker-compose 配置文件plugin_daemon相关的值直接覆盖image: langgenius/dify-plugin-daemon:0.5.3-local restart: always environment:: *shared-api-worker-env# ... 其他环境变量 ...PYTHON_ENV_INIT_TIMEOUT:600# ← 直接硬编码 600 秒不使用默认值PLUGIN_MAX_EXECUTION_TIMEOUT:600PLUGIN_DAEMON_TIMEOUT:600PIP_MIRROR_URL: https://mirrors.cloud.tencent.com/pypi/simple# 禁用 UV 强制使用 Pip如果之前设置过 UV_DISABLE1UV_DISABLE:1这两步下来基本就解决了插件下载的问题五、部署文件下载指引本地备份为便于后续重新部署、版本回滚或配置备份可将Dify部署相关文件源码、配置文件、环境变量等下载到本地提供两种下载方式按需选择5.1 方式1通过SSH工具下载推荐使用Xshell、FileZilla等支持文件传输的SSH工具步骤如下通过SSH工具连接腾讯云服务器使用root账号和服务器密码/密钥定位到Dify部署目录/root/dify默认克隆路径若修改过路径定位到对应目录将整个dify文件夹下载到本地该文件夹包含源码、docker配置文件、.env环境变量文件等所有部署相关文件可直接用于后续重新部署。5.2 方式2打包后下载适合大文件传输若直接下载文件夹速度较慢可先将dify目录打包为压缩包再下载到本地步骤如下# 进入服务器root目录dify文件夹默认在该目录下cd/root# 将dify目录打包为tar.gz压缩包命名为dify-1.13.3-deploy.tar.gz便于区分版本tar-zcvfdify-1.13.3-deploy.tar.gz dify# 查看压缩包确认打包成功显示压缩包大小、路径即为成功ls-ldify-1.13.3-deploy.tar.gz打包完成后通过SSH工具将压缩包dify-1.13.3-deploy.tar.gz下载到本地后续重新部署时将压缩包上传到服务器解压即可使用tar -zxvf dify-1.13.3-deploy.tar.gz。六、常见问题排查避坑指南6.1 容器启动失败日志提示“内存不足”问题原因服务器内存未达到最低要求2核4G或其他服务占用大量内存导致Docker容器无法正常启动。解决方案升级服务器配置至少2核4G推荐4核8G或关闭服务器上其他无关服务释放内存执行“docker-compose down”停止Dify服务重新执行“docker-compose up -d”启动。6.2 浏览器无法访问Dify控制台排查步骤按优先级排序执行“docker-compose ps”确认web、nginx容器是否正常运行State为Up若未运行重启容器检查腾讯云安全组确认80端口或修改后的端口已添加入站规则允许外部访问检查服务器防火墙是否彻底关闭若未关闭执行“systemctl stop firewalld”关闭确认访问地址正确端口与.env文件中NGINX_HTTP_PORT配置一致避免端口输入错误。6.3 忘记Dify管理员密码解决方案删除数据库数据目录重新启动服务即可重新创建管理员账号注意此操作会清空所有Dify数据包括应用、知识库等谨慎操作# 停止Dify服务docker-composedown# 删除数据库数据目录数据存储在volumes/db目录下rm-rf./volumes/db# 重新启动服务即可重新创建管理员账号docker-composeup-d6.4 镜像下载速度过慢甚至超时问题原因Docker默认使用官方镜像源国内访问速度较慢导致镜像下载超时。解决方案配置Docker国内镜像加速器阿里云、网易、中科大等均可加快镜像下载速度步骤如下# 创建Docker配置目录若已存在无需重复创建mkdir-p/etc/docker# 编写加速器配置文件可添加多个镜像源按顺序自动切换tee/etc/docker/daemon.json-EOF { registry-mirrors: [ https://docker.mirrors.aliyun.com, https://hub-mirror.c.163.com, https://docker.mirrors.ustc.edu.cn ] } EOF# 重启Docker服务使加速器配置生效systemctl daemon-reload systemctl restartdocker配置完成后重新执行“docker-compose up -d”镜像下载速度会显著提升。若仍超时可更换加速器地址或检查服务器网络连接。各位宝子们关注公众号“老猫聊AI”限时免费领取2026年最新版AI课程需要的同学赶紧关注并留言666即可领取