上一篇 下一篇 分享链接 返回 返回顶部

Dify 私有化部署实战:从服务器到上线一条命令搞定

发布人:慈云数据-客服中心 发布时间:8小时前 阅读量:5

Dify 部署完整教程|一键部署

Dify 是一个开源的 LLMOps 平台,集成了应用编排、Prompt 管理、知识库、工作流、模型接入、API 发布、可视化调试等能力。对于想快速搭建 AI 应用平台的团队或个人来说,Dify 是一个非常适合上手的选择。本文将带你从零开始完成 Dify 的一键部署,包含服务器准备、Docker 安装、Dify 拉取、环境配置、启动服务、访问后台、模型配置、常见问题处理以及后续升级维护等内容。

本文适合以下读者:

  • 想在服务器上自建 Dify 平台的个人开发者;
  • 想给团队部署私有化 AI 应用平台的技术人员;
  • 想通过 Docker 快速体验 Dify 的用户;
  • 想了解 Dify 部署流程、配置项和常见问题的人。

一、Dify 是什么?

Dify 是一个开源的大模型应用开发平台,它可以帮助开发者快速构建基于大语言模型的应用。相比直接调用 OpenAI、通义千问、智谱、Claude 等模型 API,Dify 提供了更加完整的工程化能力。

它主要包含以下功能:

  1. 聊天助手应用

    可以快速创建一个 Chatbot,并配置 Prompt、模型、开场白、上下文参数等。

  2. 文本生成应用

    适合用于文章生成、邮件生成、摘要生成、翻译、改写等场景。

  3. 工作流 Workflow

    支持以可视化流程的方式编排复杂 AI 任务,例如分类、检索、调用工具、条件判断、多模型协作等。

  4. 知识库 RAG

    可以上传文档、网页、文本等资料,构建企业内部知识库,实现基于知识库的问答。

  5. 模型统一接入

    支持 OpenAI、Azure OpenAI、Anthropic、Gemini、通义千问、智谱、DeepSeek、Ollama 等多种模型服务。

  6. API 发布

    创建好的应用可以直接发布为 API,方便外部系统调用。

  7. 团队协作

    支持成员管理、应用共享、权限管理等能力。

简单来说,Dify 可以理解为一个面向大模型应用开发的低代码平台。它既适合非专业人员快速搭建 AI 应用,也适合开发者进行二次开发和系统集成。


二、部署方式说明

Dify 支持多种部署方式,例如:

  • Docker Compose 部署;
  • Kubernetes 部署;
  • 源码部署;
  • 云平台镜像部署;
  • 第三方一键脚本部署。

对于大多数用户来说,Docker Compose 是最简单、最稳定、最推荐的部署方式。本文也将以 Docker Compose 为主,带你完成一键部署。

Docker Compose 部署的优势包括:

  • 安装简单,命令少;
  • 服务隔离,方便管理;
  • 出错后容易排查;
  • 升级方便;
  • 适合个人服务器和中小团队私有化部署。

三、服务器配置要求

在部署 Dify 之前,建议先准备一台 Linux 服务器。推荐使用 Ubuntu 20.04 / Ubuntu 22.04 / Debian 11 / Debian 12 / CentOS 7+ 等系统。

1. 最低配置

如果只是个人测试或轻量体验,可以使用以下配置:

项目 推荐配置
CPU 2 核
内存 4GB
磁盘 30GB
系统 Ubuntu 20.04+
网络 可访问 GitHub、Docker Hub

2. 推荐配置

如果是团队使用或需要接入知识库、工作流,建议使用:

项目 推荐配置
CPU 4 核及以上
内存 8GB 及以上
磁盘 50GB 及以上
系统 Ubuntu 22.04 LTS
网络 稳定公网 IP 或内网访问环境

3. 端口要求

Dify 默认会使用以下端口:

端口 用途
80 Web 访问入口
443 HTTPS 访问入口,如配置 SSL
5001 API 服务,通常由 Nginx 转发
3000 Web 前端,通常由 Nginx 转发
5432 PostgreSQL 数据库内部端口
6379 Redis 内部端口

一般情况下,只需要对外开放 80443 端口即可。如果只是测试环境,也可以仅开放 80 端口。


四、安装 Docker 和 Docker Compose

Dify 官方推荐使用 Docker Compose 部署,因此我们需要先安装 Docker。

以下命令以 Ubuntu / Debian 系统为例。

1. 更新系统软件包

sudo apt update
sudo apt upgrade -y

2. 安装基础依赖

sudo apt install -y ca-certificates curl gnupg lsb-release git

3. 安装 Docker

可以直接使用 Docker 官方脚本安装:

curl -fsSL https://get.docker.com | bash

安装完成后,查看 Docker 版本:

docker -v

如果能够看到类似以下输出,说明 Docker 安装成功:

Docker version 26.x.x, build xxxxxxx

4. 设置 Docker 开机自启

sudo systemctl enable docker
sudo systemctl start docker

5. 安装 Docker Compose

新版 Docker 一般已经内置 Compose 插件,可以使用以下命令查看:

docker compose version

如果看到版本信息,说明已经安装成功。例如:

Docker Compose version v2.x.x

如果没有安装,可以执行:

sudo apt install -y docker-compose-plugin

五、拉取 Dify 项目

进入一个你希望存放项目的目录,例如 /opt

cd /opt

克隆 Dify 官方仓库:

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

进入 Docker 部署目录:

cd dify/docker

这个目录下包含了 Dify 的 Docker Compose 配置文件、环境变量模板以及 Nginx 配置等内容。


六、配置环境变量

Dify Docker 部署目录中通常会提供一个环境变量模板文件,例如:

.env.example

我们需要复制一份为 .env

sudo cp .env.example .env

然后编辑 .env 文件:

sudo nano .env

如果你不熟悉 nano,可以使用方向键移动,编辑完成后按:

Ctrl + O 保存
Enter 确认
Ctrl + X 退出

1. 常见需要关注的配置

Dify 的 .env 文件中有很多配置项。首次部署时,大多数保持默认即可,但以下几个配置建议重点关注。

CONSOLE_WEB_URL

控制台访问地址。

如果你使用 IP 访问,可以设置为:

CONSOLE_WEB_URL=http://你的服务器IP

如果你使用域名访问,可以设置为:

CONSOLE_WEB_URL=https://dify.example.com

APP_WEB_URL

应用访问地址。

APP_WEB_URL=http://你的服务器IP

或者:

APP_WEB_URL=https://dify.example.com

API_URL

API 服务地址。

API_URL=http://你的服务器IP

或者:

API_URL=https://dify.example.com

SECRET_KEY

这是系统加密密钥,生产环境一定要修改,不建议使用默认值。

可以使用以下命令生成一个随机密钥:

openssl rand -base64 42

然后将生成的字符串填入:

SECRET_KEY=你生成的随机字符串

数据库和 Redis 配置

如果你使用 Docker Compose 默认部署方式,PostgreSQL 和 Redis 会自动以容器形式启动,一般不需要手动修改。

默认配置类似:

DB_USERNAME=postgres
DB_PASSWORD=postgres
DB_HOST=db
DB_PORT=5432
DB_DATABASE=dify
REDIS_HOST=redis
REDIS_PORT=6379

如果部署在生产环境,建议修改数据库密码和 Redis 密码,并妥善保存。


七、一键启动 Dify

配置完成后,就可以启动 Dify 了。

/opt/dify/docker 目录下执行:

sudo docker compose up -d

这个命令会自动拉取所需镜像,并在后台启动相关容器。首次启动时,由于需要下载多个镜像,耗时可能较长,取决于服务器网络环境。

启动完成后,可以查看容器状态:

sudo docker compose ps

如果看到多个服务状态为 runninghealthy,说明 Dify 已经启动成功。

常见容器包括:

  • api
  • worker
  • web
  • db
  • redis
  • nginx
  • weaviate 或其他向量数据库服务
  • sandbox
  • plugin_daemon

不同版本 Dify 的容器名称可能略有变化,以实际输出为准。


八、访问 Dify 控制台

启动成功后,在浏览器访问:

http://你的服务器IP

如果你配置了域名,则访问:

https://你的域名

首次访问会进入初始化页面,需要创建管理员账户。

你需要填写:

  • 管理员邮箱;
  • 管理员用户名;
  • 管理员密码。

创建完成后,即可进入 Dify 控制台。


九、配置模型供应商

Dify 部署完成后,本身并不自带大语言模型。你需要在后台配置模型供应商,才能正常创建 AI 应用。

进入 Dify 控制台后,通常可以按以下路径操作:

右上角头像 / 设置 / 模型供应商

或者:

Settings / Model Provider

1. 配置 OpenAI

如果你使用 OpenAI,可以添加 API Key:

Provider: OpenAI
API Key: sk-xxxxxxxx

然后选择模型,例如:

  • gpt-4o
  • gpt-4o-mini
  • gpt-4.1
  • gpt-3.5-turbo

保存后即可在应用中使用。

2. 配置 DeepSeek

如果你使用 DeepSeek,一般需要填写:

API Key: sk-xxxxxxxx
Base URL: https://api.deepseek.com

常见模型:

deepseek-chat
deepseek-reasoner

3. 配置通义千问

如果你使用阿里云百炼或 DashScope,需要填写对应 API Key。

常见模型:

qwen-plus
qwen-max
qwen-turbo

4. 配置 Ollama 本地模型

如果你希望使用本地模型,可以搭配 Ollama。

例如服务器安装 Ollama 后运行:

ollama run llama3

然后在 Dify 中配置 Ollama 地址。

如果 Ollama 和 Dify 在同一台机器但不同容器网络中,不能简单使用 localhost,因为容器内的 localhost 指的是容器自身。通常可以使用:

http://host.docker.internal:11434

Linux 下如不可用,需要额外配置 Docker 网络或使用宿主机网关地址。


十、创建第一个 AI 应用

模型配置完成后,就可以创建应用了。

1. 创建聊天助手

在 Dify 控制台首页点击:

创建应用

选择:

聊天助手

填写应用名称,例如:

智能客服助手

然后在 Prompt 中填写:

你是一个专业、友好、耐心的客服助手。请根据用户的问题进行清晰回答,如果无法确定答案,请说明原因,不要编造信息。

选择模型后,点击调试,即可与应用对话。

2. 发布应用

调试完成后,可以点击发布。Dify 会生成一个可访问的 Web App 页面,同时也会提供 API 调用方式。

你可以将应用链接分享给用户,也可以将 API 集成到自己的网站、小程序、企业微信、飞书或内部系统中。


十一、配置知识库

Dify 的一大核心能力是知识库,也就是常说的 RAG。

1. 新建知识库

进入知识库页面,点击:

创建知识库

上传文档,例如:

  • PDF;
  • Word;
  • Markdown;
  • TXT;
  • HTML;
  • 网页内容。

2. 文档处理

Dify 会对文档进行切分、向量化和索引。你需要选择嵌入模型,例如:

  • OpenAI Embedding;
  • BGE Embedding;
  • 通义千问 Embedding;
  • 本地 Embedding 模型。

3. 在应用中引用知识库

创建聊天助手时,可以在上下文或知识库设置中关联已创建的知识库。这样用户提问时,Dify 会先从知识库检索相关内容,再将检索结果交给大模型回答。

这类方式非常适合:

  • 企业内部制度问答;
  • 产品文档问答;
  • 客服知识库;
  • 技术文档助手;
  • 法律、医疗、教育等专业资料问答。

十二、配置域名和 HTTPS

如果只是内网测试,可以直接使用 IP 访问。但如果是生产环境,建议绑定域名并配置 HTTPS。

1. 域名解析

假设你的域名是:

dify.example.com

需要在域名服务商后台添加 A 记录:

dify.example.com -> 你的服务器公网 IP

等待 DNS 生效后,可以通过以下命令测试:

ping dify.example.com

2. HTTPS 配置方式

Dify Docker 部署中一般包含 Nginx。你可以选择以下方式配置 HTTPS:

  • 使用服务器外部的 Nginx 反向代理;
  • 使用宝塔面板反向代理;
  • 使用 Caddy 自动签发证书;
  • 修改 Dify 自带 Nginx 配置;
  • 使用云服务商负载均衡 HTTPS。

对于新手来说,比较简单的方式是使用 Caddy 或宝塔面板进行反向代理。将域名代理到服务器的 Dify 入口即可。

如果使用外部 Nginx,示例配置如下:

server {
    listen 80;
    server_name dify.example.com;

    location / {
        proxy_pass http://127.0.0.1:80;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

如果开启 HTTPS,则需要申请 SSL 证书,并将 443 流量转发到 Dify 服务。


十三、常用管理命令

1. 启动服务

cd /opt/dify/docker
sudo docker compose up -d

2. 停止服务

sudo docker compose down

3. 重启服务

sudo docker compose restart

4. 查看容器状态

sudo docker compose ps

5. 查看日志

查看全部日志:

sudo docker compose logs

查看 API 服务日志:

sudo docker compose logs api

实时查看日志:

sudo docker compose logs -f

6. 查看磁盘占用

docker system df

7. 清理无用镜像

docker image prune -a

注意:清理镜像前请确认不会影响当前运行环境。


十四、升级 Dify

Dify 更新比较频繁,建议定期关注官方 GitHub 发布说明。升级前务必备份数据。

1. 进入项目目录

cd /opt/dify

2. 拉取最新代码

sudo git pull

3. 进入 Docker 目录

cd docker

4. 拉取最新镜像

sudo docker compose pull

5. 重新启动

sudo docker compose up -d

6. 查看状态

sudo docker compose ps

升级完成后,建议进入页面检查应用、知识库、模型配置是否正常。


十五、数据备份建议

Dify 涉及数据库、上传文件、知识库向量数据等内容,生产环境必须做好备份。

1. 需要备份的内容

通常包括:

  • PostgreSQL 数据;
  • Redis 数据;
  • 上传文件;
  • 向量数据库数据;
  • .env 配置文件;
  • Docker volume 数据。

2. 简单备份方式

可以直接备份整个 Docker 部署目录和 Docker volume,但这种方式相对粗略。

更稳妥的方式是定期导出 PostgreSQL 数据,例如:

docker exec -it docker-db-1 pg_dump -U postgres dify > dify_backup.sql

容器名称可能因版本不同而变化,可以先执行:

docker ps

找到 PostgreSQL 容器名称后再执行备份。

3. 备份 .env

.env 中包含系统密钥、数据库密码等重要内容,务必单独保存:

cp /opt/dify/docker/.env /opt/dify_env_backup.env

十六、常见问题与解决方法

问题一:docker compose up -d 拉取镜像很慢

原因通常是服务器访问 Docker Hub 较慢。可以尝试:

  • 更换网络环境;
  • 配置 Docker 镜像加速;
  • 使用云服务器同区域镜像源;
  • 多执行几次拉取命令。
sudo docker compose pull

问题二:访问 IP 打不开页面

可以按以下顺序排查:

  1. 检查容器是否正常运行:
sudo docker compose ps
  1. 检查服务器防火墙是否开放 80 端口:
sudo ufw status

如未开放:

sudo ufw allow 80
sudo ufw allow 443
  1. 检查云服务器安全组是否放行 80 / 443 端口。

  2. 查看 Nginx 日志:

sudo docker compose logs nginx

问题三:容器启动失败

查看日志:

sudo docker compose logs -f

重点关注:

  • 数据库连接失败;
  • 端口被占用;
  • 环境变量配置错误;
  • 镜像拉取失败;
  • 磁盘空间不足。

如果是端口被占用,可以查看:

sudo lsof -i:80

或者:

sudo netstat -tulnp | grep 80

问题四:模型调用失败

常见原因包括:

  • API Key 填写错误;
  • 模型供应商接口地址错误;
  • 服务器无法访问模型服务;
  • 账户余额不足;
  • 模型名称填写不正确;
  • 代理配置错误。

可以先在服务器中测试网络:

curl https://api.openai.com

如果无法访问,需要配置代理或使用可访问的模型服务。

问题五:知识库无法索引

可能原因包括:

  • 未配置 Embedding 模型;
  • 文档格式不支持;
  • 文档过大;
  • 向量数据库异常;
  • Worker 容器未正常运行。

可以查看 worker 日志:

sudo docker compose logs worker

十七、生产环境部署建议

如果你准备将 Dify 用于团队或企业生产环境,建议注意以下几点:

  1. 修改默认密码和密钥

    包括数据库密码、Redis 密码、SECRET_KEY 等。

  2. 开启 HTTPS

    避免 API Key、登录凭证等敏感信息明文传输。

  3. 配置防火墙

    只开放必要端口,不要将数据库、Redis 等端口直接暴露到公网。

  4. 定期备份

    至少每日备份数据库和关键配置文件。

  5. 监控资源使用

    知识库、文档解析、工作流执行可能消耗较多 CPU 和内存。

  6. 谨慎升级

    升级前阅读 Release Notes,并先备份数据。

  7. 限制注册和访问权限

    如果是内部系统,建议通过内网、VPN 或统一身份认证进行访问控制。

  8. 合理配置模型额度

    大模型调用会产生成本,建议对应用调用量进行监控和限制。


十八、总结

通过本文的步骤,我们已经完成了 Dify 的一键部署流程。整体来看,Dify 使用 Docker Compose 部署非常方便,核心流程可以概括为:

安装 Docker
克隆 Dify 仓库
复制并修改 .env
执行 docker compose up -d
访问服务器 IP 或域名
初始化管理员账户
配置模型供应商
创建 AI 应用

对于个人开发者来说,Dify 可以帮助你快速搭建 ChatGPT 类应用、知识库问答系统、文本生成工具和自动化工作流。对于企业团队来说,Dify 则可以作为内部 AI 应用开发平台,用来沉淀 Prompt、知识库、工作流和模型调用能力。

如果你只是想快速体验,按照本文默认配置即可完成部署;如果你要用于生产环境,则建议进一步完善 HTTPS、安全策略、备份策略、监控方案和权限管理。

Dify 的优势不只是“能部署”,更重要的是它让大模型应用从简单调用 API 走向可管理、可编排、可发布、可持续迭代的工程化阶段。只要掌握了本文中的部署方法,你就可以在自己的服务器上拥有一个完整的 AI 应用开发平台。

目录结构
全文