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
LookupError:未找到租户 ·问题 #4940 ·InfiniFlow/Ragflow

参考文章 :

用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博客

相关推荐
爱搞技术的猫猫2 小时前
微店商品详情API接口实战指南:从零实现商品数据自动化获取
大数据·linux·运维·数据库·自动化
猫咪-95272 小时前
Git 安装与配置一站式指南
linux·git
萧瑟其中~2 小时前
计算机网络:Socket网络编程 Udp与Tcp协议 第一弹
服务器·网络·计算机网络
winkel_wang3 小时前
Centos7服务器防火墙设置教程
linux·运维·服务器
非 白3 小时前
【服务器】Nginx
运维·服务器·nginx
这货不是陈进坚3 小时前
vmware虚拟机与宿主机共享文件夹
linux·运维·服务器
搬砖的打工人!!!4 小时前
ubuntu 20.04 安装labelmg
linux·ubuntu
MarvelousJ4 小时前
Ubuntu解决Genesis报错
linux·运维·ubuntu
BTU_YC5 小时前
server can‘t find dns01.test.com: SERVFAIL
linux·运维·服务器
ftpeak6 小时前
ubuntu Linux 正确设置中文环境的方法
linux·运维·ubuntu