重置您的管理员密码
在 Docker 和本地安装中重置您的管理员密码的逐步指南。
针对 Docker 部署
步骤 1:生成新的密码 Hash
创建您新密码的 bcrypt Hash。将 your-new-password 替换为您想要使用的实际密码:
htpasswd -bnBC 10 "" your-new-password | tr -d ':\n'备注
输出将包含一个带有特殊字符的 bcrypt Hash。在步骤 2 的 Docker 命令中,Hash 中的任何 $ 字符都必须进行三重转义(替换为 \\\)。
步骤 2:在 Docker 中更新密码
将 HASH 替换为步骤 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如果上述命令失败,请使用下方的备选方法。
备选 Docker 处理方法
上述单行命令在某些环境中可能会失败,因为 alpine/socat 镜像不包含 bash。请改用以下分步处理方法:
-
启动一个挂载了 Open WebUI 数据卷的 Alpine 容器:
docker run -it --rm -v open-webui:/data alpine -
安装所需的工具:
apk add apache2-utils sqlite -
生成 bcrypt Hash:
htpasswd -bnBC 10 "" your-new-password | tr -d ':' -
更新密码:
sqlite3 /data/webui.dbUPDATE auth SET password='HASH' WHERE email='admin@example.com'; -- 退出 sqlite:使用快捷键 Ctrl+D
针对本地安装
步骤 1:生成新的密码 Hash
htpasswd -bnBC 10 "" your-new-password | tr -d ':\n'步骤 2:更新密码
导航至 open-webui 目录并运行:
sqlite3 backend/data/webui.db "UPDATE auth SET password='HASH' WHERE email='admin@example.com';"将 HASH 替换为步骤 1 中的 bcrypt Hash,将 admin@example.com 替换为您的管理员邮箱。
重置所有数据
如果您希望彻底重置 Open WebUI —— 包括所有的用户数据、设置和密码 —— 请删除 webui.db 文件。
步骤 1:定位 webui.db
如果您不确定 webui.db 的存放位置,可以使用 Python shell 寻找它:
import os
import open_webui
# 显示 Open WebUI 包的安装路径
print("Open WebUI is installed at:", open_webui.__file__)
# 构建预期的数据库路径
db_path = os.path.join(os.path.dirname(open_webui.__file__), "data", "webui.db")
if os.path.exists(db_path):
print("webui.db found at:", db_path)
else:
print("webui.db not found at:", db_path)
print("Try: find / -name 'webui.db' 2>/dev/null")步骤 2:删除 webui.db
rm /path/to/webui.db注意
删除 webui.db 会清除所有存储的数据 —— 用户账户、设置、对话历史记录和密码。仅在您需要全新开始 时才这样做。