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

Ollama 安装

一、安装依赖

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

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

安装依赖 lspci 或 lshw 等工具用于检测 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

前提是你已经安装好 Docker 和 Docker 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博客

相关推荐
_upupup9 小时前
Linux的调试工具——gdb/cgdb
linux·服务器
JeJe同学9 小时前
Docker镜像导入、容器启动
linux·运维·docker
Jason_zhao_MR9 小时前
Linux与实时控制如何兼得
linux·嵌入式硬件·机器人·工业控制
闲云野鹤在人间10 小时前
MySQL|从理论、安装、备份到主从复制、MHA高可用详解
linux·运维·数据库·mysql·云计算
一个风轻云淡11 小时前
GCC 和 GDB命令简单解读
java·linux·前端
H.莓飛11 小时前
【数据结构】二叉树_OJ题
linux·开发语言·数据结构·算法
资料库0111 小时前
Linux 8个常见运维故障排查
java·linux·运维
零基础12312 小时前
Ubuntu 常用命令汇总
linux·运维·开发语言
Android系统攻城狮13 小时前
Linux Gstreamer深度解析之gst_audio_sink_get_type调用流程与实战(六十五)
linux·运维·服务器·音视频·gstreamer音视频·音视频进阶·gstreamer音视频进阶
xiaoqiMikko13 小时前
Linux 实战(一):CentOS 7、Rocky 9、Ubuntu 24.04 三台真机实测 —— 认清系统、换源、装包的版本坑
linux·centos