Dify Web 前端獨立部署指南(與后端分離,獨立部署)

背景:單獨拆分前端出來部署,二開前后端

本文檔專注于 Dify Web 前端的部署流程和配置,適用于需要將項目部署到各種環境的運維人員和開發者。

1. 環境準備

1.1 部署環境要求

  • Node.js >= 18.17.0
  • Nginx 或其他Web服務器(生產環境推薦)
  • Docker(可選,用于容器化部署)

1.2 部署前配置

在部署前,需要確定以下配置:

  1. 后端API服務地址
  2. 市場API服務地址(如果使用)
  3. 部署模式(獨立服務器、Docker等)
  4. 環境類型(測試、生產等)

2. 構建項目

2.1 獲取源碼

# 克隆倉庫
git clone https://github.com/langgenius/dify.git
cd dify/web# 安裝依賴
pnpm install

2.2 配置環境變量

在構建前配置正確的環境變量:

  1. 創建 .env.production 文件:
# API路徑配置
NEXT_PUBLIC_API_PREFIX=/console/api
NEXT_PUBLIC_PUBLIC_API_PREFIX=/api
NEXT_PUBLIC_MARKETPLACE_API_PREFIX=/marketplace/api
NEXT_PUBLIC_MARKETPLACE_URL_PREFIX=/marketplace# 版本配置
NEXT_PUBLIC_EDITION=SELF_HOSTED# 其他配置
NEXT_PUBLIC_SUPPORT_MAIL_LOGIN=false

2.3 執行構建

# 執行生產構建
pnpm build

構建結果將生成在:

  • .next/standalone - 獨立部署包
  • .next/static - 靜態資源文件

3. 部署方式

3.1 獨立服務器部署

3.1.1 準備文件
# 復制靜態資源到獨立部署包
cp -r .next/static .next/standalone/.next/static
cp -r public .next/standalone/public# 將整個 standalone 目錄復制到服務器
scp -r .next/standalone user@server:/path/to/deployment/
3.1.2 啟動服務

在服務器上運行:

cd /path/to/deployment/standalone
PORT=3000 HOSTNAME=0.0.0.0 node server.js

建議使用 PM2 等進程管理工具來管理服務:

# 使用PM2啟動并管理服務
npm install -g pm2
pm2 start server.js --name dify-web -- --port 3000 --hostna

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/897542.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/897542.shtml
英文地址,請注明出處:http://en.pswp.cn/news/897542.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

《蒼穹外賣》SpringBoot后端開發項目核心知識點整理(DAY1 to DAY3)

目錄 一、在本地部署并啟動Nginx服務1. 解壓Nginx壓縮包2. 啟動Nginx服務3. 驗證Nginx是否啟動成功: 二、導入接口文檔1. 黑馬程序員提供的YApi平臺2. YApi Pro平臺3. 推薦工具:Apifox 三、Swagger1. 常用注解1.1 Api與ApiModel1.2 ApiModelProperty與Ap…

大數據hadoop課程筆記

1.課程導入 柯潔 Alpha Go是人工智能領域的里程碑。 深度學習 大模型deepseek chatgpt 大模型 和 大數據 之間有著非常緊密的關系。可以說,大數據是大模型發展的基石,而大模型是大數據價值挖掘的重要工具。 https://youtu.be/nN-VacxHUH8?sifj7Ltk…

架構學習第八周--Kubernetes博客搭建

目錄 一、整體架構 二、部署MySQL主從 三、部署Redis哨兵 四、部署WordPress 五、注意事項 一、整體架構 本項目為在一主三從的Kubernetes集群上部署WordPress博客。因為WordPress部分容器版本自行集成Apache和PHP服務,因此在Kubernetes上部署WordPress只需提供…

Application.OnTime如何引用帶參數的過程

Application.OnTime方法本身并不直接支持傳遞參數給被調用的過程。不過,有幾種方法可以間接實現這個需求。 方法1:使用單引號表達式 使用單引號表達式來傳遞參數時,不能在表達式中使用變量,需要把參數值直接寫到表達中&am…

網絡安全之tcpdump工具

引言 wireshark是一款非常不錯的抓包軟件,在圖形化界面占絕對統治地位;盡管其在字符界面下有些許選項可供使用,但終究不太方便,下面我再介紹一款NB的終端抓包工具 tcpdump 1、混雜模式 linux的網卡有混雜模式一說,當開…

VC++ 獲取目的IP的路由

GetBestRoute 函數獲取到目的IP的最佳匹配路由。 第一個參數為:destination(目的IP) 第二個參數為:source(源IP) 通常不需要指定第二個source,這個一般用來匹配具體某一個網卡接口路由的&…

JavaScript 模塊 vs C# 類:封裝邏輯的兩種哲學

引言 在現代軟件開發中,模塊化和面向對象設計是代碼組織的核心課題。本文通過對比 JavaScript 模塊(ES6 Module)與 C# 類(Class)的實現方式,探討兩種語言在封裝邏輯時的不同哲學,并給出實際應用…

大模型在甲狀腺癌診療全流程預測及方案制定中的應用研究

目錄 一、引言 1.1 研究背景與意義 1.2 研究目的與創新點 1.3 國內外研究現狀 二、大模型預測甲狀腺癌的理論基礎 2.1 甲狀腺癌相關醫學知識 2.2 大模型技術原理與特點 2.3 大模型在醫療領域的應用潛力 三、術前預測方案 3.1 預測模型構建 3.1.1 數據收集與預處理 …

electron+vue+webview內嵌網頁并注入js

vue內嵌網頁可以使用iframe實現內嵌網頁,但是只能通過postMessage間接通信,在electron環境下,vue可以直接使用webview來內嵌網頁,支持 executeJavaScript、postMessage、send 等豐富的通信機制。 使用 webview的優勢 性能更佳&…

leetcode日記(95)將有序數組轉換為二叉搜索樹

很簡單,感覺自己越來越適應數據結構題目了…… /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : va…

【threejs實戰教程一】初識Three.js,場景Scene、相機Camera、渲染器Renderer

Three.js是一個基于WebGL的JavaScript 3D圖形庫,用于在瀏覽器中創建和顯示3D內容 Three.js中最基礎的三個關鍵要素就是場景Scene、相機Camera、渲染器Renderer 通俗一點理解,場景就是我們生活中一個具體的場景,比如自然環境中的一棟建筑&…

【leetcode hot 100 138】隨機鏈表的復制

解決一:回溯 哈希表 本題要求我們對一個特殊的鏈表進行深拷貝。如果是普通鏈表,我們可以直接按照遍歷的順序創建鏈表節點。而本題中因為隨機指針的存在,當我們拷貝節點時,「當前節點的隨機指針指向的節點」可能還沒創建&#xf…

木馬查殺之AST初識篇

一、AST 定義 抽象語法樹(Abstract Syntax Tree,AST)是源代碼的一種抽象表示形式。它以樹狀結構描述源代碼的語法構成,樹上的每個節點都對應源代碼中的一個語法結構或元素,像變量聲明、函數調用、表達式等。通過這種結…

vscode接入DeepSeek 免費送2000 萬 Tokens 解決DeepSeek無法充值問題

1. 在vscode中安裝插件 Cline 2.打開硅基流動官網 3. 注冊并登陸,邀請碼 WpcqcXMs 4.登錄后新建秘鑰 5. 在vscode中配置cline (1) API Provider 選擇 OpenAI Compatible ; (2) Base URL設置為 https://api.siliconflow.cn](https://api.siliconfl…

如何在保持安全/合規的同時更快地構建應用程序:DevOps 指南

隨著敏捷思維方式的興起,開發和 DevOps 團隊都面臨著持續的壓力,他們需要以迭代方式縮短發布周期并加快部署速度,以滿足不斷增長的客戶期望。隨著這種對速度的追求越來越強烈,維護安全性和合規性標準的復雜性也隨之增加。 當今 D…

Java中常見的PO、VO、DAO、BO、DO、DTO、POJO、Query類解釋(通俗易懂)

文章目錄 先點擊收藏和點贊,切勿白嫖,感謝一丶PO(persistant object)持久對象二丶VO(value object)值對象三丶DAO(Data Access Objects) 數據訪問對象接口四丶BO/DO(Business Object) 業務對象層五丶DTO(Data Transfer Object) 數據傳輸對象六丶POJO(Plain Old Java Objects) 簡…

Websocket的基本使用

1. WebSocket WebSocket 是一種在單個TCP連接上進行全雙工通信的協議,它在現代 Web 開發和網絡應用中發揮著重要作用。在 WebSocket 出現之前,實現服務器與客戶端實時通信主要采用輪詢Polling和長輪詢Long - Polling等技術。輪詢是客戶端定時向服務器發…

MySQL安裝及基礎操作

以下是基于MySQL 8.4.3版本(在Win11上)的安裝: 1.mysql的獲取 官網:www.mysql.com 也可以從Oracle官方進入:https://www.oracle.com/ 下載地址:https://downloads.mysql.com/archives/community/ 兩者…

基于6自由度搬運機器人完成單關節伺服控制實現的詳細步驟及示例代碼

以下是基于6自由度搬運機器人完成單關節伺服控制實現的詳細步驟及示例代碼: 1. 系統概述 單關節伺服控制是指對機器人的單個關節進行精確的位置、速度或力矩控制。在6自由度搬運機器人中,每個關節通常由伺服電機驅動,通過反饋傳感器&#x…

虛擬機新掛載磁盤后磁盤無法使用ssh問題 Permission denied (publickey).

在給vmware虛擬機掛載磁盤后再新磁盤目錄里面使用ssh拉取代碼一直報錯: Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. manifests: 虛擬機可以添加硬盤,…