1 2 3
| git clone https://github.com/langgenius/dify.git cd dify/docker cp .env.example .env
|
docker/nginx/ssl/ 放入你自己的域名证书
.env开启https
1 2
| NGINX_HTTPS_ENABLED=true TOP_K_MAX_VALUE=30 // 这项目是topk也要设置大一点
|
在后台启动 docker-compose.yml 中定义的所有容器服务。
1 2
| docker compose up -d docker compose ps
|
无需配置域名,解析到服务器,直接访问域名打开dify。
如果需要修改nginx端口,修改.env文件的
1 2
| EXPOSE_NGINX_PORT=80 EXPOSE_NGINX_SSL_PORT=443
|
编辑 .env 文件中的环境变量值。需要重新启动 Dify:
1 2
| docker compose down docker compose up -d
|
更新 Dify:
1 2 3 4 5
| cd dify/docker docker compose down git pull origin main docker compose pull docker compose up -d
|
附docker命令:
docker exec -it docker-web-1 sh #进入docker-web-1容器
exit # 退出容器
替换iframe的Powered by Logo
1
| cd /root/dify/web/public/logo
|
放入自己的logo.png和logo.svg
用命令替换掉:
1 2 3 4 5
| for file in *.svg; do if [ "$file" != "logo.svg" ]; then cp -f logo.svg "$file" fi done
|
1 2 3 4 5
| for file in *.png; do if [ "$file" != "logo.png" ]; then cp -f logo.png "$file" fi done
|
cd ../
docker cp ./logo docker-web-1:/app/web/public/
即可生效。
修改chat源代码
例如修改chat中回复“引用的文件”部分。
1
| web/app/components/base/chat/chat/citation/index.tsx
|
我这里是要实现点击后不弹出,而是打开某个地址。代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| { resources.map((res, index) => ( <div key={index} className='absolute left-0 top-0 -z-10 mb-1 mr-1 h-7 w-auto max-w-[240px] whitespace-nowrap pl-7 pr-2 text-xs opacity-0' ref={(ele: any) => (elesRef.current[index] = ele!)} > {res.documentName} {/* <a href={`https://***.com/viewer?doc_id=${res.documentId}`} target="_blank" rel="noopener noreferrer" > {res.documentName} </a> */} </div> )) } { resources.slice(0, showMore ? resourcesLength : limitNumberInOneLine).map((res, index) => ( <div key={index} className='mb-1 mr-1 cursor-pointer'> {/* <Popup data={res} showHitInfo={showHitInfo} /> */} <a href={`https://***.com/viewer?doc_id=${res.documentId}`} target="_blank" rel="noopener noreferrer" className="inline-block h-7 px-3 py-1 rounded bg-blue-100 text-blue-800 text-xs hover:underline" > {res.documentName} </a> </div> )) }
|
编译:
1 2 3 4 5 6 7
| cd web 修改.env.local里的域名为线上域名。 pnpm install pnpm run build
删除 .next/cache 编译缓存文件夹。 注意编译的dify版本需要与docker部署一致。
|
进入正在运行的 Docker 容器,备份默认.next文件夹
1 2
| docker exec -u root -it docker-web-1 /bin/sh mv .next .next0626
|
替换容器.next文件夹
1 2 3 4 5 6 7
| 在容器外部执行,如果已进入容器要退出。
cd web docker cp ./.next/ docker-web-1:/app/web/.next/
cd ../docker docker-compose restart web
|