前言
OpenWebUI 是目前最流行的私有化 AI 对话 Web 界面之一,它把大模型的调用、多用户管理、知识库、提示词工具等能力封装进一个开箱即用的界面,配合 Docker 可以在一台普通的云服务器上几分钟内跑起来。这篇文章记录我完整部署一次 OpenWebUI 的实操过程,包含环境准备、镜像拉取、容器运行、接入模型以及 Nginx 反向代理与 HTTPS 配置,全程可复现。
一、为什么选择自部署
相比直接使用各家商业 API 的网页端,自部署的 OpenWebUI 可以:把模型 API 密钥集中管理、为团队创建独立账号并分配额度、把对话记录保存在自己的服务器上、接入本地的 Ollama / vLLM 等推理后端。数据在自己手里,改造也完全自由。
二、准备条件
- 一台 Linux 云服务器(1C2G 起步,推荐 2C4G,本文以 Ubuntu 22.04 为例)
- 一个域名(用于后续 HTTPS 反代)
- 可用的模型 API(OpenAI 兼容接口或本地 Ollama 均可)
三、安装 Docker
如果服务器上还没有 Docker,先执行官方安装脚本,然后启动并设置开机自启:
curl -fsSL https://get.docker.com | sh systemctl enable --now docker
四、拉取镜像并运行容器
OpenWebUI 官方镜像为 ghcr.io/open-webui/open-webui,也可以使用 Docker Hub 上的镜像。首次运行前创建数据目录,并映射 -v open-webui:/app/backend/data 持久化数据:
docker volume create open-webui docker run -d -p 3000:8080 \\ -v open-webui:/app/backend/data \\ -e ENABLE_OLLAMA_API=true \\ --name open-webui \\ --restart always \\ ghcr.io/open-webui/open-webui:main
启动后访问 http://服务器IP:3000,第一次打开会引导你创建管理员账号。
五、接入模型
在界面的「管理员设置 – 外部连接」里填入你的 OpenAI 兼容接口地址和密钥。如果使用本地 Ollama,直接把 Ollama 部署在同一台机器并开启监听,OpenWebUI 会自动探测到本机的模型。
六、Nginx 反向代理与 HTTPS
为了让服务更安全并支持域名访问,用 Nginx 做反代,并让 certbot 自动签 HTTPS 证书。先安装 Nginx,然后写入配置:
server {
server_name chat.example.com;
location / {
proxy_pass http://127.0.0.1:3000;
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_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
最后用 certbot 签发并自动续期证书:
apt install -y certbot python3-certbot-nginx certbot --nginx -d chat.example.com
七、常见问题
- 端口被占用:改用其他端口映射,如
-p 18080:8080。 - WebSocket 断开:确认反代配置里带上了 Upgrade 头。
- 登录后 500:检查数据卷是否可写,以及数据库迁移是否完成。
结语
到这里,一台私有的 AI 对话服务就上线了。整个过程核心就是把持久化数据卷挂好、把端口映射对,再用 Nginx 反代补上 HTTPS。后续还可以接入知识库、多模型切换和用户分组,能力扩展空间很大。









暂无评论内容