背景:單獨拆分前端出來部署,二開前后端
本文檔專注于 Dify Web 前端的部署流程和配置,適用于需要將項目部署到各種環境的運維人員和開發者。
1. 環境準備
1.1 部署環境要求
- Node.js >= 18.17.0
- Nginx 或其他Web服務器(生產環境推薦)
- Docker(可選,用于容器化部署)
1.2 部署前配置
在部署前,需要確定以下配置:
- 后端API服務地址
- 市場API服務地址(如果使用)
- 部署模式(獨立服務器、Docker等)
- 環境類型(測試、生產等)
2. 構建項目
2.1 獲取源碼
# 克隆倉庫
git clone https://github.com/langgenius/dify.git
cd dify/web# 安裝依賴
pnpm install
2.2 配置環境變量
在構建前配置正確的環境變量:
- 創建
.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