Linux服务器部署Deepseek、Dify、RAGflow实战教程

Ollama 安装

一、安装依赖

安装下载依赖 curl,用于解析下载 ollama 官方地址

bash 复制代码
apt install sudo
sudo apt update
sudo apt install curl

安装依赖 lspcilshw 等工具用于检测 GPU

bash 复制代码
sudo apt update
sudo apt install pciutils lshw

安装 ping 包,用于 ping 网址

bash 复制代码
sudo apt update
sudo apt install iputils-ping

二、安装 nvidia 驱动

为了使用 GPU 加速,我们还需要安装 nvidia 驱动[[Linux服务器安装cuda和cudnn实战教程]]

三、安装 Ollama

对于Linux系统,使用以下命令安装:

bash 复制代码
curl -fsSL https://ollama.com/install.sh | sh

或者手动安装

bash 复制代码
curl -L https://ollama.com/download/ollama-linux-amd64.tgz -o ollama-linux-amd64.tgz
tar -xzf ollama-linux-amd64.tgz -C /usr/local/bin

安装完成后,运行以下命令查看是否安装成功:

bash 复制代码
ollama -v

验证安装:打开浏览器,访问http://localhost:11434,如果页面显示Ollama的界面,则说明安装成功。

四、下载模型

启动 Ollama 服务
bash 复制代码
ollama serve
下载模型

进入官网,选择模型。

bash 复制代码
# 量化的模型
ollama run deepseek-r1:70b
# q8_0量化的模型
ollama run deepseek-r1:70b-llama-distill-q8_0
# 使用不量化的模型
ollama run deepseek-r1:70b-llama-distill-fp16

# 其它模型
ollama pull nomic-embed-text
ollama run gguf/DeepSeek-Janus-Pro-7B
ollama pull bge-m3
ollama run YuZhouz/VLM-R1

要退出与 Ollama 模型的对话,可以在命令行中输入 /bye 命令。这将结束当前与模型的对话并退出程序。如果你希望使用其他方式结束对话,也可以按 Ctrl + D 键来结束对话。

删除模型命令:

bash 复制代码
ollama rm name
修改 Modelflie上下文长度限制num_ctx
  1. 获取当前模型的配置文件:
bash 复制代码
ollama show --modelfile deepseek-r1:70b > Modelfile

这会生成一个名为 Modelfile 的文件。

  1. 编辑 Modelfile 文件,找到或添加以下参数:
plaintext 复制代码
PARAMETER num_ctx 5000

保存文件。

  1. 使用修改后的 Modelfile 创建新的模型实例:
bash 复制代码
ollama create deepseek-r1:70b-ctx5k -f Modelfile

这将创建一个带有新上下文窗口大小的模型实例。

Docker 安装

一、Win系统安装Docker

进入 Docker: Accelerated Container Application Development 官网,下载安装包以后安装即可。

二、Linux系统安装Docker

可参考之前的文章Linux服务器RedHat安装Docker

三、配置 Docker Enging

text 复制代码
{
  "builder": {
    "gc": {
      "defaultKeepStorage": "20GB",
      "enabled": true
    }
  },
  "dns": [
    "8.8.8.8",
    "8.8.4.4"
  ],
  "experimental": false,
  "features": {
    "buildkit": true
  },
  "max-concurrent-downloads": 3,
  "max-download-attempts": 5,
  "registry-mirrors": [
    "https://docker.1ms.run",
    "https://docker.imgdb.de",
    "https://docker.wanpeng.life",
    "https://docker.1panel.live",
    "https://hk11.606166.xyz",
    "https://docker.1panel.live",
    "https://hub.rat.dev"
  ],
  "shutdown-timeout": 1200
}

安装 Dify

前提是你已经安装好 DockerDocker Desktop

一、拉取镜像

Windows Powershell 以管理员权限运行

bash 复制代码
git clone https://github.com/langgenius/dify.git
cd dify/docker

二、配置环境

bash 复制代码
cp .env.example .env

三、修改配置

为了防止原本 80 端口被占用,因此需要修改新的端口,用记事本打开 .env 文件,搜索找到 _EXPOSE_NGINX_PORT_ 修改为下述内容:

bash 复制代码
# ------------------------------
# Docker Compose Service Expose Host Port Configurations
# ------------------------------
EXPOSE_NGINX_PORT=8081
EXPOSE_NGINX_SSL_PORT=443

一般 Dify 文件上传会有大小限制,因此我们还需要修改上传文件的大小限制,搜索 upload, 修改下述内容:

bash 复制代码
# Upload file size limit, default 15M.

UPLOAD_FILE_SIZE_LIMIT=1000

# Upload image file size limit, default 10M.

UPLOAD_IMAGE_FILE_SIZE_LIMIT=100

# Upload video file size limit, default 100M.

UPLOAD_VIDEO_FILE_SIZE_LIMIT=1000

# Upload audio file size limit, default 50M.

UPLOAD_AUDIO_FILE_SIZE_LIMIT=500

保存并退出。

四、启动服务

如果你使用的是Docker Compose V2(可以用"docker compose version"命令查看):

bash 复制代码
docker compose -p dify up -d

当出现下述,则说明下载完成

bash 复制代码
PS C:\Users\Administrator\Desktop\Deepseek\dify\docker> docker compose up -d
[+] Running 11/11
 ✔ Network docker_ssrf_proxy_network  Created                                                                                                           0.0s
 ✔ Network docker_default             Created                                                                                                           0.0s
 ✔ Container docker-sandbox-1         Started                                                                                                           0.8s
 ✔ Container docker-web-1             Started                                                                                                           1.2s
 ✔ Container docker-db-1              Started                                                                                                           1.7s
 ✔ Container docker-redis-1           Started                                                                                                           1.2s
 ✔ Container docker-weaviate-1        Started                                                                                                           1.8s
 ✔ Container docker-ssrf_proxy-1      Started                                                                                                           1.7s
 ✔ Container docker-api-1             Started                                                                                                           2.5s
 ✔ Container docker-worker-1          Started                                                                                                           2.2s
 ✔ Container docker-nginx-1           Started                                                                                                            2.8s

安装完成后,通过以下命令检查服务状态:

bash 复制代码
docker compose ps

检查要特别关注以下几个关键容器的状态:

  • docker-api-1:API服务
  • docker-web-1:Web界面
  • docker-worker-1:后台任务处理
  • docker-db-1:数据库
  • docker-redis-1:缓存服务
  • docker-nginx-1:反向代理

所有容器都应该显示"up"状态。

五、设置用户信息

然后我们可以通过浏览器访问Dify

bash 复制代码
http://localhost:8081/install

设置用户信息即可完成登录:

!NOTE\] 用户信息 邮箱: \*\*\*\*\*\*\*\*\*\*\* 账号:\*\*\*\*\*\*\*\*\*\*\* 密码:\*\*\*\*\*\*\*\*\*\*\*

六、配置 Dify 连接 ollam 模型

打开.env 文件,配置以下关键参数:

text 复制代码
CONSOLE_URL=http://localhost
SERVICE_API_URL=http://localhost
UPLOAD_FILE_SIZE_LIMIT=1000 # 文件上传限制,单位MB
UPLOAD_FILE_MIME_TYPES=.pdf,.doc,.docx,.txt # 允许上传的文件类型

进入 Dify 在头像-设置------模型供应商"里添加 deepseek,点击保存。将温度设置在 0.5-0.7 (推荐 0.6) 的范围内,以防止无休止的重复或不连贯的输出。

  • 共享地址
    在 cmd 命令行窗口中输入:
bash 复制代码
ipconfig

查看本机的 IP, 加上端口号即可得到 Dify 的访问地址。

七、设置公网域名

参考 API 扩展 | Dify,由于 Dify 云端版无法访问内网 API 服务,为了方便本地调试 API 服务,可以使用 Ngrok 将 API 服务的端点暴露到公网,实现云端调试本地代码。操作步骤:

  1. 进入 https://ngrok.com 官网,注册并下载 Ngrok 文件。
  2. 下载完成后,进入下载目录,根据下方说明解压压缩包。
bash 复制代码
unzip /path/to/ngrok.zip
  1. 运行以下命令初始化脚本,将您的 authtoken 添加到默认的 ngrok.yml 配置文件中。
bash 复制代码
ngrok config add-authtoken 你的Token
  1. 查看本地 API 服务的端口
    并运行以下命令启动:

    8082是Dify转发出来的端口

    ./ngrok http 8082

我们找到 Forwarding 中,https://177e-159-223-41-52.ngrok-free.app(此为示例域名,请替换为自己的)即为公网名。

按照上述的范例,我们把本地已经启动的服务端点暴露出去,将代码范例接口:http://127.0.0.1:8000/api/dify/receive 替换为 https://177e-159-223-41-52.ngrok-free.app/api/dify/receive

此 API 端点即可公网访问。至此,我们即可在 Dify 配置该 API 端点进行本地调试代码,配置步骤请参考 https://github.com/langgenius/dify-docs/blob/main/zh_CN/guides/knowledge-base/external-data-tool.md

安装RagFlow

一、拉取镜像

bash 复制代码
git clone https://github.com/infiniflow/ragflow.git

二、修改配置

RAGFlow Docker 镜像默认v0.16.0-slim 没有embedding models,所以使用v0.16.0,需要修改配置,打开ragflow\docker.env 文件, 注释 v0.16.0-slim ,取消注释 v0.16.0

bash 复制代码
# The RAGFlow Docker image to download.
# Defaults to the v0.16.0-slim edition, which is the RAGFlow Docker image without embedding models.
# RAGFLOW_IMAGE=infiniflow/ragflow:v0.16.0-slim
#
# To download the RAGFlow Docker image with embedding models, uncomment the following line instead:
RAGFLOW_IMAGE=infiniflow/ragflow:v0.16.0

三、修改端口

原本的 80 端口和 443 端口被占用,因此需要修改端口,用记事本打开文件 docker-compose.yml, 修改为下述内容。

bash 复制代码
ports:
  - ${SVR_HTTP_PORT}:9380
  - 8082:80
  - 442:443

保存并退出

四、启动服务

使用预构建的 Docker 镜像启动服务器,进入 docker 文件夹,利用提前编译好的 Docker 镜像启动服务器:

bash 复制代码
cd ragflow/docker
docker compose -f docker-compose.yml -p ragflow up -d

这一步注意docker 下载的镜像比较大,要留有足够的存储空间,我这边观察下载了约 10 个 G 左右。

服务器启动成功后再次确认服务器状态:

bash 复制代码
docker logs -f ragflow-server

五、设置用户信息

这里注意,安装完成后并不是直接进入下面两个地址:

而是通过浏览器访问 ragflow:先注册账号,然后登录。

!NOTE\] 用户信息 邮箱: \*\*\*\*\*\*\*\*\*\*\* 账号:\*\*\*\*\*\*\*\*\*\*\* 密码:\*\*\*\*\*\*\*\*\*\*\*

  • 配置 ragflow 连接 ollam 模型

    打开 ragflow,头像-设置里面添加 ollam 模型

  • 共享地址

    在 cmd 命令行窗口中输入:

bash 复制代码
ipconfig

查看本机的 IP, 加上端口号即可得到 ragflow 的访问地址。

!error\] 未找到用户 **问题描述** ```bash LookupError: Tenant not found ``` **解决方案** 参考 [LookupError: Tenant not found · Issue #4940 · infiniflow/ragflow](https://github.com/infiniflow/ragflow/issues/4940#issuecomment-2662910710) [LookupError:未找到租户 ·问题 #4940 ·InfiniFlow/Ragflow](https://github.com/infiniflow/ragflow/issues/4940#issuecomment-2662910710)

参考文章 :

用dify、ollama和DeepSeek搭建本地知识库 - 知乎
linux本地部署deepseek-R1模型_linux部署deepseek-CSDN博客
在 Windows 上配置 Ollama 服务并开放局域网访问_ollama局域网访问-CSDN博客
【RAG 实践】Ollama+RagFlow:本地知识库部署全解析_ragflow如何接入ollama的本地模型-CSDN博客
DeepSeek RAGFlow构建本地知识库系统 - 知乎
私有化部署体验 Dify!收藏这一篇就够了!_dify私有化部署-CSDN博客
在ubuntu24.04上安装Ollama并设置跨域访问_ollama 跨域-CSDN博客
ollama修改模型参数 num_ctx【Linux】_ollama调整模型参数-CSDN博客

相关推荐
GodGump12 分钟前
dbgpt7.0 docker部署
运维·docker·容器
维度攻城狮2 小时前
实现在Unity3D中仿真汽车,而且还能使用ros2控制
python·unity·docker·汽车·ros2·rviz2
TDD_06287 小时前
【运维】Centos硬盘满导致开机时处于加载状态无法开机解决办法
linux·运维·经验分享·centos
x66ccff7 小时前
vLLM 启动 GGUF 模型踩坑记:从报错到 100% GPU 占用的原因解析
linux
William.csj8 小时前
Linux——开发板显示器显示不出来,vscode远程登录不进去,内存满了的解决办法
linux·vscode
爱编程的王小美8 小时前
Docker基础详解
运维·docker·容器
白夜易寒8 小时前
Docker学习之容器虚拟化与虚拟机的区别(day11)
学习·docker·容器
KeithTsui8 小时前
GCC RISCV 后端 -- 控制流(Control Flow)的一些理解
linux·c语言·开发语言·c++·算法
森叶8 小时前
linux如何与windows进行共享文件夹开发,不用来回用git进行拉来拉去,这个对于swoole开发者来说特别重要
linux·git·swoole
liulilittle8 小时前
Linux 高级路由策略控制配置:两个不同路由子网间通信
linux·网络·智能路由器