上一篇 下一篇 分享链接 返回 返回顶部

从零搭建私有 AI 助手:Ollama + Open WebUI 部署实战命令合集

发布人:慈云数据-客服中心 发布时间:24小时前 阅读量:6

AI工具 部署完整教程|附完整命令

随着大模型应用越来越普及,很多团队和个人都希望把 AI 工具部署到自己的服务器上,实现私有化使用、数据本地存储、多人协作访问、模型自由切换等能力。相比直接使用在线 AI 平台,自部署方案具有更高的可控性,也更适合企业内部知识库、代码助手、智能客服、文档分析等场景。

本文将以一套非常实用的 AI 工具部署方案为例,带你从零完成部署:

Ollama + Open WebUI + Docker Compose + Nginx 反向代理

这套方案的优势是:

  • 部署简单,适合新手;
  • 支持本地运行大模型;
  • 提供类似 ChatGPT 的网页界面;
  • 支持多用户登录;
  • 可接入多种模型;
  • 支持知识库、对话记录、模型管理等功能;
  • 后续可以扩展 HTTPS、域名访问、GPU 加速等能力。

一、部署架构说明

本教程采用如下架构:

用户浏览器
   |
   | 访问域名或服务器IP
   |
Nginx 反向代理
   |
Open WebUI 网页服务
   |
Ollama 模型服务
   |
本地大语言模型

各组件作用如下:

组件 作用
Docker 容器运行环境
Docker Compose 容器编排工具
Ollama 本地大模型运行服务
Open WebUI AI 聊天网页界面
Nginx 反向代理,支持域名访问
Linux 服务器 部署运行环境

二、服务器配置建议

如果只是体验和测试,配置可以较低;如果要运行较大的模型,建议提高配置。

1. 最低配置

CPU:2核
内存:4GB
硬盘:30GB
系统:Ubuntu 22.04 / Debian 12 / CentOS 7+

适合运行小模型,例如:

  • qwen2.5:1.5b
  • llama3.2:1b
  • gemma2:2b

2. 推荐配置

CPU:4核以上
内存:16GB以上
硬盘:100GB以上
GPU:NVIDIA 显卡,显存 8GB 以上
系统:Ubuntu 22.04 LTS

适合运行:

  • qwen2.5:7b
  • llama3.1:8b
  • deepseek-r1:7b
  • mistral:7b

3. 生产环境建议

CPU:8核以上
内存:32GB以上
硬盘:200GB以上 SSD
GPU:NVIDIA 16GB 显存以上
带宽:10Mbps以上

如果是企业内部多人使用,建议使用 GPU 服务器,否则 CPU 推理速度会比较慢。


三、系统环境准备

本文以 Ubuntu 22.04 为例。如果你使用 Debian、CentOS 或其他 Linux 发行版,命令可能略有差异。

首先使用 SSH 登录服务器:

ssh root@你的服务器IP

更新系统软件包:

apt update && apt upgrade -y

安装常用工具:

apt install -y curl wget git vim unzip htop net-tools ca-certificates gnupg lsb-release

查看系统版本:

lsb_release -a

查看服务器资源:

free -h
df -h
lscpu

四、安装 Docker

如果服务器还没有安装 Docker,可以按照以下命令安装。

1. 卸载旧版本 Docker

apt remove -y docker docker-engine docker.io containerd runc

2. 添加 Docker 官方 GPG 密钥

install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
chmod a+r /etc/apt/keyrings/docker.gpg

3. 添加 Docker 软件源

echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" \
> /etc/apt/sources.list.d/docker.list

4. 安装 Docker

apt update
apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

5. 启动 Docker 并设置开机自启

systemctl start docker
systemctl enable docker

6. 验证 Docker 是否安装成功

docker version
docker compose version

如果能看到版本信息,说明 Docker 安装成功。


五、创建 AI 工具部署目录

建议将所有配置集中放在一个目录中,方便后续维护。

mkdir -p /opt/ai-tools
cd /opt/ai-tools

创建数据目录:

mkdir -p ./data/ollama
mkdir -p ./data/open-webui

目录结构如下:

/opt/ai-tools
├── docker-compose.yml
└── data
    ├── ollama
    └── open-webui

六、编写 Docker Compose 配置文件

/opt/ai-tools 目录下创建 docker-compose.yml 文件:

vim docker-compose.yml

写入以下内容:

services:
  ollama:
    image: ollama/ollama:latest
    container_name: ollama
    restart: always
    ports:
      - "11434:11434"
    volumes:
      - ./data/ollama:/root/.ollama
    environment:
      - OLLAMA_HOST=0.0.0.0

  open-webui:
    image: ghcr.io/open-webui/open-webui:main
    container_name: open-webui
    restart: always
    ports:
      - "3000:8080"
    volumes:
      - ./data/open-webui:/app/backend/data
    environment:
      - OLLAMA_BASE_URL=http://ollama:11434
      - WEBUI_NAME=My AI Assistant
    depends_on:
      - ollama

保存退出:

:wq

这个配置会启动两个容器:

  • ollama:负责运行本地大模型;
  • open-webui:提供网页聊天界面。

七、启动服务

/opt/ai-tools 目录执行:

docker compose up -d

查看容器运行状态:

docker ps

如果看到类似以下内容,说明启动成功:

CONTAINER ID   IMAGE                                PORTS
xxxxxxx        ollama/ollama:latest                 0.0.0.0:11434->11434/tcp
xxxxxxx        ghcr.io/open-webui/open-webui:main   0.0.0.0:3000->8080/tcp

查看日志:

docker logs -f ollama
docker logs -f open-webui

八、访问 Open WebUI

打开浏览器,访问:

http://你的服务器IP:3000

首次访问时,需要创建管理员账号。

填写邮箱、用户名、密码后即可进入系统。

进入后台后,你可以看到类似 ChatGPT 的聊天界面。不过此时还没有下载模型,所以暂时无法正常对话。接下来我们需要下载大模型。


九、下载并运行 AI 模型

Ollama 支持非常多模型,例如:

  • qwen2.5
  • llama3.1
  • llama3.2
  • deepseek-r1
  • mistral
  • gemma2
  • codellama
  • phi3

1. 下载 Qwen 小模型

如果服务器配置较低,可以先下载小模型测试:

docker exec -it ollama ollama pull qwen2.5:1.5b

运行模型:

docker exec -it ollama ollama run qwen2.5:1.5b

测试输入:

你好,请介绍一下你自己

如果模型能正常回复,说明 Ollama 工作正常。

退出模型交互:

/bye

2. 下载 DeepSeek 模型

如果你想体验推理模型,可以下载:

docker exec -it ollama ollama pull deepseek-r1:7b

运行:

docker exec -it ollama ollama run deepseek-r1:7b

3. 下载 Llama 模型

docker exec -it ollama ollama pull llama3.1:8b

运行:

docker exec -it ollama ollama run llama3.1:8b

4. 查看已安装模型

docker exec -it ollama ollama list

输出示例:

NAME              ID              SIZE      MODIFIED
qwen2.5:1.5b      xxxxxxxx        986 MB    2 minutes ago
deepseek-r1:7b    xxxxxxxx        4.7 GB    1 hour ago

十、在 Open WebUI 中使用模型

模型下载完成后,回到浏览器页面:

http://你的服务器IP:3000

刷新页面,在模型选择框中应该可以看到刚刚下载的模型,例如:

qwen2.5:1.5b
deepseek-r1:7b
llama3.1:8b

选择一个模型,输入问题即可开始对话。

你可以测试以下内容:

请用中文写一篇关于人工智能发展的文章。

或者:

请帮我写一个 Python 爬虫示例,并解释每一行代码。

十一、配置 Nginx 反向代理

如果你希望通过域名访问,比如:

http://ai.example.com

可以使用 Nginx 进行反向代理。

1. 安装 Nginx

apt install -y nginx

启动并设置开机自启:

systemctl start nginx
systemctl enable nginx

查看状态:

systemctl status nginx

2. 创建 Nginx 配置文件

假设你的域名是:

ai.example.com

创建配置文件:

vim /etc/nginx/conf.d/ai-tools.conf

写入以下内容:

server {
    listen 80;
    server_name ai.example.com;

    client_max_body_size 100M;

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_http_version 1.1;

        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";

        proxy_read_timeout 3600;
        proxy_send_timeout 3600;
    }
}

检查配置是否正确:

nginx -t

重载 Nginx:

systemctl reload nginx

现在可以访问:

http://ai.example.com

十二、配置 HTTPS 证书

生产环境建议一定要配置 HTTPS。

1. 安装 Certbot

apt install -y certbot python3-certbot-nginx

2. 申请证书

certbot --nginx -d ai.example.com

根据提示输入邮箱并同意协议。

3. 测试自动续期

certbot renew --dry-run

申请成功后,访问:

https://ai.example.com

十三、开启防火墙端口

如果服务器开启了防火墙,需要放行相关端口。

1. 使用 UFW

ufw allow 22
ufw allow 80
ufw allow 443
ufw allow 3000
ufw enable
ufw status

如果已经配置了 Nginx 反向代理,建议只开放:

ufw allow 22
ufw allow 80
ufw allow 443
ufw deny 3000

这样可以避免外部直接访问 Open WebUI 端口。

2. 云服务器安全组

如果你使用的是阿里云、腾讯云、华为云、AWS、Azure 等云服务器,还需要在控制台安全组中放行:

22
80
443
3000

如果已使用 Nginx 代理,公网只需要开放:

22
80
443

十四、GPU 加速部署说明

如果你的服务器有 NVIDIA GPU,需要安装 NVIDIA 驱动和容器运行时。

1. 查看显卡

lspci | grep -i nvidia

2. 安装 NVIDIA 驱动

Ubuntu 可以使用:

ubuntu-drivers devices

自动安装推荐驱动:

ubuntu-drivers autoinstall

重启服务器:

reboot

重启后查看:

nvidia-smi

如果能看到显卡信息,说明驱动安装成功。

3. 安装 NVIDIA Container Toolkit

添加源:

curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | \
gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

安装:

apt update
apt install -y nvidia-container-toolkit

配置 Docker:

nvidia-ctk runtime configure --runtime=docker
systemctl restart docker

4. 修改 docker-compose.yml 支持 GPU

编辑文件:

cd /opt/ai-tools
vim docker-compose.yml

ollama 服务修改为:

services:
  ollama:
    image: ollama/ollama:latest
    container_name: ollama
    restart: always
    ports:
      - "11434:11434"
    volumes:
      - ./data/ollama:/root/.ollama
    environment:
      - OLLAMA_HOST=0.0.0.0
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: all
              capabilities: [gpu]

  open-webui:
    image: ghcr.io/open-webui/open-webui:main
    container_name: open-webui
    restart: always
    ports:
      - "3000:8080"
    volumes:
      - ./data/open-webui:/app/backend/data
    environment:
      - OLLAMA_BASE_URL=http://ollama:11434
      - WEBUI_NAME=My AI Assistant
    depends_on:
      - ollama

重新启动服务:

docker compose down
docker compose up -d

查看 Ollama 是否使用 GPU:

docker logs -f ollama

也可以使用:

nvidia-smi

如果看到容器进程占用显存,说明 GPU 加速生效。


十五、常用运维命令

1. 启动服务

cd /opt/ai-tools
docker compose up -d

2. 停止服务

cd /opt/ai-tools
docker compose down

3. 重启服务

cd /opt/ai-tools
docker compose restart

4. 查看容器

docker ps

5. 查看全部容器

docker ps -a

6. 查看日志

docker logs -f ollama
docker logs -f open-webui

7. 更新镜像

cd /opt/ai-tools
docker compose pull
docker compose up -d

8. 删除无用镜像

docker image prune -a

9. 查看磁盘占用

du -sh /opt/ai-tools/*
docker system df

10. 进入容器

docker exec -it ollama bash
docker exec -it open-webui bash

十六、模型管理命令

1. 下载模型

docker exec -it ollama ollama pull qwen2.5:7b

2. 删除模型

docker exec -it ollama ollama rm qwen2.5:7b

3. 查看模型列表

docker exec -it ollama ollama list

4. 查看正在运行的模型

docker exec -it ollama ollama ps

5. 运行模型

docker exec -it ollama ollama run qwen2.5:7b

十七、备份与恢复

自部署 AI 工具一定要重视数据备份,尤其是多人使用场景。

1. 备份 Open WebUI 数据

cd /opt/ai-tools
tar -zcvf open-webui-backup-$(date +%F).tar.gz ./data/open-webui

2. 备份 Ollama 模型数据

cd /opt/ai-tools
tar -zcvf ollama-backup-$(date +%F).tar.gz ./data/ollama

3. 恢复数据

先停止服务:

cd /opt/ai-tools
docker compose down

解压备份:

tar -zxvf open-webui-backup-2025-01-01.tar.gz -C /opt/ai-tools
tar -zxvf ollama-backup-2025-01-01.tar.gz -C /opt/ai-tools

重新启动:

docker compose up -d

十八、常见问题解决

1. 访问不了 Open WebUI

检查容器是否运行:

docker ps

检查端口是否监听:

netstat -tunlp | grep 3000

查看日志:

docker logs -f open-webui

检查云服务器安全组是否开放 3000 端口。


2. 页面能打开,但没有模型

先查看 Ollama 是否正常:

docker logs -f ollama

查看模型列表:

docker exec -it ollama ollama list

如果没有模型,需要先下载:

docker exec -it ollama ollama pull qwen2.5:1.5b

然后刷新 Open WebUI 页面。


3. 模型回复很慢

常见原因包括:

  • 服务器没有 GPU;
  • 模型参数太大;
  • 内存不足;
  • CPU 性能较弱;
  • 同时访问人数太多。

解决方法:

docker exec -it ollama ollama pull qwen2.5:1.5b

先使用小模型测试。如果需要更好的体验,建议升级 GPU 服务器。


4. 磁盘空间不足

查看磁盘:

df -h

查看 Docker 占用:

docker system df

删除不用的模型:

docker exec -it ollama ollama rm 模型名称

清理 Docker 缓存:

docker system prune -a

5. Nginx 代理后无法对话或连接中断

检查 Nginx 是否配置了 WebSocket:

proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";

同时建议设置较长超时时间:

proxy_read_timeout 3600;
proxy_send_timeout 3600;

修改后重载:

nginx -t
systemctl reload nginx

十九、安全加固建议

为了避免服务暴露带来风险,建议进行以下安全加固。

1. 不直接暴露 Ollama 端口

如果不需要公网访问 Ollama,建议不要开放 11434 端口。

可以在 docker-compose.yml 中将:

ports:
  - "11434:11434"

改成:

ports:
  - "127.0.0.1:11434:11434"

或者直接不映射端口,只让 Open WebUI 在 Docker 网络内部访问。


2. 使用 HTTPS

生产环境务必使用:

https://ai.example.com

避免账号密码和对话内容被明文传输。


3. 设置强密码

管理员账号建议使用复杂密码,例如:

大小写字母 + 数字 + 特殊符号

4. 限制后台注册

Open WebUI 支持用户管理。如果是企业内部使用,建议关闭公开注册,只允许管理员创建账号。


5. 定期更新镜像

cd /opt/ai-tools
docker compose pull
docker compose up -d

二十、一键部署脚本示例

如果你希望快速部署,可以创建一个脚本。

创建脚本:

vim install-ai-tools.sh

写入:

#!/bin/bash

set -e

echo "开始更新系统..."
apt update && apt upgrade -y

echo "安装基础工具..."
apt install -y curl wget git vim unzip ca-certificates gnupg lsb-release

echo "安装 Docker..."
install -m 0755 -d /etc/apt/keyrings

if [ ! -f /etc/apt/keyrings/docker.gpg ]; then
  curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
  chmod a+r /etc/apt/keyrings/docker.gpg
fi

echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" \
> /etc/apt/sources.list.d/docker.list

apt update
apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

systemctl start docker
systemctl enable docker

echo "创建部署目录..."
mkdir -p /opt/ai-tools/data/ollama
mkdir -p /opt/ai-tools/data/open-webui

cd /opt/ai-tools

echo "生成 docker-compose.yml..."
cat > docker-compose.yml <

添加执行权限:

chmod +x install-ai-tools.sh

执行脚本:

bash install-ai-tools.sh

二十一、完整部署命令汇总

如果你只想复制命令快速部署,可以参考下面这一组。

apt update && apt upgrade -y
apt install -y curl wget git vim unzip htop net-tools ca-certificates gnupg lsb-release

install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
chmod a+r /etc/apt/keyrings/docker.gpg

echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" \
> /etc/apt/sources.list.d/docker.list

apt update
apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

systemctl start docker
systemctl enable docker

mkdir -p /opt/ai-tools/data/ollama
mkdir -p /opt/ai-tools/data/open-webui
cd /opt/ai-tools

cat > docker-compose.yml <

部署完成后访问:

http://服务器IP:3000

二十二、总结

通过本文的步骤,我们完成了一套完整的 AI 工具私有化部署方案。整体流程包括:

  1. 准备 Linux 服务器;
  2. 安装 Docker 和 Docker Compose;
  3. 使用 Docker Compose 部署 Ollama;
  4. 部署 Open WebUI 网页界面;
  5. 下载并运行本地大模型;
  6. 配置 Nginx 反向代理;
  7. 配置 HTTPS 证书;
  8. 完成日常运维、备份和安全加固。

这套方案非常适合个人开发者、技术团队、企业内部知识助手、代码辅助工具和私有 AI 聊天平台使用。如果只是体验,可以使用小模型快速运行;如果追求响应速度和生成质量,建议使用 GPU 服务器,并选择合适的大模型。

最终,你将拥有一个完全属于自己的 AI 工具平台,可以在浏览器中像使用 ChatGPT 一样使用本地大模型,同时数据掌握在自己手中,安全性和可扩展性都更高。

目录结构
全文