重置管理员密码 🗝️
如果您忘记了管理员密码,请不要担心!下方您将找到为 Docker 🐳 部署和本地安装的 Open WebUI 重置管理员密码的分步指南。
对于 Docker 部署 🐳
请按照以下步骤重置使用 Docker 部署的 Open WebUI 的管理员密码。
步骤 1:生成新的密码哈希 🔐
首先,您需要创建新密码的 bcrypt 哈希。在您的本地机器上运行以下命令,将 your-new-password
替换为您希望使用的密码
htpasswd -bnBC 10 "" your-new-password | tr -d ':\n'
注意: 输出将包含一个带有特殊字符的 bcrypt 哈希,需要仔细处理。哈希中的任何 $
字符都需要进行三重转义(替换为 \\\
),才能在下一步中正确使用。
步骤 2:在 Docker 中更新密码 🔄
接下来,您将在 Docker 部署中更新密码。将以下命令中的 HASH
替换为在步骤 1 中生成的 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,以下是如何直接在您的系统上重置管理员密码的方法。
步骤 1:生成新的密码哈希 🔐
与 Docker 方法一样,首先使用以下命令生成新密码的 bcrypt 哈希。请记住将 your-new-password
替换为您的新密码
htpasswd -bnBC 10 "" your-new-password | tr -d ':\n'
步骤 2:在本地更新密码 🔄
现在,导航到您本地机器上的 open-webui
目录。通过将 HASH
替换为步骤 1 中的 bcrypt 哈希,并将 admin@example.com
替换为您的管理员账户电子邮件,然后执行以下命令来更新您的密码
sqlite3 backend/data/webui.db "UPDATE auth SET password='HASH' WHERE email='admin@example.com';"
备用 Docker 方法
如果您遇到上述问题。 我在 alpine/socat
中链接 bash
命令时遇到问题,因为 bash
不存在。
-
运行连接到 open-webui 卷的
alpine
Linux。docker run -it --rm -v open-webui:/path/to/data alpine
/path/to/data
取决于您的卷设置。-
安装
apache2-utils
和sqlite
apk add apache2-utils sqlite
-
生成
bcrypt
哈希htpasswd -bnBC 10 "" your-new-password | tr -d ':'
-
更新密码
sqlite3 /path/to/data/webui.db
UPDATE auth SET password='HASH' WHERE email='admin@example.com';
-- exit sqlite: [Ctrl + d]
-
删除所有数据
如果您想彻底重置 Open WebUI——包括所有用户数据、设置和密码——请按照以下步骤删除 webui.db
文件。
步骤 1:在您的 Python 环境中定位 webui.db
如果您不确定 webui.db
的位置(特别是如果您正在使用虚拟环境),可以按照以下步骤查找
-
激活您的虚拟环境(如果适用)。
-
打开 Python shell: python
-
在 Python shell 中运行以下代码
import os
import open_webui
# Show where the Open WebUI package is installed
print("Open WebUI is installed at:", open_webui.__file__)
# Construct a potential path to webui.db (commonly located in 'data/webui.db')
db_path = os.path.join(os.path.dirname(open_webui.__file__), "data", "webui.db")
print("Potential path to webui.db:", db_path)
# Check if webui.db exists at that path
if os.path.exists(db_path):
print("webui.db found at:", db_path)
else:
print("webui.db not found at:", db_path)
- 检查输出
- 如果找到文件,您将看到其确切路径。
- 如果未找到,您可能需要执行更广泛的文件系统搜索(例如,在 Linux 上使用
find
或在 Windows/Mac 上进行全局文件搜索)。
步骤 2:删除 webui.db
找到文件后,使用类似以下命令将其删除
rm -rf /path/to/your/python/environment/lib/pythonX.X/site-packages/open_webui/data/webui.db
警告: 删除 webui.db
将删除所有存储的数据,包括用户账户、设置和密码。仅当您确实想要重新开始时才执行此操作!
📖 通过遵循这些简单的步骤,您将很快重新获得 Open WebUI 管理员账户的访问权限。如果在过程中遇到任何问题,请考虑在论坛或社区平台中搜索您的问题。