以下根據(jù)回憶整理,供日后翻閱
一、安裝wsl子系統(tǒng) #替代vmware虛擬機(jī),gpu性能會(huì)更高
1.打開windows功能
在win10里,控制面板--》程序-->啟用或關(guān)閉windows功能--》勾選 hyper-V、適用于windows的linux子系統(tǒng)、虛擬機(jī)平臺(tái)(大概叫這些名,本人win11沒有勾選后兩個(gè))
2.微軟商店里安裝自己喜歡的linux(非必須,執(zhí)行運(yùn)行wsl可進(jìn)入linux命令行),如下圖:

5.png
執(zhí)行wsl --install (默認(rèn)安裝ubuntu,網(wǎng)速慢建議直接微軟商店安裝),本人微軟商店安裝winch wsl(即archlinux),以下均以archlinux方式安裝,可裝linux如下圖

6.png
3.修改root密碼
# windows命令提示符
wsl --user root
# wsl linux內(nèi)(后續(xù)簡(jiǎn)稱wsl)
passwd #修改密碼
4.wsl內(nèi)安裝docker (root用戶)
# 1.修改國(guó)內(nèi)源為清華源
cat <<! > /etc/pacman.d/mirrorlist
Server = https://mirrors.tuna.Tsinghua.edu.cn/archlinux/$repo/os/$arch
!
# 2.更新全部組件
pacman -Syu
# 3.安裝必要組件
pacman -S git docker docker-compose lvm2 # 不用lvm分區(qū)的話,lvm2非必須
# 4.掛載ext4硬盤(需要一塊獨(dú)立硬盤或者創(chuàng)建虛擬磁盤才行,如直接使用NTFS,性能下降90%)
# 虛擬磁盤手工創(chuàng)建方法:
# 右鍵點(diǎn)開始菜單--》磁盤管理--》選中分區(qū)--》操作--》創(chuàng)建VHD,重啟電腦(或者其他可以讓磁盤解除占用的方法)
# 執(zhí)行下面掛載磁盤的命令
# 下面這條命令在windows命令提示符下運(yùn)行可創(chuàng)建150G動(dòng)態(tài)拓展的虛擬磁盤(本人使用獨(dú)立硬盤)
# New-VHD -Dynamic -SizeBytes 150GB -BlockSizeBytes 1MB -Path "E:\wsl_disk.vhdx"
# 右鍵VHDX文件→「屬性」→「安全」→「編輯」。添加Authenticated Users組,勾選「完全控制」權(quán)限。
# 掛載磁盤:wsl --mount --vhd "E:\wsl_disk.vhdx" --bare # 如果成功,下面命令都忽略;如果不識(shí)別命令,則檢查wsl是否不是wsl2 ,wsl -l -v 可查看wsl版本
# wsl --update #升級(jí)到wsl2 ,執(zhí)行wsl --set-version <發(fā)行版> 2 為當(dāng)前安裝的linux子系統(tǒng)切換到wsl2
# windows命令提示符操作(管理員權(quán)限)
wmic diskdrive list brief # 從結(jié)果找出磁盤號(hào)
wmic partition list brief # 從結(jié)果找出分區(qū)號(hào)
wsl --mount \\.\PHYSICALDRIVE0 --partition 0 --bare #掛載
# wsl linux子系統(tǒng)操作
lsblk #查看磁盤 找到設(shè)備 如/dev/sdb
cfdisk 分區(qū) # gpt格式,分為1個(gè)區(qū) /dev/sdb1
# lvm分區(qū) (不用lvm可忽略)
pvcreate /dev/sdb1 #創(chuàng)建pv
vgcreate vg /dev/sdb1 # 創(chuàng)建vg
lvcreate -L +100%FREE vg -n data # 這里只分一個(gè)區(qū)名為/dev/mapper/vg-data
# 格式化ext4
mkfs.ext4 /dev/mapper/vg-data # 沒有l(wèi)vm的用/dev/sdb1
# 掛載到/data
mkdir /data
mount /dev/mapper/vg-data /data
# 5.為docker配置文件指定data-root 和國(guó)內(nèi)源
mkdir /lib/systemd/system/docker.service.d
cat <<! > /lib/systemd/system/docker.service.d/override.conf #直接修改/lib/systemd/system/docker.service文件也可以,這里override.conf是為了防止archlinux滾動(dòng)更新時(shí)覆蓋掉原文件
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --data-root=/data/dockerdata --registry-mirror=https://docker.m.daocloud.io
!
# 6.啟動(dòng)docker
systemctl start docker
5.安裝dify (正題才是這里,前面其實(shí)都可忽略,獲取源碼后其實(shí)就兩步,超級(jí)簡(jiǎn)單,5-10分鐘吧,看網(wǎng)速)
# 1.拉取dify源碼
mkdir /data/git
cd /data/git
# 注意一下,這里gitclone.com做了國(guó)內(nèi)加速
git clone https://gitclone.com/github.com/langgenius/dify.git
# 2.設(shè)置環(huán)境變量
cd /data/git/dify/docker
cp .env.example .env # 隱藏文件,生成環(huán)境變量,修改端口在.env里改,修改EXPOSE_NGINX_PORT=8001
# 3.部署dify
docker compose up -d # 等待拉取鏡像和啟動(dòng)即可
# 啟動(dòng)完后是這樣的:
[+] Running 12/12
? Network docker_default Created 0.0s
? Network docker_ssrf_proxy_network Created 0.0s
? Container docker-sandbox-1 Started 1.5s
? Container docker-weaviate-1 Started 1.7s
? Container docker-db-1 Healthy 5.0s
? Container docker-web-1 Started 1.5s
? Container docker-ssrf_proxy-1 Started 1.8s
? Container docker-redis-1 Started 1.4s
? Container docker-worker-1 Started 1.3s
? Container docker-api-1 Started 1.4s
? Container docker-plugin_daemon-1 Started 4.5s
? Container docker-nginx-1 Started 1.6s
# 查看容器運(yùn)行
docker compose ps
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
docker-api-1 langgenius/dify-api:1.2.0 "/bin/bash /entrypoi…" api 41 minutes ago Up 41 minutes 5001/tcp
docker-db-1 postgres:15-alpine "docker-entrypoint.s…" db 41 minutes ago Up 41 minutes (healthy) 5432/tcp
docker-nginx-1 nginx:latest "sh -c 'cp /docker-e…" nginx 41 minutes ago Up 41 minutes 0.0.0.0:443->443/tcp, [::]:443->443/tcp, 0.0.0.0:8001->80/tcp, [::]:8001->80/tcp
docker-plugin_daemon-1 langgenius/dify-plugin-daemon:0.0.7-local "/bin/bash -c /app/e…" plugin_daemon 41 minutes ago Up 41 minutes 0.0.0.0:5003->5003/tcp, [::]:5003->5003/tcp
docker-redis-1 redis:6-alpine "docker-entrypoint.s…" redis 41 minutes ago Up 41 minutes (healthy) 6379/tcp
docker-sandbox-1 langgenius/dify-sandbox:0.2.11 "/main" sandbox 41 minutes ago Up 41 minutes (healthy)
docker-ssrf_proxy-1 ubuntu/squid:latest "sh -c 'cp /docker-e…" ssrf_proxy 41 minutes ago Up 41 minutes 3128/tcp
docker-weaviate-1 semitechnologies/weaviate:1.19.0 "/bin/weaviate --hos…" weaviate 41 minutes ago Up 41 minutes
docker-web-1 langgenius/dify-web:1.2.0 "/bin/sh ./entrypoin…" web 41 minutes ago Up 41 minutes 3000/tcp
docker-worker-1 langgenius/dify-api:1.2.0 "/bin/bash /entrypoi…" worker 41 minutes ago Up 41 minutes 5001/tcp
6.進(jìn)入dify后臺(tái)
ip a #查看ip ,這里找到網(wǎng)卡eth0 ,ip為172.29.200.100
windows訪問(wèn)瀏覽器地址http://172.29.200.100:8001即可
注冊(cè)后界面舉例如下:

1.jpg

2.jpg

3.jpg

4.jpg