dify部署

<h2>dify镜像</h2>
Dify 的 Docker 镜像地址由 langgenius 组织维护,主要镜像包括:
<h3>Dify-Web(前端服务):</h3>
langgenius/dify-web:0.15.3(最新稳定版)6

其他版本如 0.15.2 也有使用 1
<h3>Dify-API(后端服务):</h3>
langgenius/dify-api:0.15.3 6

早期版本如 0.6.16 和 0.7.0(部分版本可能未发布)45
<h3>其他依赖组件(可选安装):</h3>
在 Dify 的部署中,dify-sandbox 和 dify-plugin-daemon 并非必须安装,但它们的用途和你的需求相关。以下是详细说明和操作建议:
<h4>langgenius/dify-sandbox:0.2.10(沙箱环境)</h4>
用于运行 自定义代码工具(Python 代码执行),例如在 Dify 的“工作流”中执行用户提交的 Python 脚本。

如果不使用代码工具或工作流功能,可以不安装。

注意:沙箱涉及安全隔离,生产环境需谨慎评估是否启用。
<h4>langgenius/dify-plugin-daemon:0.0.2-local(插件守护进程)</h4>
用于支持 插件系统(如联网搜索、API 调用等插件)。

如果不使用插件功能,可以不安装。
<h3>镜像拉取方式</h3>
由于 Docker 官方镜像源可能受限,建议使用国内镜像加速源(如阿里云、中科大等)进行拉取,例如:
<pre><code class="language-bash">docker pull langgenius/dify-web:0.15.3 --registry-mirror=https://docker.1ms.run</code></pre>
或修改 Docker 配置文件 /etc/docker/daemon.json 添加多个镜像源 13。

如需离线部署,可先导出镜像再导入目标环境 16。
<h2>部署步骤</h2>
<h3>部署 dify操作步骤</h3>
包含 dify-sandbox 和 dify-plugin-daemon 的完整 docker-compose.yml 配置,适用于需要 代码执行(Python工具) 和 插件功能 的场景。以下是操作流程:

(1) 编写 docker-compose.yml

创建一个 docker-compose.yml 文件,仅包含必要服务(Web + API + 数据库)。示例:
<pre><code class="language-yaml">version: '3'

services:

前端服务

web:
image: langgenius/dify-web:0.15.3
ports:

  • "80:3000"
    depends_on:
  • api
    environment:
  • API_URL=http://api:5001 # 后端API地址
  • SOCKET_URL=ws://api:5001 # WebSocket地址(用于实时通信)

    后端服务

    api:
    image: langgenius/dify-api:0.15.3
    ports:

  • "5001:5001"
    volumes:
  • ./storage:/app/storage # 持久化数据(知识库、日志等)
    environment:
  • DB_TYPE=mysql
  • DB_HOST=mysql
  • DB_USER=root
  • DB_PASSWORD=dify_password # 替换为你的数据库密码
  • DB_NAME=dify
  • REDIS_HOST=redis
  • SANDBOX_URL=http://sandbox:8356 # 沙箱服务地址
  • PLUGIN_DAEMON_URL=http://plugin-daemon:8769 # 插件守护进程地址
    depends_on:
  • mysql
  • redis
  • sandbox
  • plugin-daemon

    数据库(MySQL)

    mysql:
    image: mysql:8.0
    volumes:

  • ./mysql_data:/var/lib/mysql # 持久化数据库文件
    environment:
  • MYSQL_ROOT_PASSWORD=dify_password
  • MYSQL_DATABASE=dify

    Redis(缓存和队列)

    redis:
    image: redis:6-alpine

    沙箱服务(代码执行)

    sandbox:
    image: langgenius/dify-sandbox:0.2.10
    ports:

  • "8356:8356"
    volumes:
  • ./sandbox_data:/var/tmp # 沙箱临时文件存储

    插件守护进程

    plugin-daemon:
    image: langgenius/dify-plugin-daemon:0.0.2-local
    ports:

  • "8769:8769"
    environment:
  • API_HOST=api:5001 # 指向后端API

共享网络

networks:
default:
name: dify-network</code></pre>
<h3>关键配置说明</h3>
<ol>
<li>
沙箱 (sandbox)
提供 Python 代码执行环境,通过 SANDBOX_URL 与后端通信。
默认端口 8356,需确保不被防火墙拦截。
</li>
<li>
插件守护进程 (plugin-daemon)
管理插件(如联网搜索、API调用等),通过 PLUGIN_DAEMON_URL 与后端通信。
默认端口 8769。
</li>
</ol>
3.依赖服务
MySQL:存储应用数据(用户、知识库等)。
Redis:处理任务队列和缓存。

4.数据持久化
./storage:后端生成的文件(上传的文档、日志等)。
./mysql_data:数据库文件。
./sandbox_data:沙箱临时文件(可选)。
<h3>启动服务</h3>
1.将上述配置保存为 docker-compose.yml。

2.运行以下命令启动所有服务:
<pre><code class="language-bash">docker-compose up -d</code></pre>
<h3>访问 Dify</h3>
前端地址:<a href="http://localhost(或服务器">http://localhost(或服务器</a> IP)
默认管理员账号:admin@dify.ai,密码:password(首次登录需修改)。
<h3>可选配置反向代理:</h3>
建议使用 Nginx/Apache 配置 HTTPS 和域名。
<h3>可选数据备份:</h3>
定期备份 ./storage 和 ./mysql_data 目录。
<h2>总结</h2>
必须组件:dify-web + dify-api + 数据库(MySQL/PostgreSQL)。
可选组件:
dify-sandbox:仅需代码执行时安装。
dify-plugin-daemon:仅需插件功能时安装。

按需选择即可!

发表评论

邮箱地址不会被公开。 必填项已用*标注