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

从零搭建自己的 AI 助手:Ollama + Open WebUI 部署实战命令版

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

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

随着大模型技术的快速发展,越来越多的个人开发者、企业团队和内容创作者开始搭建属于自己的 AI 工具平台。相比直接使用线上 AI 服务,自部署 AI 工具具有更高的可控性、更好的数据隐私保护能力,也更方便与内部系统集成。

本文将以一套常见、实用、易落地的 AI 工具部署方案为例,完整讲解如何在服务器上部署本地 AI 助手环境。本文方案主要包含:

  • Ollama:用于本地运行大语言模型;
  • Open WebUI:提供类似 ChatGPT 的网页聊天界面;
  • Docker / Docker Compose:用于容器化部署;
  • Nginx:用于反向代理和域名访问;
  • 可选 HTTPS 证书配置:用于生产环境访问。

整篇教程会尽量使用完整命令,适合初学者直接跟着操作。


一、部署前准备

1. 服务器配置建议

如果只是体验 AI 工具,可以使用普通云服务器,但如果希望本地运行大模型,服务器配置越高越好。

最低配置

CPU:2 核
内存:4GB
硬盘:30GB
系统:Ubuntu 22.04 LTS

推荐配置

CPU:4 核及以上
内存:16GB 及以上
硬盘:100GB SSD
系统:Ubuntu 22.04 LTS

如果需要运行较大的模型

CPU:8 核及以上
内存:32GB 及以上
GPU:NVIDIA 显卡,显存 12GB 及以上
硬盘:200GB SSD

如果没有 GPU,也可以使用 CPU 运行模型,只是推理速度会慢一些。对于个人学习、轻量问答、知识库测试来说,CPU 版本也可以接受。


二、更新系统环境

首先登录你的服务器。

ssh root@你的服务器IP

进入服务器后,建议先更新系统软件包。

apt update && apt upgrade -y

安装一些常用工具:

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

查看系统版本:

lsb_release -a

查看服务器架构:

uname -m

查看内存情况:

free -h

查看磁盘空间:

df -h

三、安装 Docker

AI 工具部署时,推荐使用 Docker。这样可以避免复杂的依赖冲突,也方便后续升级和卸载。

1. 卸载旧版本 Docker

如果服务器之前安装过 Docker,可以先执行:

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

2. 安装 Docker 官方依赖

apt install -y ca-certificates curl gnupg

创建 keyrings 目录:

install -m 0755 -d /etc/apt/keyrings

添加 Docker 官方 GPG 密钥:

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

添加 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" \
| tee /etc/apt/sources.list.d/docker.list > /dev/null

更新软件源:

apt update

安装 Docker:

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

启动 Docker:

systemctl enable docker
systemctl start docker

查看 Docker 版本:

docker version

查看 Docker Compose 版本:

docker compose version

如果能正常输出版本号,说明 Docker 安装成功。


四、创建部署目录

为了便于管理,我们统一将 AI 工具部署在 /opt/ai-tools 目录下。

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

创建数据目录:

mkdir -p ollama open-webui nginx

目录结构大致如下:

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

五、部署 Ollama

Ollama 是一个非常流行的本地大模型运行工具,可以快速拉取和运行 Llama、Qwen、DeepSeek、Gemma 等模型。

在本文中,我们会通过 Docker 部署 Ollama。

1. 编写 Docker Compose 文件

进入部署目录:

cd /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:
      - ./ollama:/root/.ollama

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

保存并退出。

在 Vim 中可以按:

Esc
:wq
Enter

六、启动 AI 工具服务

/opt/ai-tools 目录下执行:

docker compose up -d

查看容器状态:

docker ps

如果你看到类似下面的内容,说明服务已经启动:

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

查看日志:

docker logs -f ollama

另开一个终端或按 Ctrl + C 退出日志,再查看 Open WebUI 日志:

docker logs -f open-webui

七、拉取 AI 模型

Ollama 部署完成后,需要拉取模型才能正常使用。

1. 拉取 Qwen 模型

Qwen 是阿里通义千问系列模型,中文能力较好。

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

如果服务器配置较低,可以选择更小的模型:

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

2. 拉取 DeepSeek 模型

如果你希望体验 DeepSeek 系列模型,可以执行:

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

较低配置可以使用:

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

3. 拉取 Llama 模型

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

4. 查看已经安装的模型

docker exec -it ollama ollama list

输出示例:

NAME              ID              SIZE
qwen2.5:7b        xxxxxxxx        4.7 GB
deepseek-r1:7b    xxxxxxxx        4.7 GB

八、测试 Ollama 是否可用

可以直接在服务器内执行:

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

进入交互模式后,输入:

你好,请介绍一下你自己

如果模型正常回答,说明 Ollama 运行成功。

退出交互模式:

/bye

也可以使用 API 测试:

curl http://127.0.0.1:11434/api/generate -d '{
  "model": "qwen2.5:7b",
  "prompt": "请用中文解释什么是大语言模型",
  "stream": false
}'

如果返回 JSON 数据,并包含模型生成内容,则说明 Ollama API 正常。


九、访问 Open WebUI

Open WebUI 默认映射到服务器的 3000 端口。

在浏览器中访问:

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

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

一般流程如下:

  1. 打开网页;
  2. 注册第一个账号;
  3. 第一个注册的账号通常会成为管理员;
  4. 登录后进入聊天界面;
  5. 在模型列表中选择刚才拉取的模型;
  6. 开始对话。

如果你看不到模型,可以检查 Open WebUI 与 Ollama 是否连通。

查看 Open WebUI 容器日志:

docker logs -f open-webui

进入 Open WebUI 容器测试网络:

docker exec -it open-webui bash

在容器内部执行:

curl http://ollama:11434/api/tags

如果能返回模型列表,说明连接正常。

退出容器:

exit

十、配置防火墙

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

1. 使用 UFW 防火墙

允许 SSH:

ufw allow 22

允许 Open WebUI 端口:

ufw allow 3000

允许 HTTP:

ufw allow 80

允许 HTTPS:

ufw allow 443

启用防火墙:

ufw enable

查看状态:

ufw status

如果你使用的是云服务器,还需要在云厂商控制台的安全组中放行对应端口。


十一、使用 Nginx 配置域名访问

直接使用 IP:3000 访问虽然简单,但生产环境更推荐使用域名,例如:

https://ai.example.com

下面配置 Nginx 反向代理。

1. 安装 Nginx

apt install -y nginx

启动并设置开机自启:

systemctl enable nginx
systemctl start nginx

查看状态:

systemctl status nginx

2. 创建 Nginx 配置文件

假设你的域名是:

ai.example.com

请先将域名 A 记录解析到服务器 IP。

创建配置文件:

vim /etc/nginx/sites-available/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;
    }
}

启用配置:

ln -s /etc/nginx/sites-available/ai-tools.conf /etc/nginx/sites-enabled/ai-tools.conf

测试 Nginx 配置:

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

按照提示输入邮箱、同意协议即可。

证书申请成功后,Certbot 会自动修改 Nginx 配置。

3. 测试自动续期

certbot renew --dry-run

如果没有报错,说明证书续期配置正常。


十三、配置 Open WebUI 常用参数

如果你希望进一步自定义 Open WebUI,可以修改 docker-compose.yml

例如:

services:
  open-webui:
    image: ghcr.io/open-webui/open-webui:main
    container_name: open-webui
    restart: always
    ports:
      - "3000:8080"
    environment:
      - OLLAMA_BASE_URL=http://ollama:11434
      - WEBUI_NAME=我的AI助手
      - ENABLE_SIGNUP=false
    volumes:
      - ./open-webui:/app/backend/data
    depends_on:
      - ollama

其中:

参数 说明
OLLAMA_BASE_URL Ollama 服务地址
WEBUI_NAME 页面显示名称
ENABLE_SIGNUP=false 禁止新用户注册
3000:8080 宿主机 3000 端口映射到容器 8080 端口

修改完成后重启服务:

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

十四、升级 AI 工具

后续如果需要升级 Ollama 和 Open WebUI,可以执行以下命令。

进入目录:

cd /opt/ai-tools

拉取最新镜像:

docker compose pull

重启服务:

docker compose down
docker compose up -d

清理旧镜像:

docker image prune -f

查看服务状态:

docker ps

十五、备份数据

部署 AI 工具后,数据目录非常重要,尤其是 Open WebUI 中的账号、会话记录、设置,以及 Ollama 已下载模型。

本文的数据目录在:

/opt/ai-tools

可以直接打包备份:

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

如果需要备份到远程服务器:

scp ai-tools-backup-$(date +%F).tar.gz root@远程服务器IP:/backup/

恢复时,将压缩包解压回 /opt 即可:

cd /opt
tar -xzvf ai-tools-backup-2025-01-01.tar.gz

然后重新启动:

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

十六、卸载 AI 工具

如果你不再需要这套 AI 工具,可以执行以下操作。

停止服务:

cd /opt/ai-tools
docker compose down

如果要删除所有数据:

rm -rf /opt/ai-tools

删除 Docker 镜像:

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

清理无用资源:

docker system prune -a

注意:执行删除命令前请确认已经备份重要数据。


十七、常见问题排查

1. 浏览器无法访问 Open WebUI

检查容器是否运行:

docker ps

检查端口是否监听:

ss -tunlp | grep 3000

检查防火墙:

ufw status

如果云服务器使用安全组,请确认已经放行 300080443 端口。


2. Open WebUI 中看不到模型

先查看 Ollama 是否有模型:

docker exec -it ollama ollama list

测试 API:

curl http://127.0.0.1:11434/api/tags

检查 Open WebUI 环境变量:

docker inspect open-webui | grep OLLAMA_BASE_URL

如果配置错误,修改 docker-compose.yml 后重启:

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

3. 模型回答速度很慢

可能原因包括:

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

解决建议:

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

或者使用更小模型:

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

如果有 GPU,建议安装 NVIDIA 驱动并使用支持 GPU 的 Docker 环境。


4. 磁盘空间不足

查看磁盘:

df -h

查看 Docker 占用:

docker system df

清理不用的镜像:

docker image prune -a

清理不用的容器:

docker container prune

清理不用的卷:

docker volume prune

删除不用的模型:

docker exec -it ollama ollama rm 模型名称

例如:

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

十八、生产环境安全建议

如果你的 AI 工具部署在公网,建议至少做好以下安全措施:

  1. 不要直接开放 Ollama 的 11434 端口到公网
  2. 使用 Nginx 反向代理 Open WebUI
  3. 开启 HTTPS
  4. 注册管理员账号后关闭公开注册
  5. 使用强密码
  6. 定期备份数据
  7. 定期升级镜像
  8. 限制服务器 SSH 登录方式
  9. 不要在对话中输入敏感密钥和隐私数据

关闭公开注册可以在 docker-compose.yml 中设置:

environment:
  - ENABLE_SIGNUP=false

然后重启:

docker compose down
docker compose up -d

十九、一键部署命令汇总

如果你已经熟悉 Linux,可以参考下面的简化版命令快速部署。

apt update && apt upgrade -y
apt install -y curl wget git vim ufw unzip htop 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" \
| tee /etc/apt/sources.list.d/docker.list > /dev/null

apt update

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

systemctl enable docker
systemctl start docker

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

cat > docker-compose.yml <<'EOF'
services:
  ollama:
    image: ollama/ollama:latest
    container_name: ollama
    restart: always
    ports:
      - "11434:11434"
    volumes:
      - ./ollama:/root/.ollama

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

docker compose up -d

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

部署完成后访问:

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

二十、总结

通过本文的步骤,我们完成了一套完整的 AI 工具部署方案。整个系统由 Ollama 提供本地大模型运行能力,由 Open WebUI 提供可视化聊天界面,再通过 Docker Compose 统一管理容器服务。如果需要正式上线,还可以使用 Nginx 配置域名访问,并通过 Certbot 申请 HTTPS 证书。

这套方案的优点非常明显:

  • 部署简单,维护方便;
  • 支持多种开源大模型;
  • 数据保存在自己的服务器;
  • 可用于个人 AI 助手、团队内部问答、知识库问答、开发测试等场景;
  • 后续可以继续扩展 RAG、向量数据库、API 接入和自动化工作流。

如果你只是想快速体验,使用 qwen2.5:3bdeepseek-r1:1.5b 这类小模型即可;如果服务器配置更高,可以尝试 qwen2.5:7bllama3.1:8b 等模型。对于生产环境,则建议结合权限控制、HTTPS、防火墙、备份和监控一起使用,确保系统长期稳定、安全运行。

目录结构
全文