从零搭建私有 AI 助手:Ollama + Open WebUI 部署实战命令合集
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 工具私有化部署方案。整体流程包括:
- 准备 Linux 服务器;
- 安装 Docker 和 Docker Compose;
- 使用 Docker Compose 部署 Ollama;
- 部署 Open WebUI 网页界面;
- 下载并运行本地大模型;
- 配置 Nginx 反向代理;
- 配置 HTTPS 证书;
- 完成日常运维、备份和安全加固。
这套方案非常适合个人开发者、技术团队、企业内部知识助手、代码辅助工具和私有 AI 聊天平台使用。如果只是体验,可以使用小模型快速运行;如果追求响应速度和生成质量,建议使用 GPU 服务器,并选择合适的大模型。
最终,你将拥有一个完全属于自己的 AI 工具平台,可以在浏览器中像使用 ChatGPT 一样使用本地大模型,同时数据掌握在自己手中,安全性和可扩展性都更高。