从零开始之Dify部署篇
文章目录
前言
Dify是一个对接大模型的脚手架,Dify对应的文档地址为:Dify传送门。本系列文章从零开始探索Dify的功能及搭建过程。本文的搭建流程是基于Docker Compose进行部署。
一、工具列表
搭建Dify需要准备的工具列表有:
- vmware
- centos
- docker
- docker-compose
- dify
二、搭建流程
1. VMWare安装
2. Centos安装
3. Centos环境配置
本文将Centos系统配置为静态IP:192.168.200.130,对应的子网为192.168.200.0。防止每次服务器重启,对应的IP都会变化。
1. 更改子网IP
在“编辑(E) "上左键单击,然后在"虚拟网络编辑器(N)… "上左键单击。
进入虚拟网络编辑器页面后点击【更改设置】,更改子网IP为192.168.200.0
2. 配置静态IP地址
修改网卡配置,命令如下,其中的 ifcfg-ens33 为配置对应的网卡。
vi /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
IPADDR="192.168.200.130"
GATEWAY="192.168.200.2"
NETMASK="255.255.255.0"
DNS1="8.8.8.8"
DNS2="8.8.4.4"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="d8fbbece-3798-40d7-9333-351a58f811a2"
DEVICE="ens33"
ONBOOT="yes"
如果后面经常遇到域名解析失败的情况,可将谷歌的两个免费DNS,即(8.8.8.8和8.8.4.4)换成电信的DNS(114.114.114.114)
3. 修改DNS配置(非必要)
修改DNS配置,命令如下。
vi /etc/resolv.conf
nameserver 8.8.8.8
nameserver 8.8.4.4
search localdomain
4. Docker和Docker Compose安装
其中的Docker Compose需要根据对应的Docker版本安装,如果Docker为最新的版本,Docker Compose应为最新版本。Docker Compose若为github上下载下来,可直接上传到服务器的 /usr/local/bin/ 路径下,全路径为: /usr/local/bin/docker-compose
Docker和Docker Compose安装流程传送门
Docker Compose github传送门
5. Docker镜像加速源配置
可以解决docker和docker compose安装容器慢的问题。
创建或修改/etc/docker/daemon.json为如下
{
"registry-mirrors": ["http://hub-mirror.c.163.com"],
"insecure-registries":["192.168.200.100:5000"]
}
Docker镜像加速源配置传送门
这个镜像源可以换成其他的,如果用了镜像加速源也不行。可参考 从零开始之Dify二次开发篇 中的 【将dify组件镜像转移到阿里云(可选)】部分 或 【Docker镜像库失效应对策略】教你两种方式快速下载镜像 。
6. 部署Dify
1. 下载Dify
将Dify代码从github下载至服务器,或者通过http的方式下载Dify的代码的zip文件后,上传至服务器解压缩。
git clone https://github.com/langgenius/dify.git
2. 编排Dify
如果您的系统安装了 Docker Compose V2 而不是 V1,请使用 docker compose 而不是 docker-compose。通过$ docker compose version检查这是否为情况。
cd dify/docker
docker compose up -d
7. Nginx配置(最新版本不用配置)
编排后会在存放代码的docker文件夹下生成一个nginx的文件夹,里面存放着nginx的配置文件。
进入 nginx/conf.d 路径下,会发现default.conf的nginx配置文件。内容如下
server {
listen 80;
server_name _;
location /console/api {
proxy_pass http://<api-ip>:5001;
include proxy.conf;
}
location /api {
proxy_pass http://<api-ip>:5001;
include proxy.conf;
}
location /v1 {
proxy_pass http://<api-ip>:5001;
include proxy.conf;
}
location /files {
proxy_pass http://<api-ip>:5001;
include proxy.conf;
}
location / {
proxy_pass http://<web-ip>:3000;
include proxy.conf;
}
}
需要将server_name 后的 _ 更改为服务器的IP,本文中的服务器IP地址为192.168.200.130。然后替换和,其中api-ip为api业务服务的ip地址,可通过如下命令查找到。注意每次docker的api业务服务重启都会分配不一样的IP地址。
docker inspect docker-api-1
查找到 NetworkSettings - Networks - docker_default - IPAddress 。
本文中对应的api业务服务的ip为172.18.0.5,同理可找到web-ip的值为172.18.0.3。更改后的内容如下。
server {
listen 80;
server_name 192.168.200.130;
location /console/api {
proxy_pass http://172.18.0.5:5001;
include proxy.conf;
}
location /api {
proxy_pass http://172.18.0.5:5001;
include proxy.conf;
}
location /v1 {
proxy_pass http://172.18.0.5:5001;
include proxy.conf;
}
location /files {
proxy_pass http://172.18.0.5:5001;
include proxy.conf;
}
location / {
proxy_pass http://172.18.0.3:3000;
include proxy.conf;
}
}
最后保存Nginx的配置,用如下命令重新启动nginx的docker容器。
docker restart docker-nginx-1
8. 测试
用浏览器进行校验,服务器IP加上斜杆/即可
http://192.168.200.130/
9. 辅助工具Finalshell安装
Finalshell可以方便连接Linux服务器,方便文件的上传下载,服务器的状态监控。
Finalshell官方下载传送门