開源 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.pswp.cn/diannao/77391.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/77391.shtml
英文地址,請注明出處:http://en.pswp.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…