重置管理员密码
本文提供 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。请使用以下分步方法:
-
启动一个挂载了 Open WebUI volume 的 Alpine 容器:
docker run -it --rm -v open-webui:/data alpine -
安装所需工具:
apk add apache2-utils sqlite -
生成 bcrypt 哈希:
htpasswd -bnBC 10 "" your-new-password | tr -d ':' -
更新密码:
sqlite3 /data/webui.dbUPDATE auth SET password='HASH' WHERE email='admin@example.com'; -- 退出 sqlite:Ctrl+D