☰
Open WebUI 部署教程:一条 Docker 命令跑通带知识库的本地 AI 聊天界面
2026/10/13 7:22:31 网站建设 项目流程

Open WebUI 部署教程:一条 Docker 命令跑通带知识库的本地 AI 聊天界面

【免费下载链接】open-webuiUser-friendly AI Interface (Supports Ollama, OpenAI API, ...)项目地址: https://gitcode.com/GitHub_Trending/op/open-webui

Open WebUI 是一个自托管的 AI 聊天平台:它本身不跑模型,只为 Ollama 或 OpenAI 兼容 API 这类推理服务提供统一网页界面,内置用户权限与本地 RAG 知识库,适合已有本地推理服务、想给团队一个可用聊天入口的人。

它干什么,不干什么

  • 干:为本地 Ollama 与任意 OpenAI 兼容 API(LMStudio、vLLM、GroqCloud 等)提供统一聊天入口,自带账号体系、RBAC 分组权限、本地知识库与插件机制(Filters / Tools / Skills / MCP)。
  • 不干:不跑推理。没有推理服务,模型列表就是空的,发消息也不会有回答。
  • 与 ChatGPT-Next-Web 这类前端不同:那些只是套壳展示,Open WebUI 有自己的账号、权限、文件存储与数据卷,是可长期维护的平台。
  • 边界:支持完全离线运行,模型、向量化、数据库全部在本地,适合不能出网的内网环境。

开跑前要备什么

  • 一台装好 Docker 的机器(不用容器则需 Python 3.11);
  • 端口:容器内部监听 8080,默认映射宿主机 3000,3000 被占用就改映射前段;
  • 至少一个可用的推理服务:本机或异机 Ollama,或有 Key 的云端 API;
  • 首次启用知识库会本地下载 all-MiniLM-L6-v2 嵌入模型,约 90MB,需要当时联网;
  • 数据库默认 SQLite,零部署;后续可换 PostgreSQL。
  • 纯离线环境加HF_HUB_OFFLINE=1,避免启动时尝试下载模型。

什么情况不建议装:一次性演示、不打算维护常驻服务的人,直接用云服务更省事。

最短路径跑起来

单容器命令,完整复制:

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宿主机 3000 映射到容器 8080默认即可;3000 被占用就改前段
--add-host=host.docker.internal:host-gateway容器内通过 host.docker.internal 访问宿主机上的 Ollama发现不了本机模型,模型列表为空
-v open-webui:/app/backend/data数据卷,存 SQLite 数据库与上传文件,是命令里最关键的一项重建容器后聊天历史与文档全部丢失
--restart always进程崩溃自动拉起崩掉后无人恢复

不用 Docker 的替代方案一句话带过:pip install open-webui后执行open-webui serve,服务在 localhost:8080;想让 Ollama 同集群部署,用仓库自带的 docker-compose.yaml,它自带 Ollama 容器并预配好OLLAMA_BASE_URL。

怎么确认它活着

三个信号,按顺序核:

✅ 浏览器打开http://localhost:3000,出现注册页,首个注册的账号自动成为管理员。 ✅docker ps中容器状态为 Up。 ✅curl http://localhost:3000/health返回{"status": true};做滚动部署可改用/ready,它只在启动完成且数据库可连时才返回 200。

注册页只认第一个账号为管理员,之后注册入口自动关闭,新成员只能由管理员在后台创建。

把模型接进来

已有推理服务的,只改部署命令的增量,三种场景:

Ollama 在本机——什么都不用改。只要 host.docker.internal 能通 11434 端口,顶部模型列表直接出现模型名,选中即可对话。

Ollama 在另一台机器——追加一个环境变量,带上端口:

-e OLLAMA_BASE_URL=http://192.168.1.100:11434

接云端 API(OpenAI 或任意 OpenAI 兼容服务)——追加一个 Key:

-e OPENAI_API_KEY=your_key

只走云端的话,Ollama 相关参数全部可以不加;启动后也可由管理员在"外部连接"里补填端点与 Key。

Ollama 想装进同一个容器——镜像 tag 由:main换成:ollama,加-v ollama:/root/.ollama挂模型目录,有 NVIDIA 卡再加--gpus=all。GPU 宿主机上想给 WebUI 本身加速则换:cudatag,前提是装了 NVIDIA Container Runtime。

接入后在顶部菜单选模型,底部输入框发消息,回答以流式逐字返回。

让它读你的文档

进 Knowledge(知识库)页面,拖入 PDF、Word 或 txt,系统用 all-MiniLM-L6-v2 在本地完成向量化并存入 ChromaDB,全程不出内网;大体积文档可再配 Tika、Docling 等解析引擎。

对话时在输入框敲#,选中已上传的文件,模型就基于该文档作答;#加 URL 也能把网页拉进对话。

效果:问"这份合同的退款流程是什么",引用的是你上传的条款,而不是凭训练语料编造。多人使用时,管理员可按用户组控制每个账号能碰哪些模型与文档。

最常卡住的几个地方

现象原因处理
模型列表为空、发消息报连接错误容器访问不到 Ollama保留--add-host参数;或改--network=host(访问端口变为 8080);远程服务确认OLLAMA_BASE_URL含端口
重建容器后聊天历史消失没挂数据卷命令补-v open-webui:/app/backend/data
长回复生成到一半超时默认 Ollama 响应超时 5 分钟(300 秒)设AIOHTTP_CLIENT_TIMEOUT(单位秒)调大
团队成员注册不了首账号即管理员,注册入口自动关闭管理员在后台手动创建账号

更多连接类问题的排查逻辑,见仓库里的 TROUBLESHOOTING.md。

上线前过一遍

  • ✅ 数据卷已挂载,重启容器后聊天历史仍在
  • ✅ 管理员账号已确认,注册入口已关闭
  • ✅OLLAMA_BASE_URL或 API Key 已验证,模型列表非空
  • ✅WEBUI_SECRET_KEY会话签名密钥已配置,不裸奔暴露
  • ✅ 暴露到局域网/公网前,反向代理已配 HTTPS 与防火墙规则

官方文档在 docs.openwebui.com,K8s、Helm 与离线部署都有现成章节;后端核心代码在 backend/open_webui/,部署遇阻先查 TROUBLESHOOTING.md,缺陷直接提仓库 issue。

【免费下载链接】open-webuiUser-friendly AI Interface (Supports Ollama, OpenAI API, ...)项目地址: https://gitcode.com/GitHub_Trending/op/open-webui

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询