Skip to main content

重置您的管理员密码 🗝️

如果您忘记了管理员密码,不用担心!下面您将找到为 Docker 🐳 部署和 Open WebUI 本地安装重置管理员密码的分步指南。

针对 Docker 部署 🐳

按照以下步骤重置使用 Docker 部署的 Open WebUI 的管理员密码。

第一步:生成新的密码哈希 🔐

首先,您需要创建新密码的 bcrypt 哈希。在本地计算机上运行以下命令,将 your-new-password 替换为您希望使用的密码:

htpasswd -bnBC 10 "" your-new-password | tr -d ':\n'

注意: 输出将包含需要小心处理的特殊字符的 bcrypt 哈希。哈希中的任何 $ 字符都需要三重转义(替换为 \\\)以便在下一步中正确使用。

第二步:在 Docker 中更新密码 🔄

接下来,您将在 Docker 部署中更新密码。用步骤 1 中生成的 bcrypt 哈希替换以下命令中的 HASH,确保三重转义任何 $ 字符。同时,将 admin@example.com 替换为与您的管理员帐户关联的电子邮件地址。

重要: 以下命令可能并不适用于所有情况。如果它不适用于您,请尝试下面的替代命令。

docker run --rm -v open-webui:/data alpine/socat EXEC:"bash -c 'apk add sqlite && echo UPDATE auth SET password='\''HASH'\'' WHERE email='\''admin@example.com'\''; | sqlite3 /data/webui.db'", STDIO

针对本地安装 💻

如果您有 Open WebUI 的本地安装,以下是如何直接在系统上重置管理员密码。

第一步:生成新的密码哈希 🔐

与 Docker 方法一样,首先使用以下命令生成新密码的 bcrypt 哈希。记得将 your-new-password 替换为您的新密码:

htpasswd -bnBC 10 "" your-new-password | tr -d ':\n'

第二步:本地更新密码 🔄

现在,导航到本地计算机上的 open-webui 目录。通过将步骤 1 中的 bcrypt 哈希替换为 HASH,并将 admin@example.com 替换为您的管理员帐户电子邮件,执行以下操作:

sqlite3 backend/data/webui.db "UPDATE auth SET password='HASH' WHERE email='admin@example.com';"

替代 Docker 方法

如果您在上述方法中遇到问题。 我在 alpine/socat 中链接 bash 命令时遇到了问题,因为 bash 不存在。

  1. 运行连接到 open-webui 卷的 alpine Linux。

    docker run -it --rm -v open-webui:/path/to/data alpine

    /path/to/data 取决于 您的 卷设置。

    1. 安装 apache2-utilssqlite

      apk add apache2-utils sqlite
    2. 生成 bcrypt 哈希:

      htpasswd -bnBC 10 "" your-new-password | tr -d ':'
    3. 更新密码:

      sqlite3 /path/to/data/webui.db
      UPDATE auth SET password='HASH' WHERE email='admin@example.com';
      -- 退出 sqlite:[Ctrl + d]

清除所有数据

如果您想完全重置 Open WebUI,包括所有用户数据、设置和密码,请按照以下步骤删除 webui.db 文件。

第一步:在您的 Python 环境中定位 webui.db

如果您不确定 webui.db 的位置(尤其是在使用虚拟环境时),可以通过以下步骤找到:

  1. 激活您的虚拟环境(如果适用)。

  2. 打开 Python shell: python

  3. 在 Python shell 中运行以下代码:

   import os
import open_webui

# 显示 Open WebUI 包的安装位置
print("Open WebUI 安装在:", open_webui.__file__)

# 构建 webui.db 的潜在路径(通常位于 'data/webui.db')
db_path = os.path.join(os.path.dirname(open_webui.__file__), "data", "webui.db")
print("webui.db 的潜在路径:", db_path)

# 检查 webui.db 是否存在于该路径
if os.path.exists(db_path):
print("webui.db 位于:", db_path)
else:
print("webui.db 未找到:", db_path)
  1. 检查输出:
    • 如果找到文件,您将看到其确切路径。
    • 如果没有,您可能需要执行更广泛的文件系统搜索(例如,在 Linux 上使用 find 或在 Windows/Mac 上进行全局文件搜索)。

第二步:删除 webui.db

一旦找到文件,使用类似以下的命令将其删除:

   rm -rf /path/to/your/python/environment/lib/pythonX.X/site-packages/open_webui/data/webui.db

警告: 删除 webui.db 将删除所有存储的数据,包括用户帐户、设置和密码。只有在您确实想要重新开始时才这样做!

通过遵循这些简单的步骤,您将很快重新获得对 Open WebUI 管理员帐户的访问权限。如果在过程中遇到任何问题,请考虑在论坛或社区平台上搜索您的问题。