如何快速部署 Open WebUI:新手本地 AI 平台完整指南
如何快速部署 Open WebUI:新手本地 AI 平台完整指南
【免费下载链接】open-webuiUser-friendly AI Interface (Supports Ollama, OpenAI API, ...)项目地址: https://gitcode.com/GitHub_Trending/op/open-webui
Open WebUI 是一个可以完全离线运行的自托管本地 AI 平台:把它部署在自己的电脑上,接上 Ollama 或任意 OpenAI 兼容 API,就能立即开始对话,不依赖任何云服务。下面按「跑起来 → 接模型 → 用顺手 → 长期稳定 → 排障」的顺序走一遍,几分钟就能拥有自己的 AI 界面。
一条命令把容器跑起来
先确认电脑上装了 Docker(或 Python 3.11,走原生安装的话)。三条路任选其一:
| 路径 | 镜像 / 关键点 | 适合谁 |
|---|---|---|
| Docker(CPU) | open-webui:main,默认部署方式 | 绝大多数人,本文主线 |
| Docker(NVIDIA GPU) | open-webui:cuda+--gpus all | 机器上有独显、想加速 |
| pip 原生 | pip install open-webui后open-webui serve | 不想装 Docker,端口为 8080 |
走 Docker 的话,这条命令可以直接抄:
docker run -d -p 3000:8080 \ --add-host=host.docker.internal:host-gateway \ -v open-webui:/app/backend/data \ --name open-webui --restart always \ ghcr.io/open-webui/open-webui:main几个参数拆开看:-p 3000:8080让浏览器访问http://localhost:3000;-v open-webui:/app/backend/data把数据库放进命名卷,聊天记录才不丢;--add-host让容器内能摸到宿主机的 Ollama;--restart always崩溃后自动拉起。
变体不用记命令,改两个地方就行:GPU 版把镜像换成:cuda并加--gpus all;想连云端 OpenAI 则加-e OPENAI_API_KEY=你的密钥。
💡 连 Ollama 都懒得单独装的,直接换:ollama标签镜像,一个容器把 Open WebUI 和 Ollama 一起带上(记得多挂一个-v ollama:/root/.ollama)。
接上模型,发出第一条消息
打开http://localhost:3000,注册第一个账号——创建者自动成为管理员,之后加的人都受它管辖。模型怎么接,取决于它在哪:
| 模型服务位置 | 连接方式 | 说明 |
|---|---|---|
| 本机 Ollama | 什么都不用做,启动命令里已含host.docker.internal | 默认路径,开箱即用 |
| 另一台机器的 Ollama | 启动时加-e OLLAMA_BASE_URL=http://192.168.x.x:11434 | 也可以稍后在「设置 → 常规」里改 URL |
| 云端 OpenAI 兼容服务 | 加-e OPENAI_API_KEY=...,或指向 LM Studio、vLLM 等端点 | 本地、云端可以混着用 |
在左侧模型列表里挑一个(Ollama 的模型会自动被发现),选个聊天模板,发一句「你好」。如果列表是空的,十有八九是 Ollama 没起,或者 URL 写错——这是最常见的卡点,后面排障章节会再讲。
把它调成贴合你工作流的样子
跑通对话之后,真正拉开体验差距的是这几块功能:
权限。管理员在后台给用户分配角色,粒度到「谁能管理模型、谁能看知识库」:
| 角色 | 能力边界 | 给谁用 |
|---|---|---|
| 管理员 | 全部功能 + 用户与模型管理 | 你 |
| 编辑者 | 创建/编辑内容、管理模型 | 需要维护资源的人 |
| 查看者 | 只能聊天和只读访问 | 大多数日常使用者 |
插件。五类扩展覆盖不同介入时机:Filters 和 Actions 在消息收发时做预处理/后处理,Pipes 改变模型调用链路本身,Tools 让模型去调外部服务,Skills 打包可复用的能力。社区商店里直接装,也可以自己写。
协作。Channels 提供团队实时共享空间,AI 和人在同一条时间线里发消息、建线程、加反应;日历支持用自然语言让模型帮你排日程;Automations 则能让提示词按定时或条件自动跑,结果直接落回聊天里。
长期稳定运行:数据、资源与监控合在一起做
数据不丢,一半靠启动时那条-v open-webui:/app/backend/data,另一半靠备份。一条命令打快照:
docker run --rm -v open-webui:/source -v ./backups:/backup \ alpine tar -czf /backup/open-webui-$(date +%Y%m%d).tar.gz -C /source .资源调优,多数场景默认值就够,真遇到瓶颈再动这三个:
| 环境变量 | 参考值 | 作用 |
|---|---|---|
MAX_WORKERS | CPU 核心数的一半到两倍 | 后端工作进程数 |
AIOHTTP_CLIENT_TIMEOUT | 300(秒) | 等模型出结果的超时,默认 5 分钟,大模型慢就调大 |
LOG_LEVEL | INFO,排障时DEBUG | 日志详细程度 |
监控自愈:启动时加--health-cmd "curl -f http://localhost:8080/api/health || exit 1" --health-interval 30s --health-retries 3,Docker 就会自动判活重启。容器吃内存太多导致宿主机卡顿时,用--memory给它封顶,别让它无限涨。
出问题时先查这三处
按命中率排序:
| 症状 | 最可能的原因 | 先做这一步 |
|---|---|---|
| 模型列表空 / Server Connection Error | 容器摸不到 Ollama(默认 11434 端口) | 确认启动命令带--add-host;跨机器就核对OLLAMA_BASE_URL;仍不通改用--network=host |
| 界面打不开 | 端口被占或容器挂了 | docker ps -a看状态,docker logs --since 1h open-webui 2>&1 \| grep -i error抓报错 |
| 重启后聊天没了 | 数据卷没挂上 | 检查启动参数里的-v open-webui:/app/backend/data |
| 回复慢、中途断 | 默认 5 分钟超时触发 | 调大AIOHTTP_CLIENT_TIMEOUT |
实时盯日志就一条:docker logs -f open-webui。更细的链路原理(比如/ollama路由如何转发到OLLAMA_BASE_URL)可以看仓库里的 TROUBLESHOOTING.md。
下一步:想深入就看 后端源码 里的routers/和utils/,部署变体参考 docker-compose.yaml;安全响应流程和已披露漏洞的修复版本记录在 docs/SECURITY.md。社区维护活跃,遇到本文没覆盖的问题,Discord 社区里问最快。
收尾自查清单(全部满足算部署完成):
- ✅
http://localhost:3000能打开并登录 - ✅ 模型列表非空,且第一条消息得到正常回复
- ✅ 重启容器后聊天记录仍在
- ✅ 健康检查返回 healthy,
docker logs无持续报错 - ✅ 至少给一个普通用户配了「查看者」角色并验证生效
【免费下载链接】open-webuiUser-friendly AI Interface (Supports Ollama, OpenAI API, ...)项目地址: https://gitcode.com/GitHub_Trending/op/open-webui
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
