自己搭一个“私人版 ChatGPT“:Open WebUI 一条命令部署 + 接入本地/云端模型保姆级教程

自己搭一个"私人版 ChatGPT":Open WebUI 一条命令部署 + 接入本地/云端模型保姆级教程

适合人群:想要一个界面好看、数据存在自己电脑上的 AI 聊天工具的同学;想统一管理多个模型的折腾爱好者。需要会复制粘贴命令,不需要写代码。

一、为什么要自己搭

X 上 @ihteshamali 最近整理了一份"在付费订阅另一个 AI 服务之前值得先试试的 15 个开源工具",获得 60+ 点赞、80+ 收藏。排在前两位的就是 Ollama 和 Open WebUI。原帖也很客观地提醒:大部分工具可以自托管,但部分功能或托管服务仍可能收费,使用前要看清许可证和硬件要求。

Open WebUI 是什么?简单说,它是一个开源的、自托管的 AI 聊天界面,长得和常见的 AI 聊天网页很像:左边是对话列表,中间是聊天区,可以切换模型、上传文件提问。它本身不带模型,而是去连接你的模型来源:

  • 本地模型运行工具(比如 Ollama、LM Studio 等);
  • 任何 OpenAI 兼容的 API 服务(填入网址和密钥即可)。

这样做的好处是:聊天记录、设置都存在你自己的电脑上;可以在一个界面里同时使用多个模型;家里或团队里的其他人也可以通过浏览器访问(需要你自己做好安全设置)。

本文严格按照 Open WebUI 官方快速入门文档,带你完成部署。

二、准备工作

根据官方文档,Open WebUI 支持 macOS、Linux(x86_64 和 ARM64)和 Windows,安装方式主要有:

  • Docker:官方支持并推荐给大多数用户;
  • Python:适合资源有限或想手动安装的环境(官方说明支持 Python 3.11 和 3.12,暂不支持 3.13);
  • 桌面应用:官方 GitHub 提供桌面版,不需要 Docker。

本文以最推荐的 Docker 方式为例。你需要:

  1. 安装 Docker Desktop(Windows 用户官方建议配合 WSL 2 使用);
  2. 准备一个模型来源:本地模型工具,或某个 AI 服务的 API 密钥。

三、保姆级部署步骤

补充:Windows 用户先把 Docker 装好

很多 Windows 新手卡在第一步:Docker 都还没装好。官方文档给出了在 WSL 环境下使用 Docker 的步骤,整理如下:

  1. 安装 WSL:按照微软官方文档安装 Windows 子系统 Linux(WSL)。安装完成后,开始菜单里会出现一个 Linux 发行版(比如 Ubuntu)。
  2. 安装 Docker Desktop :从 Docker 官网下载安装包,安装过程中选择 WSL 2 作为后端。
  3. 开启 WSL 集成:打开 Docker Desktop,进入 Settings → Resources → WSL Integration,勾选"Enable integration with my default WSL distro"。如果你用的不是默认发行版,在列表里把它也勾上。
  4. 在 WSL 终端里运行命令:官方特别提醒,后续的 docker 命令要在 WSL 终端中执行,而不是在 PowerShell 或命令提示符里。

装好之后,在 WSL 终端里输入 docker --version,能看到版本号就说明安装成功,可以继续下面的步骤了。

步骤 1:生成一个固定的密钥

官方特别提醒:要设置一个固定的 WEBUI_SECRET_KEY,否则每次重建容器时所有人都会被登出。在终端里运行:

bash 复制代码
openssl rand -hex 32

把输出的一长串字符复制下来备用。(Windows 上如果没有 openssl,可以在 WSL 终端中运行。)

步骤 2:一条命令启动 Open WebUI

把下面命令中的 your-secret-key 替换成上一步生成的字符串,然后运行:

bash 复制代码
docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data -e WEBUI_SECRET_KEY=your-secret-key --name open-webui --restart always ghcr.io/open-webui/open-webui:main

各个参数是什么意思(来自官方说明):

参数 作用
-p 3000:8080 在你电脑的 3000 端口访问界面,被占用可以改左边的数字
-v open-webui:/app/backend/data 聊天记录、用户和设置都存在这个数据卷里,升级不会丢,千万不要省略
--add-host=host.docker.internal:host-gateway 让容器能访问你电脑上运行的模型服务
--restart always 电脑重启后自动启动

小贴士:如果你只打算连接云端 API、不需要本地语音识别和文档向量化,官方提供了体积小得多的 :slim 镜像(官方数据约 196 MB,标准版约 1.62 GB),把命令末尾的 :main 换成 :slim 即可。但 slim 版处理 PDF、本地语音等功能需要额外配置外部服务,新手建议先用标准版。

步骤 3:打开界面,创建管理员账号

浏览器访问 http://localhost:3000。首次启动可能需要等一分钟左右。

如果页面打不开,运行 docker logs -f open-webui 查看日志,等出现 Application startup complete 字样再刷新。

首个页面会提示 "Create Admin Account",第一个注册的账号就是管理员,可以管理所有用户和全局设置。官方提醒:一定要记住管理员密码。另外,管理员账号创建后注册功能会自动关闭,如果想让家人或同事加入,需要到设置中手动开启新用户注册,并在后台审批。

步骤 4:连接模型

Open WebUI 自己没有模型,需要你连接一个。进入:头像 → Settings(设置)→ Admin(管理员)→ Connections(连接)。

方式 A:连接本机的 Ollama

官方说明,如果 Ollama 运行在同一台电脑上,Docker 版会自动通过 http://host.docker.internal:11434 找到它。管理员可以在新对话的模型选择器中输入模型名并确认拉取。

方式 B:连接 OpenAI 兼容的 API

点击 "Manage OpenAI API Connections" 旁边的加号,填写服务商的 API 地址(例如 OpenAI 是 https://api.openai.com/v1)和你的 API 密钥,保存后模型会自动列出。

方式 C:连接其他本地模型服务

像 LM Studio 这类工具也提供 OpenAI 兼容的本地服务(下一篇文章会详细介绍),同样可以按方式 B 添加,地址填写该工具界面上显示的本地服务地址。注意从 Docker 容器里访问本机服务时,要把 localhost 换成 host.docker.internal。

步骤 5:发送第一条消息

点击 New Chat,在输入框里选择模型,输入问题,回车。还可以直接把文件拖进聊天框,针对文件内容提问。

四、常见问题 FAQ

Q1:模型列表是空的?

官方排错建议:如果 Open WebUI 跑在 Docker 里,而 Ollama 跑在宿主机上,Ollama 需要监听 0.0.0.0 才能被容器访问;如果用的是 API 服务,检查网址和密钥是否正确,有些服务商不提供模型列表,需要手动填写模型 ID。

Q2:3000 端口被占用?

把命令中 -p 3000:8080 左边的 3000 改成别的端口,比如 -p 3001:8080,然后访问对应端口。

Q3:怎么升级到新版本?

官方的手动升级方法是:

bash 复制代码
docker rm -f open-webui
docker pull ghcr.io/open-webui/open-webui:main

然后用同样的命令、同样的密钥重新启动容器。数据在数据卷里,不会丢失。官方建议升级前先备份数据卷。

Q4:怎么彻底卸载?

docker rm -f open-webui 删除容器;如果连数据也不要了,再执行 docker volume rm open-webui(这会删除所有聊天记录,请谨慎)。

Q5:可以让局域网里其他设备访问吗?

可以,但官方建议在对外开放前先阅读其安全加固指南。不要在没有任何防护的情况下直接暴露到公网。

五、进阶小技巧

  1. 固定版本号 :生产环境或给家人用,官方建议使用具体版本号的镜像标签,而不是一直跟随 :main,避免升级带来意外变化。
  2. 文档问答:在对话中上传文件即可提问,适合查阅说明书、读论文。
  3. 多模型对比:同一个问题切换不同模型回答,选出最适合你任务的那个。
  4. 关闭不需要的外联 :官方文档列出了默认会发起的外部请求(比如版本检查),可以通过环境变量关闭,比如 ENABLE_VERSION_UPDATE_CHECK=false。
  5. 保管好 API 密钥:连接云端服务时,密钥等同于你的钱包,不要截图外传。

实用场景:搭好之后可以用来做什么

部署完成只是开始,下面几个场景能让你的"私人 AI 聊天助手"真正派上用场:

  • 家庭共享:给家人各开一个账号,大家用同一套模型,聊天记录互不干扰。老人孩子用浏览器就能访问,不需要每个人都去注册各种 AI 服务。
  • 资料问答:把产品说明书、合同模板、学习资料拖进对话,让模型帮你查找条款、总结要点。重要结论记得回到原文核对。
  • 模型横评:同一个问题分别用本地小模型和云端大模型回答,你会直观感受到它们在速度、质量、成本上的差别,从而决定哪些任务交给本地、哪些交给云端。
  • 离线环境:出差、坐车网络不好的时候,如果连接的是本地模型,依然可以正常使用基础的问答和写作功能。

六、Open WebUI 适合谁、不适合谁

适合:

  • 同时在用多个模型,希望统一入口的人;
  • 重视数据保存在本地的人;
  • 想给家人或小团队提供一个共用 AI 聊天界面的人。

不太适合:

  • 完全不想碰命令行的人(可以考虑官方桌面版);
  • 电脑配置较低、又想跑大模型的人(这时更建议连接云端 API)。

安全提醒:自托管不等于"绝对安全"

自己部署的好处是数据在自己手里,但这也意味着安全责任在你自己身上。几个基本原则:

  1. 管理员密码要足够复杂,不要和其他网站共用。
  2. 不要随意开放注册。需要给别人用时,手动开启注册并逐个审批,用完再关闭。
  3. 只在局域网内使用是最省心的做法。如果确实需要外网访问,务必先阅读官方的安全加固文档,并使用可靠的反向代理和 HTTPS。
  4. 定期备份数据卷,尤其是升级之前。官方提供了专门的备份与恢复指南。
  5. 谨慎安装社区插件。Open WebUI 支持工具和函数插件,它们本质上是会运行的代码,安装前请确认来源可信。

做好这几点,你的私人 AI 助手才能用得安心。

七、总结

部署 Open WebUI 只需要四步:生成密钥 → 一条 Docker 命令启动 → 创建管理员账号 → 连接模型。十几分钟,你就拥有了一个界面友好、数据自主的"私人版 AI 聊天助手"。下一步,可以搭配本地模型工具,打造一个完全离线的 AI 工作台。

参考资料

相关推荐
Wang's Blog1 小时前
Java 项目部署之 Docker工具快速入门: 学习路径与命令速查导引
java·学习·docker
miofly1 小时前
Codex CLI 0.157.0 自动启动守护进程引发用户争议
开源·github
Wang's Blog1 小时前
Java 项目部署之 Docker工具快速入门: Docker 镜像仓库
java·docker
miofly2 小时前
Cursor 用 S3 上的 WAL 替代副本协调,Push 吞吐量超过每秒 300 次
开源·github
寻林写彡2 小时前
从技术报告到面试入口:安全岗位简历如何用问题、关键技术与量化结果重写项目经历
面试·开源
JavaEdge.2 小时前
Docker Compose部署Dify
运维·docker·容器
鶴哥只手遮天2 小时前
Octop 源码深潜-第 00 篇:导读与全景地图
人工智能·开源
Wang's Blog2 小时前
Java 项目部署之 Docker工具快速入门: DockerCompose 部署微服务集群
java·docker·微服务
斯内普吖3 小时前
(开源)校园充电宝租借管理系统实战指南 基于 Java + SSM + Vue + MySQL
java·vue.js·mysql·开源