跳到主要内容

📋 常见问题

Sponsored by Open WebUI Pipelines
Open WebUI Pipelines
Pipelines: Versatile, UI-Agnostic OpenAI-Compatible Plugin Framework

💡 为什么要使用 Docker?

我们理解 Docker 可能不是每个人的选择,但这种方法是我们项目设计和操作效率的核心。我们认为项目对 Docker 的依赖是基础性的,并鼓励那些寻求不同部署方法的人探索社区驱动的替代方案。

📜 目录

问:为什么需要注册?我的数据会被发送到哪里?

答: 我们要求您注册以成为管理员用户,从而增强安全性。这确保了即使 Open WebUI 被外部访问,您的数据仍然安全。重要的是,所有信息都保存在本地。我们不会收集您的数据。当您注册时,所有信息都保留在您的服务器上,绝不会离开您的设备。隐私和安全始终是我们的首要任务,确保您的数据始终处于您的控制之下。

问:为什么我的 Docker 容器无法通过 localhost 连接到主机上的服务?

答: 在 Docker 容器内,localhost 指的是容器本身,而不是主机。这种区别对于网络配置至关重要。要从容器连接到主机上的服务,应使用 DNS 名称 host.docker.internal 而不是 localhost。这个 DNS 名称被 Docker 特别识别,用于促进此类连接,将主机视为可从容器内部访问的实体,从而绕过通常的 localhost 范围限制。

问:如何让 Docker 容器访问主机上的服务?

答: 要使主机上的服务对 Docker 容器可见,请将这些服务配置为监听所有网络接口,使用 IP 地址 0.0.0.0,而不是仅限于 localhost127.0.0.1。这种配置允许服务接受来自任何 IP 地址的连接,包括 Docker 容器。需要注意这种设置的安全性影响,尤其是在可能存在外部访问的环境中。实施适当的安全措施,如防火墙和身份验证,可以帮助降低风险。

问:为什么我的 Open WebUI 没有更新?我已经重新拉取/重启了容器,但没有任何变化。

答: 更新 Open WebUI 需要做更多的工作,而不仅仅是拉取新的 Docker 镜像。以下是可能的原因及解决方案:

  1. 更新 Docker 镜像:命令 docker pull ghcr.io/open-webui/open-webui:main 更新了 Docker 镜像,但未更新运行中的容器或其数据。
  2. 持久化数据在 Docker 卷中:Docker 卷独立于容器生命周期存储数据,通过更新保留您的数据(如聊天历史)。
  3. 应用更新:确保更新生效的方法是删除现有容器(不删除卷),并使用更新后的镜像和现有卷创建一个新的容器。

这样可以更新应用程序,同时保持数据安全。

问:等等,为什么要删除容器?不会丢失数据吗?

答: 这是一个常见的担忧,但如果正确使用 Docker 卷,则删除容器不会导致数据丢失。原因如下:

  • 卷保留数据:Docker 卷设计用于在容器生命周期之外保留数据。只要数据存储在卷中,无论容器发生什么情况,数据都会保持完好。
  • 安全更新过程:在更新 Open WebUI 时,移除旧容器并使用更新后的镜像创建新容器,不会影响存储在卷中的数据。关键是不要显式删除卷,例如使用 docker volume rm 命令。

按照正确的更新步骤——拉取新镜像、移除旧容器而不删除卷、用更新后的镜像和现有卷创建新容器——可以更新应用程序代码,同时保持数据不变且安全。

问:应该使用发行版打包的 Docker 还是官方 Docker 包?

答: 我们建议使用官方 Docker 包来运行 Open WebUI,而不是发行版打包的版本。官方 Docker 包频繁更新,包含最新的功能、错误修复和安全补丁,确保最佳性能和安全性。此外,它支持重要的功能如 host.docker.internal,这在发行版打包的版本中可能不可用。该功能对于 Docker 容器内的网络配置和连接至关重要。

选择官方 Docker 包,您可以获得跨环境的一致行为、更可靠的故障排除支持以及访问最新的 Docker 进展。更广泛的 Docker 社区和资源也与官方包更为契合,为您提供丰富的信息和支持。所有运行 Open WebUI 所需的内容,包括您的数据,都保留在您的控制范围内和服务器环境中,强调我们对您隐私和安全的承诺。有关安装官方 Docker 包的说明,请参阅 Docker 官方文档网站上的 安装 Docker Engine 指南。

问:Docker 中支持 GPU 吗?

答: Docker 中支持 GPU,但取决于平台。官方支持 Docker for Windows 和 Linux 上的 Docker Engine 使用 GPU。其他平台,如 Docker Desktop for Linux 和 MacOS,目前不提供 GPU 支持。这对于需要 GPU 加速的应用程序来说是个重要考虑因素。为了获得最佳体验并利用 GPU 功能,我们建议在支持 GPU 集成的平台上使用 Docker。

问:为什么 Open WebUI 强调使用 Docker?

答: 使用 Docker 的决定源于其确保一致性、隔离依赖关系和简化不同环境部署的能力。Docker 最小化兼容性问题,简化了 WebUI 的启动过程,无论底层系统如何。这是项目维护者做出的战略选择,认可虽然 Docker 有一定的学习曲线,但对于部署和维护的优势显著。我们理解 Docker 可能不是每个人的首选,但这种方法是我们项目设计和操作效率的核心。我们视项目的 Docker 承诺为基本方面,并鼓励那些寻找不同部署方法的人探索社区驱动的替代方案。

问:为什么在我的部署中语音转文字(STT)和文字转语音(TTS)不起作用?

答: 语音转文字(STT)和文字转语音(TTS)服务的功能可能需要 HTTPS 才能正常运行。现代浏览器强制执行安全措施,限制某些功能(包括 STT 和 TTS)仅在安全的 HTTPS 连接下工作。如果您的部署未配置为使用 HTTPS,这些服务可能无法按预期工作。确保您的部署通过 HTTPS 访问,可以解决这些问题,启用完整的 STT/TTS 功能。

问:为什么 Open WebUI 不包含内置的 HTTPS 支持?

答: 虽然我们理解希望有一个包含 HTTPS 支持的一体化解决方案,但我们认为这种方法无法充分满足我们用户的多样化需求。直接在项目中实现 HTTPS 可能会限制灵活性,且可能不符合所有用户的特定要求或偏好。为了确保每个人都能根据其独特环境定制设置,我们将 HTTPS 终止的实现留给用户进行生产部署。这一决策允许更大的适应性和自定义。尽管我们没有提供设置 HTTPS 的官方文档,但社区成员可能会根据请求分享经验和建议。

问:我更新/重启/安装了一些新软件后,Open WebUI 不再工作了!

答: 如果您的 Open WebUI 在更新或安装新软件后无法启动,可能是由于直接安装方法引起的,尤其是如果您没有为后端依赖项使用虚拟环境。直接安装对系统环境的变化敏感,如更新或新安装会改变现有依赖项。为了避免冲突并确保稳定性,我们建议使用虚拟环境管理后端的 requirements.txt 依赖项。这将 Open WebUI 依赖项与其他系统包隔离,最大限度地减少此类问题的风险。

问:我更新/重启后,登录不再有效,我不得不创建一个新账户,所有聊天记录都消失了。

答: 此问题通常发生在 Docker 容器创建时没有挂载 /app/backend/data 卷,或者指定的 Open WebUI 卷(通常示例中名为 open-webui)被意外删除。Docker 卷对于在容器生命周期中持久化数据至关重要。如果您发现自己在重启后需要创建新账户,很可能是因为您启动了一个新容器而未附加现有的数据卷。确保 Docker run 命令包含指向正确数据位置的卷挂载,以防止数据丢失。

问:我尝试登录却失败了,创建了一个新账户后被告知需要管理员激活。

答: 当您忘记初始管理员账户的密码时会发生这种情况,初始管理员账户是在首次设置时自动创建的。创建新账户而无法访问管理员账户会导致需要管理员激活。避免丢失初始管理员账户凭据对于无缝访问和管理 Open WebUI 至关重要。请参阅 重置管理员密码 指南获取恢复管理员账户的说明。

问:为什么 Open WebUI 会因为 SSL 错误而无法启动?

答: 您遇到的 SSL 错误可能是由于缺少 SSL 证书或 huggingface.co 配置不正确。要解决此问题,您可以设置 HuggingFace 的镜像站点,例如 hf-mirror.com,并在启动 Docker 容器时指定该镜像地址。使用 -e HF_ENDPOINT=https://hf-mirror.com/ 参数在 Docker run 命令中定义 HuggingFace 镜像地址。例如,您可以修改 Docker run 命令如下:

docker run -d -p 3000:8080 -e HF_ENDPOINT=https://hf-mirror.com/ --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

需要进一步帮助?

如果您有任何进一步的问题或疑虑,请联系我们的 GitHub Issues 页面Discord 频道 获取更多帮助和信息。