跳到主要内容

重置您的管理员密码 🗝️

如果您忘记了管理员密码,别担心!下面您将找到针对 Docker 🐳 部署和本地安装的 Open WebUI 的详细步骤来重置您的管理员密码。

对于 Docker 部署 🐳

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

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

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

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

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

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

接下来,您需要在 Docker 部署中更新密码。在以下命令中,将 HASH 替换为第一步生成的 bcrypt 哈希,并确保对所有 $ 字符进行三重转义。同时,将 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 目录。通过将 HASH 替换为第一步生成的 bcrypt 哈希,并将 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 管理员账户的访问权限。如果在过程中遇到任何问题,请考虑在论坛或社区平台上搜索您的问题。