开源 LLM 应用开发平台 Dify 全栈部署指南(Docker Compose 方案)

开源 LLM 应用开发平台 Dify 全栈部署指南(Docker Compose 方案)

一、部署环境要求与前置检查

1.1 硬件最低配置

组件要求
CPU双核及以上
内存4GB 及以上
磁盘空间20GB 可用空间

1.2 系统兼容性验证

  • ✅ 官方支持系统:
    • Ubuntu 20.04/22.04 LTS
    • Debian 11/12
  • ❗ 注意事项:
    • 推荐使用纯净系统环境
    • 避免与其他占用 80/443 端口的服务冲突

1.3 安装验证

部署成功查看:

在这里插入图片描述

浏览器访问:

在这里插入图片描述

二、容器化部署全流程

2.1 容器运行时安装

Docker 引擎部署
# 卸载旧版本(全新安装可跳过)
sudo apt-get remove docker docker-engine docker.io containerd runc# 安装依赖工具集
sudo apt-get update && sudo apt-get install -y \ca-certificates \curl \gnupg \lsb-release# 添加官方 GPG 密钥
sudo mkdir -m 0755 -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg# 设置稳定版仓库
echo \"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null# 安装 Docker CE
sudo apt-get update && sudo apt-get install -y \docker-ce \docker-ce-cli \containerd.io \docker-buildx-plugin \docker-compose-plugin
Docker Compose 安装
# 获取最新稳定版(示例版本号可替换)
COMPOSE_VERSION=$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep 'tag_name' | cut -d\" -f4)
sudo curl -L "https://github.com/docker/compose/releases/download/${COMPOSE_VERSION}/docker-compose-$(uname -s)-$(uname -m)" \-o /usr/local/bin/docker-compose# 权限配置
sudo chmod +x /usr/local/bin/docker-compose# 验证安装
docker-compose --version

2.2 部署架构解析

Dify 的 Docker 部署包含以下核心组件:

Web 前端
API 服务
PostgreSQL
Redis
模型服务

2.3 服务部署实战

步骤 1:获取部署清单
git clone -b main https://github.com/langgenius/dify.git && cd dify/docker# 用户推荐使用镜像源:需要gitee账号
# git clone https://gitee.com/langgenius/dify.git
步骤 2:环境配置
cp .env.example .env# 关键配置项建议修改
sed -i 's/HTTP_PORT=80/HTTP_PORT=5080/g' .env      # 避免端口冲突
sed -i 's/SUPERADMIN_EMAIL=.*/SUPERADMIN_EMAIL=admin@yourdomain.com/g' .env
步骤 3:配置镜像源
 #配置镜像加速源sudo nano /etc/docker/daemon.json"https://docker.1ms.run","https://hub.rat.dev","https://docker.1panel.live","https://hub.rat.dev","https://proxy.1panel.live","https://ghcr.nju.edu.cn","https://docker.registry.cyou","https://dockercf.jsdelivr.fyi","https://docker.rainbond.cc","https://registry.cn-shenzhen.aliyuncs.com","https://dockertest.jsdelivr.fyi","https://mirror.aliyuncs.com","https://mirror.baidubce.com","https://docker.mirrors.ustc.edu.cn","https://docker.mirrors.sjtug.sjtu.edu.cn","https://mirror.iscas.ac.cn","https://docker.nju.edu.cn","https://docker.m.daocloud.io","https://dockerproxy.com","https://docker.jsdelivr.fyi","https://docker-cf.registry.cyou"sudo systemctl daemon-reloadsudo systemctl restart docker
步骤 4:启动服务集群
# 首次启动建议观察日志:下载速度可能比较慢
docker-compose up -d --build && docker-compose logs -f --tail=100

三、部署验证与初始化

3.1 服务状态检查

# 预期输出示例
docker-compose psroot@wh-VMware-Virtual-Platform:~/dify/docker# docker-compose ps
NAME                     IMAGE                                       COMMAND                  SERVICE             CREATED             STATUS                    PORTS
docker-api-1             langgenius/dify-api:1.1.3                   "/bin/bash /entrypoi…"   api                 21 minutes ago      Up 21 minutes             5001/tcp
docker-db-1              postgres:15-alpine                          "docker-entrypoint.s…"   db                  21 minutes ago      Up 21 minutes (healthy)   5432/tcp
docker-nginx-1           nginx:latest                                "sh -c 'cp /docker-e…"   nginx               21 minutes ago      Up 21 minutes    

3.2 初始化管理员账户

  1. 访问 http://<your-server-ip>:80
  2. 按提示填写:
    • 组织名称
    • 管理员邮箱
    • 密码(复杂度要求:至少8位含大小写字母和数字)

四、高阶配置指南

4.1 反向代理配置(可选)

#以上是全量安装已配置好nginx,可无需配置
server {listen 80;server_name dify.yourdomain.com;location / {proxy_pass http://localhost:5080;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;# WebSocket 支持proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";}
}

4.2 数据持久化配置(可选)

默认数据存储路径:

  • PostgreSQL:/var/lib/docker/volumes/dify_pg-data/_data
  • Redis:/var/lib/docker/volumes/dify_redis-data/_data

建议绑定到自定义目录:

# 修改 docker-compose.yml
services:postgres:volumes:- /data/dify/postgres:/var/lib/postgresql/dataredis:volumes:- /data/dify/redis:/data

五、故障排查手册

5.1 常见问题处理

问题 1:容器启动失败

✅ 排查步骤:

  1. 查看日志:docker-compose logs <service-name>
  2. 检查端口冲突:ss -tulnp | grep ':80'
  3. 验证依赖服务:确保 PostgreSQL/Redis 正常启动
问题 2:无法访问安装页面

✅ 解决方案:

  1. 检查防火墙设置:
    sudo ufw allow 5080/tcp
    
  2. 验证服务绑定地址:
    docker exec dify-web netstat -ant | grep 3000
    

六、维护与升级

6.1 服务更新流程

# 拉取最新代码
git pull origin main# 重建服务
docker-compose down && docker-compose up -d --build

6.2 数据备份方案

# PostgreSQL 备份
docker exec dify-db pg_dump -U postgres dify > dify_backup_$(date +%Y%m%d).sql# Redis 备份
docker exec dify-redis redis-cli save
cp /data/dify/redis/dump.rdp ./redis_backup_$(date +%Y%m%d).rdb

技术总结

本文详细阐述了 Dify 开源平台的容器化部署方案,具有以下技术亮点:

  1. 全栈隔离部署:通过 Docker Compose 实现服务组件隔离,确保环境一致性
  2. 生产级配置:包含反向代理、数据持久化等企业级部署方案
  3. 可观测性增强:提供完整的日志查看与状态监控命令
  4. 大陆优化方案:针对国内用户提供镜像加速配置建议

建议将本文所述方案部署于测试环境验证后,再迁移至生产环境。更多高级配置请参考 Dify 官方文档。

如果本教程帮助您解决了问题,请点赞❤️收藏⭐支持!欢迎在评论区留言交流技术细节!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/77391.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Trae AI 保姆级教程:从安装到调试全流程指南

Trae AI 保姆级教程&#xff1a;从安装到调试全流程指南 Trae AI 是字节跳动推出的一款 AI 原生集成开发环境(IDE)&#xff0c;专为中文开发者设计&#xff0c;集成了 Claude 3.5 和 GPT-4o 等先进 AI 模型&#xff0c;支持通过自然语言交互实现代码生成、项目构建与调试。本教…

博物馆小程序怎么做?从0到1打造数字化文化窗口

博物馆小程序怎么做&#xff1f;从0到1打造数字化文化窗口 一、行业痛点&#xff1a;传统博物馆的数字化困局 在数字化浪潮下&#xff0c;传统博物馆普遍面临三大挑战&#xff1a; ​​客流受限​​&#xff1a;线下接待能力有限&#xff0c;难以触达更广泛人群 ​​互动单一…

基于 Netty 框架的 Java TCP 服务器端实现,用于启动一个 TCP 服务器来处理客户端的连接和数据传输

代码&#xff1a; package com.example.tpson_tcp;import io.netty.bootstrap.ServerBootstrap; import io.netty.channel.ChannelFuture; import io.netty.channel.ChannelInitializer; import io.netty.channel.ChannelOption; import io.netty.channel.EventLoopGroup; imp…

深入解析原生鸿蒙中的 RN 日志系统:从入门到精通!

全文目录&#xff1a; 开篇语&#x1f4d6; 目录&#x1f3af; 前言&#xff1a;鸿蒙日志系统究竟有多重要&#xff1f;&#x1f6e0;️ 鸿蒙 RN 日志系统的基础结构&#x1f4dc; 1. 日志的作用⚙️ 2. 日志分类 &#x1f527; 如何在鸿蒙 RN 中使用日志系统&#x1f58b;️ 1…

算法训练营Day01(二分 双指针)

704. 二分查找 - 力扣&#xff08;LeetCode&#xff09; 关于二分查找 最重要的是要处理好边界问题&#xff0c;每次写完边界可以带入特殊值进行测试确定区间的不变量是什么&#xff1f;比如区间的左闭右闭&#xff0c;和左闭右开&#xff0c;每次二分完的新区间&#xff0c;一…

shadcn 使用步骤与注意点

目录 一、shadcn ui 二、使用流程 1.安装 2.颜色与主题 3.引用blocks 三、使用注意点 四、推荐搭配工具 五、总结 一、shadcn ui 官网&#xff1a;Build your component library - shadcn/ui 为何选择它&#xff1f;因为它是一个基于 Tailwind CSS Radix UI 的组件集…

STM32CubeMX-H7-12-IIC读写MPU6050模块(中)-MPU6050模块详解以及软件IIC驱动

前言 上一篇我们已经完成对IIC代码基本框架的编写&#xff0c;以及获取MPU6050的ID&#xff0c;接下来我们逐一分析这个模块的功能&#xff0c;并用IIC驱动 建议看完上一篇再来看这篇 MPU6050寄存器介绍 1.电源管理寄存器&#xff08;PWR_MGMT_1&#xff0c;地址&#xff1a;0…

量子计算模拟中的GPU加速:从量子门操作到Shor算法实现

一、量子模拟的算力困境与GPU破局 量子计算模拟面临‌指数级增长的资源需求‌&#xff1a;n个量子比特的态向量需要2^n个复数存储空间。当n>30时&#xff0c;单机内存已无法承载&#xff08;1TB需求&#xff09;。传统CPU模拟器&#xff08;如Qiskit的Aer&#xff09;在n28…

spring mvc 异常处理中@RestControllerAdvice 和 @ControllerAdvice 对比详解

RestControllerAdvice 和 ControllerAdvice 对比详解 1. 基本概念 注解等效组合核心作用ControllerAdviceComponent RequestMapping&#xff08;隐式&#xff09;定义全局控制器增强类&#xff0c;处理跨控制器的异常、数据绑定或全局响应逻辑。RestControllerAdviceControll…

JavaScript的回调函数:异步编程的基石

引言 在JavaScript的世界里&#xff0c;回调函数是一种强大而基础的编程模式&#xff0c;它是异步编程的核心概念之一。随着Web应用程序变得越来越复杂&#xff0c;理解和掌握回调函数变得尤为重要。本文将深入探讨JavaScript回调函数的概念、应用场景以及最佳实践。 什么是回…

测试用例 [软件测试 基础]

目录 测试用例 1. 概念 1.1 什么是测试用例 1.2 什么是要素 1.3 为什么需要测试用例 2. 设计测试用例的万能公式 2.1 常规思维 逆向思维 发散性思维 2.2 万能公式 3. 设计测试用例的方法 3.1 基于需求的设计方法 3.2 具体的设计方法 3.3 更多用例练习 测试用例 …

Jupyter notebook定制字体

一、生成配置文件 运行Anaconda Powershell Prompt终端&#xff0c;输入下面一行代码&#xff1a; jupyter notebook --generate-config 将生成文件“C:\Users\XXX\.jupyter\jupyter_notebook_config.py”&#xff0c;XXX为计算机账户名字。 二、修改配置文件 c.NotebookAp…

miniconda安装R语言图文教程(详细步骤)

本篇教程介绍,如何在Windows使用miniconda安装R语言。 一、创建1个conda 虚拟环境 # 创建虚拟环境 conda create -n r_env # 激活虚拟环境 conda activate r_env二、安装 R 语言 conda install -c r r-ggplot2三、运行测试 检查安装: 输入 R 进入 R 的交互式命令行,检查是…

【day1】AI软件测试学习笔记

以下为整理的 AI软件测试学习笔记&#xff0c;涵盖性能测试工具链、AI大模型应用及开发实践&#xff0c;分为四大模块&#xff1a; 一、性能测试工具链与数据分析 1. 工具链整合效果 JMeter InfluxDB Grafana JMeter压测数据存储至云端InfluxDB&#xff0c;实现分布式压测和…

WPF 资源加载问题:真是 XAML 的锅吗?

你的观察很敏锐&#xff01;确实&#xff0c;在 WPF 项目中&#xff0c;.cs 文件主要负责逻辑实现&#xff0c;而资源加载的问题通常跟 XAML&#xff08;以及它背后的 .csproj 配置&#xff09;关系更大。我会围绕这个观点&#xff0c;用 CSDN 博客风格详细解释一下 .cs、XAML …

C++17模板编程与if constexpr深度解析

一、原理深化 1.1 模板编程 1.1.1 编译器如何处理模板&#xff08;补充&#xff09; 模板的实例化机制存在两种模式&#xff1a; 隐式实例化&#xff1a;编译器在遇到模板具体使用时自动生成代码&#xff0c;可能导致多翻译单元重复实例化&#xff0c;增加编译时间。显式实…

408 计算机网络 知识点记忆(6)

前言 本文基于王道考研课程与湖科大计算机网络课程教学内容&#xff0c;系统梳理核心知识记忆点和框架&#xff0c;既为个人复习沉淀思考&#xff0c;亦希望能与同行者互助共进。&#xff08;PS&#xff1a;后续将持续迭代优化细节&#xff09; 往期内容 408 计算机网络 知识…

MySQL学习笔记十四

第十六章创建高级联结 16.1使用表别名 输入&#xff1a; SELECT CONCAT(vend_name,(,RTRIM(vend_country),)) AS vend_title FROM vendors ORDER BY vend_name; 输出&#xff1a; 输入&#xff1a; SELECT cust_name, cust_contact FROM customers AS c, orders AS o, or…

Spring MVC 框架 的核心概念、组件关系及流程的详细说明,并附表格总结

以下是 Spring MVC 框架 的核心概念、组件关系及流程的详细说明&#xff0c;并附表格总结&#xff1a; 1. 核心理念 Spring MVC 是基于 MVC&#xff08;Model-View-Controller&#xff09;设计模式 的 Web 框架&#xff0c;其核心思想是 解耦&#xff1a; Model&#xff1a;数…

Android里蓝牙使用流程以及问题详解

一、基础流程 请简述 Android 蓝牙开发的基本流程 1. 权限处理&#xff1a;动态申请蓝牙和定位权限&#xff08;注意Android 12新权限&#xff09; 2. 初始化蓝牙适配器&#xff1a;通过BluetoothManager获取BluetoothAdapter 3. 设备发现&#xff1a;- 注册BroadcastReceive…