重置您的管理员密码 🗝️
如果您忘记了管理员密码,不用担心!以下是重置管理员密码的分步指南,适用于 Docker 🐳 部署和 Open WebUI 的本地安装。
针对 Docker 部署 🐳
按照以下步骤重置使用 Docker 部署的 Open WebUI 管理员密码。
步骤 1:生成一个新密码的哈希值 🔐
首先,您需要为新密码生成 bcrypt 哈希值。在本地机器上运行以下命令,将 your-new-password
替换为您希望设置的新密码:
htpasswd -bnBC 10 "" your-new-password | tr -d '&:\n'
注意: 输出会包含需要小心处理的特殊字符。如果哈希值中包含 $
符号,则需要三重转义(替换为 \\\
)以确保下一步操作的正确性。
步骤 2:在 Docker 中更新密码 🔄
接下来,您需要在 Docker 部署中更新密码。将以下命令中的 HASH
替换为步骤 1 中生成的 bcrypt 哈希值,并确保三重转义任何 $
符号。同时,用您的管理员账户邮箱替换 [email protected]
。
重要提示: 以下命令可能并非在所有情况下都有效。如果对您无效,请尝试下面的替代命令。
docker run --rm -v open-webui:/data alpine/socat EXEC:"bash -c 'apk add sqlite && echo UPDATE auth SET password='\''HASH'\'' WHERE email='\''[email protected]'\''; | 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
目录。用步骤 1 中的 bcrypt 哈希值替换 HASH
,用您的管理员账户邮箱替换 [email protected]
,然后执行以下命令:
sqlite3 backend/data/webui.db "UPDATE auth SET password='HASH' WHERE email='[email protected]';"
备用的 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='[email protected]';
-- 退出 sqlite: [Ctrl + d]
-
删除所有数据
如果您想要 完全重置 Open WebUI,包括所有用户数据、设置和密码,请按照以下步骤删除 webui.db
文件。
步骤 1:在 Python 环境中找到 webui.db
如果您不确定 webui.db
所在的位置(尤其是在使用虚拟环境时),可以按照以下步骤找到它:
-
激活您的虚拟环境(如果适用)。
-
打开 Python shell: python
-
在 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)
- 查看输出结果:
- 如果找到文件,将显示其确切路径。
- 如果未找到,您可能需要执行更广泛的文件系统搜索(例如,在 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
将会移除所有存储的数据,包括用户账户、设置和密码。仅在您确实想要重新开始时才执行此操作!