在上一篇文章Dify学习笔记01:什么是Dify中,我们了解并体验了一下 dify 的云服务。正好还有一台腾讯云的轻量应用服务器,所以本篇文章就开始在服务器上安装 dify。
dify 提供了两种安装方式:docker-compose 和 源码安装。但是本地源码安装,还需要自行安装 PostgreSQL / Redis / Weaviate。所以这里就是用 docker-compose 来完成安装。
在安装 dify 之前,需要对服务器做一些必要的环境配置。
在 dify 官方文档中,对系统做出了要求:
CPU >= 2 Core
RAM >= 4 GiB
但是我的轻量服务器配置是2C2G:
腾讯云服务器有50G的SSD,速度也很快,所以这里就考虑将SSD添加到 Swap 虚拟内存中。
fallocate -l 16G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
echo '/swapfile none swap sw 0 0' | tee -a /etc/fstab
执行上面命令,增加了16G的 swap,通过 free 命令做前后对比。
因为是基于 docker-compose 安装,所以首先需要安装 docker,命令如下:
yum install -y yum-utils
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install -y docker-ce docker-ce-cli containerd.io
如果执行上面的命令无法安装 docker 的话,可以考虑替换成国内的 docker 镜像:
wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
yum install -y docker-ce docker-ce-cli containerd.io
执行完命令配置好镜像,使用 yum 即可安装 docker。
在安装成功之后,通过 systemctl 命令启动 docker 守护进程和查看运行状态,命令如下:
systemctl enable --now docker
systemctl status docker
如下图,docker 守护进程是运行(running)状态。
Dify 运行在多个 docker 容器内,所以它使用了 docker-compose 来编排这些容器,所以我们需要安装 docker-compose,并且通过 chmod 赋予执行权限。
curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
等待上面命令执行成功之后,我们验证 docker-compose 是否安装成功:
docker-compose --version
如图,安装成功:
在 docker 和 docker-compose 安装成功之后,就可以开始安装 dify 了,dify 提供了完成的
首先执行下面命令,从 github 克隆仓库:
git clone https://github.com/langgenius/dify.git
等待克隆成功:
进入 dify 目录:
docker 目录是需要我们关注的,我们下面的操作都是在 docker 目录中完成的。
在 docker 目录下有 .env.example 配置文件样例:
cp .env.example .env
执行上面命令,生成正式的配置文件 .env。
里面就是 dify 的常用配置,例如 redis:
这里我们不需要对 .env 中的配置做任何修改,dify 已经为这些组件(redis等)生成了镜像,后面启动即可。
在 docker 目录下,使用 docker-compose 启动 dify:
docker-compose up -d
但是在拉取镜像的时候,会提示超时:
这是因为在国内部分服务器上,无法访问默认的 docker 镜像,所以这里可以考虑使用国内的镜像。
执行下面命令,打开 docker 配置文件:
vi /etc/docker/daemon.json
这里我使用的是腾讯云的加速镜像,在配置文件中添加以下内容:
{
"registry-mirrors": ["https://mirror.ccs.tencentyun.com"]
}
重新加载 docker 配置并重启。
systemctl daemon-reload
systemctl restart docker
这时候再运行启动命令,docker-compose 会按照 docker-compose.yaml 中的配置拉取镜像:
拉取镜像之后,如下图,10个容器都启动成功,包括上面提到的 redis 等组件。
使用 docker ps 可以查看容器的进程:
通过腾讯云控制台的监控,单纯运行 dify 的容器占用了70%左右的内存。
完成上面步骤之后,因为 dify 使用的 Nginx 的80端口做了代理,所以在浏览器输入腾讯云服务器的IP,即可访问 dify 的管理后台:
首次登录需要注册管理员账户,之后即可开始配置和使用 dify。
如图,我们成功访问了部署在腾讯云服务器上的 dify,和之前访问的 dify 云服务一样。
本篇文章主要是在腾讯云服务器上部署 dify 的一个教程,对实际操作过程中遇到的问题也做了总结。在2C2G的配置下,需要关闭服务器上其他的应用,否则可能内存耗尽、cpu负载过高,造成主机卡顿或者无法响应。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。