跳到主要内容

重置管理员密码

本文提供 Docker 部署和本地安装场景下重置管理员密码的分步指南。

对于 Docker 部署

第 1 步:生成新的密码哈希

为你的新密码生成 bcrypt 哈希。请把 your-new-password 替换为你想使用的新密码:

htpasswd -bnBC 10 "" your-new-password | tr -d ':
'
备注

输出结果会包含带特殊字符的 bcrypt 哈希。在第 2 步的 Docker 命令中使用时,哈希中的 $ 必须进行三重转义(替换为 \\)。

第 2 步:在 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

如果上面的命令失败,请改用下面的替代方法。

Docker 替代方法

上面的一行命令在某些环境中可能失败,因为 alpine/socat 镜像并不包含 bash。请使用以下分步方法:

  1. 启动一个挂载了 Open WebUI volume 的 Alpine 容器:

    docker run -it --rm -v open-webui:/data alpine
  2. 安装所需工具:

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

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

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

对于本地安装

第 1 步:生成新的密码哈希

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

第 2 步:更新密码

进入 open-webui 目录后运行:

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

请将 HASH 替换为第 1 步生成的 bcrypt 哈希,并将 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 会移除所有已存储数据——包括用户账号、设置、聊天历史和密码。只有在你确实需要完全重新开始时才应这样做。

本内容仅供参考,不构成任何保证、担保或合同承诺。Open WebUI 按“现状”提供。请参阅您的许可协议 以了解适用条款。