重設您的管理員密碼 🗝️
如果您忘記了管理員密碼,別擔 心!以下提供了分步指南,教您如何在 Docker 🐳 部署和 Open WebUI 的本地安裝中重設管理員密碼。
Docker 部署 🐳
按照以下步驟來重設使用 Docker 部署的 Open WebUI 的管理員密碼。
第一步:生成新的密碼雜湊 🔐
首先,您需要為新密碼創建一個 bcrypt 雜湊。在本地機器上運行以下命令,將 your-new-password
替換為您希望使用的密碼:
htpasswd -bnBC 10 "" your-new-password | tr -d :\n
**注意:**輸出將包含一個帶有特殊字符的 bcrypt 雜湊。需要小心處理其中的任何 $
字符,必須三重轉義(替換為 \\\
)才能在下一步中正確使用。
第二步:在 Docker 中更新密碼 🔄
接下來,您需要在 Docker 部署中更新密碼。使用在第一步中生成的 bcrypt 雜湊替換以下命令中的 HASH
,並檢查是否三重轉義了 $
字符。另外,將 [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 的本地安裝版本,以下是在您的系統上直接重設管理員密碼的方法。
第一步:生成新的密碼雜湊 🔐
正如 Docker 方法一樣,首先生成一個新密碼的 bcrypt 雜湊,使用以下命令。記得將 your-new-password
替換為您的新密碼:
htpasswd -bnBC 10 "" your-new-password | tr -d :\n
第二步:本地更新密碼 🔄
現在,請導航到您本地機器上的 open-webui
目錄。通過替換第一步中的 bcrypt 雜湊到 HASH
,並將您的管理員帳戶電子郵件替換為 [email protected]
來運行以下命令:
sqlite3 backend/data/webui.db "UPDATE auth SET password=HASH WHERE [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=admin@example.com;
-- 退出 sqlite:[Ctrl + d]
-
清除所有數據
如果您想要完全重設 Open WebUI——包括所有用戶數據、設置和密碼——請按照以下步驟刪除 webui.db
文件。
第一步:定位您的 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 上進行全局文件搜索)。
第二步:刪除 webui.db
在定位此文件後,使用類似以下命令將其刪除:
rm -rf /path/to/your/python/environment/lib/pythonX.X/site-packages/open_webui/data/webui.db
**警告:**刪除 webui.db
會刪除所有存儲的數據,包括用戶帳戶、設置和密碼。僅在您確實想要重新開始時才進行此操作!