从零搭建自己的 AI 助手:Ollama + Open WebUI 部署实战命令版
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
第一次访问时,需要创建管理员账号。
一般流程如下:
- 打开网页;
- 注册第一个账号;
- 第一个注册的账号通常会成为管理员;
- 登录后进入聊天界面;
- 在模型列表中选择刚才拉取的模型;
- 开始对话。
如果你看不到模型,可以检查 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
如果云服务器使用安全组,请确认已经放行 3000、80、443 端口。
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 工具部署在公网,建议至少做好以下安全措施:
- 不要直接开放 Ollama 的 11434 端口到公网;
- 使用 Nginx 反向代理 Open WebUI;
- 开启 HTTPS;
- 注册管理员账号后关闭公开注册;
- 使用强密码;
- 定期备份数据;
- 定期升级镜像;
- 限制服务器 SSH 登录方式;
- 不要在对话中输入敏感密钥和隐私数据。
关闭公开注册可以在 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:3b 或 deepseek-r1:1.5b 这类小模型即可;如果服务器配置更高,可以尝试 qwen2.5:7b、llama3.1:8b 等模型。对于生产环境,则建议结合权限控制、HTTPS、防火墙、备份和监控一起使用,确保系统长期稳定、安全运行。