跳至主要内容

重設您的管理員密碼 🗝️

如果您忘記了管理員密碼,別擔心!以下提供了分步指南,教您如何在 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 不存在。

  1. 運行與 open-webui 卷相連的 alpine linux

    docker run -it --rm -v open-webui:/path/to/data alpine

    /path/to/data 取決於 您的 卷設置。

    1. 安裝 apache2-utilssqlite

      apk add apache2-utils sqlite
    2. 生成 bcrypt 雜湊:

      htpasswd -bnBC 10 "" your-new-password | tr -d :
    3. 更新密碼:

      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 的位置(特別是使用虛擬環境時),可以按照以下步驟查找:

  1. 激活您的虛擬環境(如果適用)。

  2. 打開 Python shell: python

  3. 在 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)
  1. 檢查輸出:
    • 如果找到文件,您將看到其確切路徑。
    • 如果未找到,您可能需要進行更廣泛的文件系統搜索(例如,在 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 會刪除所有存儲的數據,包括用戶帳戶、設置和密碼。僅在您確實想要重新開始時才進行此操作!