分類彙整: Dify

Dify 安裝

https://ithelp.ithome.com.tw/articles/10360064

git clone https://github.com/langgenius/dify.git

先到 Docker 的官網裝好 docker,將 Dify 複製到你的裝置中

將 dify 複製到你的任何目錄底下git clone https://github.com/langgenius/dify.git

進到 dify/docker 中,這邊放了所有和 docker 有關的設定
cd dify/docker

創建環境檔案 (.env) 這邊直接複製他的範例即可
cp .env.example .env
這邊 Dify 有 nginx 的 container,會將服務開在我們電腦的 80 port 和 443 port (如果有啟動 https),如果你不想開在這些 port 或者電腦這些 port 已經被使用了可以自行修改 .env
# HTTP port NGINX_PORT=80
# 這邊改成你想要的 port
# ------------------------------
# Docker Compose Service Expose Host Port Configurations
# ------------------------------
EXPOSE_NGINX_PORT=80
# 這邊也要改

啟動 docker compose
docker compose --project-name dify up -d # 這邊的 -d 是背景執行的意思 -p 命名 DockerName

注意 新增多個 Dify 需要設定 DockerName
docker compose
docker compose --project-name dockername up -d

5003 port 也需要修改
PLUGIN_DEBUGGING_PORT=5003
EXPOSE_PLUGIN_DEBUGGING_PORT=5003

不使用 NGINX 並使用 Apache proxy 至 Dify
啟用 Apache 反向代理模組
sudo a2enmod proxy proxy_http proxy_wstunnel headers rewrite
sudo systemctl restart apache2

docker-compose.yamlnginx: 區塊註解。

或保留,但改 EXPOSE_NGINX_PORTEXPOSE_NGINX_SSL_PORT 至高位埠,Apache 反代到該埠。

services:
web:
ports:
– “3000:3000”
api:
ports:
– “5001:5001”


/etc/apache2/sites-available/dify-ssl.conf

<VirtualHost *:8443>
ServerName xxxx.com.tw
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/xxxxx.com.tw/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/xxxxx.com.tw/privkey.pem
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
#Include /etc/letsencrypt/options-ssl-apache.conf

# Web 前端(React,含 websocket)
ProxyPreserveHost On
RequestHeader set X-Forwarded-Proto "https"
# (1) Dify API:必須寫在最前面,避免被根路徑蓋掉
ProxyPass        /console/api/ http://127.0.0.1:5001/console/api/ retry=0
ProxyPassReverse /console/api/ http://127.0.0.1:5001/console/api/

# (2) Dify Web Frontend (React,預設 3000)
ProxyPass / http://127.0.0.1:3000/
ProxyPassReverse / http://127.0.0.1:3000/
ProxyPass /socket.io/ http://127.0.0.1:3000/socket.io/ retry=0
ProxyPassReverse /socket.io/ http://127.0.0.1:3000/socket.io/



# 可選:強制將 http 轉 https
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

ErrorLog  ${APACHE_LOG_DIR}/dify_ssl_error.log
CustomLog ${APACHE_LOG_DIR}/dify_ssl_access.log combined
</VirtualHost>

 啟用站點並重載
sudo a2ensite dify-ssl.conf
sudo systemctl reload apache2