在 Spark 上使用 Open WebUI 和 Ollama 与模型对话

安装 Open WebUI 并使用 Ollama 在 Spark 上与模型对话

基本理念

Open WebUI 是一个可扩展的自托管 AI 接口,完全离线运行。 本操作手册将向您展示如何在 DGX Spark 设备上使用集成式 Ollama 服务器部署 Open WebUI。

您将完成

您将在 DGX Spark 上运行功能齐全的 Open WebUI 安装。您可以通过本地 Web 浏览器通过 NVIDIA Sync 的托管 SSH 隧道 (推荐) 或手动设置进行访问。该设置包括用于模型管理的集成 Ollama、持久性数据存储和用于模型推理的 GPU 加速。

前置知识

先决条件

时间和风险

  • 时长:初始设置 15-20 分钟,另加模型下载时间 (因模型大小而异)

  • 风险:
    • Docker 权限问题可能需要更改用户组并重启会话

    • 大型模型下载可能需要大量时间,具体取决于网络速度

  • 最后更新:2025 年 10 月 28 日
    • 细微文案调整

提示:

如果您尚未安装 NVIDIA Sync,在此处了解详情

第 1 步 – 配置 Docker 权限

要使用 NVIDIA Sync 轻松管理容器,您必须能够在不使用 sudo 的情况下运行 Docker 命令。

从 NVIDIA Sync 打开终端应用,启动交互式 SSH 会话并测试 Docker 访问。在终端中,运行:

docker ps

如果您看到权限被拒绝的错误 (例如尝试连接到 Docker 守护程序套接字时权限被拒绝) ,请将您的用户添加到 docker 组,这样您就不需要使用 sudo 运行命令。

sudo usermod -aG docker $USER
newgrp docker

再次测试 Docker 访问。在终端中,运行:

docker ps

第 2 步 – 验证 Docker 设置并提取容器

从 NVIDIA Sync 打开新的终端应用,并在 DGX Spark 上使用集成的 Ollama 提取 Open WebUI 容器镜像:

docker pull ghcr.io/open-webui/open-webui:ollama

下载容器镜像后,继续设置 NVIDIA Sync。

第 3 步 - 打开“NVIDIA Sync Settings” ( NVIDIA 同步设置)

  • 单击系统托盘或任务栏中的 NVIDIA Sync 图标以打开主应用程序窗口。

  • 单击右上角的齿轮图标以打开“Settings” (设置) 窗口。

  • 单击“Custom” (自定义) 选项卡以访问“Custom Ports” (自定义端口) 配置。

第 4 步 - 添加 Open WebUI 自定义端口配置

自定义端口用于自动启动 Open WebUI 容器并设置端口转发。

  • 单击“Custom” (自定义) 选项卡上的“Add New” (添加新) 按钮。

使用以下值填写表单:

  • 名称(Name):Open WebUI

  • 端口(Port):12000

  • 按照以下路径在浏览器中自动打开(Auto open in browser at the following path):勾选此复选框

  • 启动脚本(Start Script):复制并粘贴整个脚本:

#!/usr/bin/env bash
set -euo pipefail

NAME="open-webui"
IMAGE="ghcr.io/open-webui/open-webui:ollama"

cleanup() {
  echo "Signal received; stopping ${NAME}..."
  docker stop "${NAME}" >/dev/null 2>&1 || true
  exit 0
}
trap cleanup INT TERM HUP QUIT EXIT

# Ensure Docker CLI and daemon are available
if ! docker info >/dev/null 2>&1; then
  echo "Error: Docker daemon not reachable." >&2
  exit 1
fi

# Already running?
if [ -n "$(docker ps -q --filter "name=^${NAME}$" --filter "status=running")" ]; then
  echo "Container ${NAME} is already running."
else
  # Exists but stopped? Start it.
  if [ -n "$(docker ps -aq --filter "name=^${NAME}$")" ]; then
    echo "Starting existing container ${NAME}..."
    docker start "${NAME}" >/dev/null
  else
    # Not present: create and start it.
    echo "Creating and starting ${NAME}..."
    docker run -d -p 12000:8080 --gpus=all \
      -v open-webui:/app/backend/data \
      -v open-webui-ollama:/root/.ollama \
      --name "${NAME}" "${IMAGE}" >/dev/null
  fi
fi

echo "Running. Press Ctrl+C to stop ${NAME}."
# Keep the script alive until a signal arrives
while :; do sleep 86400; done
  • 单击“Add” (添加) 按钮,将配置保存到 DGX Spark。

第 5 步 - 启动 Open WebUI

  • 单击系统托盘或任务栏中的 NVIDIA Sync 图标以打开应用程序主窗口。

  • 在“Custom” (自定义) 部分下,单击“Open WebUI” (打开 WebUI) 。

您的默认 Web 浏览器应在 http://localhost:12000 。

提示:

首次运行时,Open WebUI 会下载模型。这可能会延迟服务器启动,并导致浏览器无法加载页面。只需等待并刷新页面即可。 在未来的发布中,它将很快打开。

第 6 步 - 创建管理员帐户

要开始使用 Open WebUI,您必须创建初始管理员帐户。这是一个本地帐户,您将使用该帐户访问 Open WebUI 界面。

  • 在 Open WebUI 界面中,单击屏幕底部的“Get Started” (开始使用) 按钮。

  • 使用您的首选凭据填写管理员帐户创建表单。

  • 单击”Registration”(注册)按钮以创建您的帐户并访问主界面。

第 7 步 - 下载并配置模型

接下来,使用 Ollama 下载语言模型,并将其配置为在 打开 WebUI。此下载在您的 DGX Spark 设备上进行,可能需要几分钟时间。

  • 单击 Open WebUI 界面左上角的“Select a model” (选择模型) 下拉菜单。

  • 在搜索栏中输入: qwen3.5:27b 。

  • 单击 Pull "qwen3.5:27b" from Ollama.com 出现的按钮。

  • 等待模型下载完成。您可以在界面中监控进度。

  • 完成后,从模型下拉菜单中选择“qwen3.5:27b”。

第 8 步 - 测试模型

您可以通过测试模型来验证设置是否正常工作。

  • 在 Open WebUI 界面底部的聊天文本区域中,输入:Write me a haiku about GPU。

  • 按 Enter 以发送消息,并等待模型的响应。

第 9 步 - 停止打开 WebUI

会话结束后,如果您想停止打开 WebUI 服务器并回收资源,请从 NVIDIA Sync 关闭 Open WebUI。

  • 单击系统托盘或任务栏中的 NVIDIA Sync 图标以打开主应用程序窗口。

  • 在“Custom” (自定义) 部分下,单击 x “Open WebUI”条目右侧的图标。

    • 这将关闭隧道并停止 Open WebUI docker 容器。

第 10 步 - 后续步骤

请前往 https://ollama.com/library,尝试从 Ollama 库下载不同的模型。

当您尝试不同的模型时,可以通过 NVIDIA Sync 中提供的 DGX 控制面板监控 GPU 和显存使用情况。

如果 Open WebUI 报告有可用的更新,您可以在终端中运行以下命令来提取容器镜像:

docker stop open-webui
docker rm open-webui 
docker pull ghcr.io/open-webui/open-webui:ollama

更新后,从 NVIDIA Sync 再次启动 Open WebUI。

第 11 步 - 清理和回滚

彻底删除 Open WebUI 安装并释放资源的步骤。

警告:

这些命令将永久删除所有 Open WebUI 数据和下载的模型。

停止并移除 Open WebUI 容器:

docker stop open-webui
docker rm open-webui

删除下载的镜像:

docker rmi ghcr.io/open-webui/open-webui:ollama

删除持久性数据卷:

docker volume rm open-webui open-webui-ollama

通过打开“Settings” (设置) >“Custom” (自定义) 选项卡并删除该条目,从 NVIDIA Sync 中删除自定义应用程序。

第 1 步 - 配置 Docker 权限

要在不使用 sudo 的情况下轻松管理容器,您必须位于 docker 组。如果您选择跳过此步骤,则需要使用 sudo 运行 Docker 命令。

打开新终端并测试 Docker 访问。在终端中,运行:

docker ps

如果您看到权限被拒绝的错误 (例如尝试连接到 Docker 守护程序套接字时权限被拒绝) ,请将您的用户添加到 docker 组,这样您就不需要使用 sudo 运行命令。

sudo usermod -aG docker $USER
newgrp docker

第 2 步 - 验证 Docker 设置并提取容器

使用集成的 Ollama 提取 Open WebUI 容器镜像:

docker pull ghcr.io/open-webui/open-webui:ollama

第 3 步 - 启动 Open WebUI 容器

通过运行以下命令启动 Open WebUI 容器:

docker run -d -p 8080:8080 --gpus=all \
  -v open-webui:/app/backend/data \
  -v open-webui-ollama:/root/.ollama \
  --name open-webui ghcr.io/open-webui/open-webui:ollama

这将启动 Open WebUI 容器,并可在 http://localhost:8080 。您可以从本地 Web 浏览器访问 Open WebUI 界面。

注意:

应用程序数据将存储在 open-webui 卷中,模型数据将存储在 open-webui-ollama 卷中。

第 4 步 - 创建管理员帐户

设置 Open WebUI 的初始管理员帐户。这是您将用于访问 Open WebUI 界面的本地帐户。

  • 在 Open WebUI 界面中,单击屏幕底部的“Get Started” (开始使用) 按钮。

  • 使用您的首选凭据填写管理员帐户创建表单。

  • 单击“Registration” (注册) 按钮以创建您的帐户并访问主界面。

第 5 步 - 下载并配置模型

然后,您将通过 Ollama 下载语言模型,并将其配置为 打开 WebUI。此下载在您的 DGX Spark 设备上进行,可能需要几分钟时间。

  • 单击 Open WebUI 界面左上角的“Select a model” (选择模型) 下拉菜单。

  • 在搜索栏中输入:qwen3.5:27b 。

  • 单击出现的Pull "qwen3.5:27b" from Ollama.com (从 Ollama.com 中提取) 按钮。

  • 等待模型下载完成。您可以在界面中监控进度。

  • 完成后,从模型下拉菜单中选择“qwen3.5:27b”。

第 6 步 - 测试模型

您可以通过测试模型来验证设置是否正常工作 通过 Web 界面进行推理。

  • 在 Open WebUI 界面底部的聊天文本区域中,输入:Write me a haiku about GPU。

  • 按 Enter 以发送消息,并等待模型的响应。

第 7 步 - 后续步骤

请前往 https://ollama.com/library,尝试从 Ollama 库下载不同的模型。

您可以尝试使用 NVIDIA Sync 设置因此,当您尝试不同的模型时,可以通过 DGX 控制面板监控 GPU 和显存使用情况。

如果 Open WebUI 报告有可用的更新,您可以运行以下命令来更新容器镜像:

docker pull ghcr.io/open-webui/open-webui:ollama

第 8 步 - 清理和回滚

彻底删除 Open WebUI 安装并释放资源的步骤。

警告:

这些命令将永久删除所有 Open WebUI 数据和下载的模型。

停止并移除 Open WebUI 容器:

docker stop open-webui
docker rm open-webui

删除下载的镜像:

docker rmi ghcr.io/open-webui/open-webui:ollama

删除持久性数据卷:

docker volume rm open-webui open-webui-ollama

通过 NVIDIA Sync 设置的常见问题

错误
原因
修复
Permission denied on docker ps
不在 docker 组中的用户
完全运行步骤 1,包括终端重启
Browser doesn't open automatically
自动打开设置已禁用
手动导航至 localhost:12000
Model download fails
网络连接问题
检查互联网连接,然后重试下载
GPU not detected in container
缺失 --gpus=all flag
Recreate container with correct start script
Port 12000 already in use
Another application using port
Change port in Custom App settings or stop conflicting service

手动设置的常见问题

错误
原因
修复
Permission denied on docker ps
不在 docker 组中的用户
完全运行第 1 步,包括注销并重新登录或使用 sudo
连接被拒绝/超时
Model download fails
网络连接问题
检查互联网连接,然后重试下载
GPU not detected in container
缺失 --gpus=all flag
Recreate container with correct command
Port 8080 already in use
Another application using port
Change port in docker command or stop conflicting service

注意:

DGX Spark 采用统一内存架构 (UMA) ,可在 GPU 和 CPU 之间实现动态内存共享。 由于许多应用程序仍在更新以利用 UMA,您可能会遇到内存问题,即使在 DGX Spark 的内存容量。如果发生这种情况,请使用以下命令手动刷新缓冲区缓存:

sudo sh -c 'sync; echo 3 > /proc/sys/vm/drop_caches'

资源

Open WebUI 文档

DGX Spark 文档

DGX Spark 论坛

DGX Spark 用户性能指南