如何使用 Docker 安裝 Vaultwarden:密碼自架完整指南

最後更新: 2026年31月08日

  • 使用 Rust 語言編寫的輕量級版本,完全相容於官方 Bitwarden 用戶端。
  • 使用 Docker 容器簡化部署,實現完全隱私控制。
  • 適用於小型伺服器或樹莓派的理想最低硬體需求。
如何使用 Docker Compose 安裝 Vaultwarden

Vaultwarden 可讓您在自己的伺服器上託管與 Bitwarden 用戶端相容的密碼管理器。這樣,您可以決定資訊的儲存位置、服務的存取權限以及備份方式。

從一開始就明確這一點很重要: Vaultwarden 不是 Bitwarden 的官方伺服器這是一個用 Rust 編寫的獨立社群驅動型實現,它復刻了 Bitwarden 的大部分 API。因此,它可以與 Bitwarden 的官方行動應用程式、桌面程式和擴充功能一起使用。

自託管服務可以提供更多控制權,但是 它並不能自動保證更高的安全性。從那一刻起,您將負責安裝更新、確保存取安全性、審查日誌、維護 HTTPS 以及確保備份可以復原。

相關文章:
最佳密碼管理器

使用 Docker 安裝 Vaultwarden 需要哪些工具?

使用 Docker 安裝 Vaultwarden 需要哪些工具?

在開始之前,您需要一個與 Docker 相容的系統,並且在您需要同步密碼時系統必須保持開機狀態。這可以是 Linux 伺服器、NAS、迷你電腦或架構與鏡像支援的 Raspberry Pi。

您還需要:

  • Docker 引擎 已安裝並運作正常。
  • 目前附加元件 Docker Compose.
  • 用於永久儲存資料的資料夾。
  • 擁有管理 Docker 的終端存取權限。
  • 如果您要從其他裝置使用該服務,請採用安全的存取方式。

並非所有安裝都要求統一的記憶體或儲存空間。實際佔用空間取決於使用者數量、附件數量、儲存空間大小以及同一台電腦上執行的其他服務。對於家庭用戶而言,它通常是一個輕量級應用程序,但您仍應預留足夠的空間。 資料及其備份.

使用以下命令檢查安裝情況:

docker --version
docker compose version

如果兩個命令都顯示版本訊息,則可以繼續。

如何使用 Docker Compose 安裝 Vaultwarden

如何使用 Docker 安裝 Vaultwarden

建立一個專用資料夾並將其放入:

mkdir vaultwarden
cd vaultwarden

在資料夾內,建立一個名為“ compose.yml 初始配置如下:

services:
  vaultwarden:
    image: vaultwarden/server:latest
    container_name: vaultwarden
    restart: unless-stopped
    environment:
      SIGNUPS_ALLOWED: "true"
    volumes:
      - ./vw-data:/data
    ports:
      - "127.0.0.1:8080:80"

集會 ./vw-data:/data 這至關重要。資料夾 /data 它包含伺服器使用的資料庫、附件、配置和金鑰。如果您在未保留此資料夾的情況下刪除容器,則會遺失儲存的資訊。

地址 127.0.0.1 此初始安裝僅在伺服器端回應。這適合在不將連接埠暴露到網路的情況下測試 Vaultwarden。

啟動容器:

docker compose up -d

查看其狀態:

docker compose ps
docker compose logs --tail=100 vaultwarden

您可以在同一裝置上開啟:

http://localhost:8080

透過以下方式存取 localhost 這用於完成初始設定。若要從另一台電腦、行動應用程式或分機連接,您需要使用 HTTPS 設定安全位址。

如何建立您的第一個帳戶並關閉註冊

打開網頁介面,建立你的第一個帳戶,並驗證你是否可以登入。使用 長、獨一無二且易於記憶的主密碼因為它能保護整個倉庫的存取權限。

建立必要的帳戶後,進行編輯 compose.yml 以及變化:

SIGNUPS_ALLOWED: "true"

經過:

SIGNUPS_ALLOWED: "false"

透過重新建立容器來套用變更:

docker compose up -d

Vaultwarden 預設允許匿名使用者建立帳戶。不必要地開放註冊功能會使第三方更容易佔用空間或未經許可使用您的伺服器。

獨家內容 - 點擊這裡  BitLocker復原金鑰儲存在哪裡?如何找到它?

如果您之後啟用管理面板,即使停用公開註冊,您仍然可以傳送邀請。

為什麼 Vaultwarden 需要 HTTPS

該網上商店使用瀏覽器的 Web Crypto API。這些加密功能通常僅在以下情況下可用: 安全性上下文,例如 HTTPS 或 localhost.

因此,打開 http://192.168.1.50:8080 從另一台電腦存取時,即使容器正在運行,也可能顯示錯誤。在網路上發布連接埠並不能取代 HTTPS 配置。

使用 Vaultwarden 的常見方法有三種:

  • 僅限伺服器端: 透過以下方式存取 localhost可用於測試。
  • 在專用網路或 VPN 上: 訪問受限,但需保持有效的HTTPS證書。
  • 來自互聯網: 網域名稱、反向代理、有效證書和配置正確的防火牆。

您無需公開 Vaultwarden 即可在家外使用它。 VPN 可以限制對您授權裝置的訪問,但用戶端使用的位址仍然必須具有它們認可的憑證。

如何使用 Caddy 配置 HTTPS

如何使用 Caddy 配置 HTTPS

Caddy 是最簡單的選擇之一,因為它可以透過 ACME 自動申請和續約證書。要使用公鑰證書,網域必須解析到您的伺服器,並且必要的連接埠必須可存取。

Vaultwarden 和 Caddy 的聯合配置可以使用此檔案。 compose.yml:

services:
  vaultwarden:
    image: vaultwarden/server:latest
    container_name: vaultwarden
    restart: unless-stopped
    environment:
      DOMAIN: "https://vault.example.com"
      SIGNUPS_ALLOWED: "false"
    volumes:
      - ./vw-data:/data

  caddy:
    image: caddy:2
    container_name: vaultwarden-caddy
    restart: unless-stopped
    depends_on:
      - vaultwarden
    ports:
      - "80:80"
      - "443:443"
      - "443:443/udp"
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile:ro
      - ./caddy-data:/data
      - ./caddy-config:/config

替換 vault.example.com 針對您的實際網域名稱。然後建立一個名為 Caddyfile:

vault.example.com {
    reverse_proxy vaultwarden:80 {
        header_up X-Real-IP {remote_host}
    }
}

啟動服務:

docker compose up -d

Caddy 會透過 Compose 建立的內部網路向容器發送請求。目前配置也可以透過相同目標處理 WebSocket 通知,因此無需發布另一個 Vaultwarden 連接埠。

變數 DOMAIN 必須包含完整的外部 URL,包括 https://錯誤的地址可能會導致附件、連結、身份驗證或用戶端出現問題。

如何連接官方 Bitwarden 應用

在擴充功能的登入介面、行動應用程式或桌面程式中,開啟伺服器選擇器並選擇該選項。 自託管.

請輸入完整地址:

https://vault.example.com

登入前請儲存設定。每個客戶端必須連接到同一台伺服器,變更才能正確同步。

如果您使用私人機構頒發的證書,則需要在所有裝置上正確安裝並信任該機構。為避免相容性問題,最好使用有效的公用憑證或您可以妥善控制其信任鏈的私有憑證解決方案。

客戶端連線成功後,您可以 將 Chrome 密碼導入 Vaultwarden 並檢查它們是否出現在您的所有裝置上。

如何保護管理面板

Vaultwarden 提供了一個可選面板 /admin在這裡,您可以查看使用者、組織、診斷資訊和某些伺服器選項。

如果你不需要面板,最安全的做法是… 保持禁用狀態要啟用它,您必須進行配置。 ADMIN_TOKEN它不會以明文形式儲存密碼,而是產生一個 Argon2id 雜湊值:

docker run --rm -it vaultwarden/server /vaultwarden hash

該命令會提示輸入密碼兩次,並返回一個以“ $argon2id$.

避免美元符號問題的便捷方法是將其儲存到檔案中。 .env 位於旁邊 compose.yml:

VAULTWARDEN_ADMIN_TOKEN='$argon2id$v=19$m=...'

然後將其添加到服務中:

environment:
  ADMIN_TOKEN: "${VAULTWARDEN_ADMIN_TOKEN}"

如果你直接把哈希值寫進去 compose.yml你必須將每個美元符號乘以 2。 $$ 防止 Docker Compose 將其解釋為變數。

獨家內容 - 點擊這裡  網路安全威脅有哪些?

使用以下命令檢查已處理的設定:

docker compose config

此面板只能透過HTTPS存取。如果可能,請將其存取路徑限制在本機網路、VPN或特定IP位址。

請注意,儲存選項後… /admin秘藏守衛者創建 config.json它的值優先於等效的環境變數。這種優先順序解釋了為什麼在編輯 Compose 檔案時,在許多情況下看起來沒有任何變化。

保護秘藏守衛的必要措施

安全措施並非僅僅啟用 HTTPS 就結束了。至少應採取以下措施:

  • 使用以下方法停用開啟註冊表: SIGNUPS_ALLOWED=false.
  • 使用獨一無二且強度高的主密碼。
  • 積極的 雙重身分驗證 所有帳戶。
  • 將身份驗證復原代碼保存在其他安全位置。
  • 定期更新鏡像和主機系統。
  • 請勿在容器內掛載不必要的資料夾或 Docker 套接字。
  • 使用防火牆限制真正必要的連接埠。
  • 請勿公開資料庫或資料夾 vw-data.

Fail2ban 可以封鎖累積登入失敗次數的位址,但當有反向代理時,必須謹慎配置。 Caddy 或 Nginx 必須傳輸真實的 IP 位址;否則,Fail2ban 可能會封鎖代理本身的位址。

您也可以停用密碼提示的顯示。當伺服器公開可存取時,這些提示可能會助長密碼猜測攻擊。

要了解更多關於這些做法的信息,您可以諮詢如何 安全地使用密碼管理器.

如何設定電子郵件通知

SMTP 設定可讓您傳送邀請、驗證和通知。您需要指定伺服器、寄件者、連接埠、安全方法以及電子郵件服務提供者提供的憑證。

不要將 SMTP 郵件與保險庫備份混淆,也不要將其作為帳戶恢復的唯一途徑。如果您忘記了主密碼且沒有設定其他復原方法,則可能會遺失對加密資料的存取權。

儲存設定後,發送測試郵件,如果郵件未送達,請檢查日誌。同時,請檢查您的垃圾郵件資料夾和 SMTP 服務提供者的限制。

如何對 Vaultwarden 進行完整備份

SQLite資料庫儲存使用者、物品、裝置和組織,但是 它不包含所有文件附件和某些提交內容儲存在單獨的目錄中。

完整副本應包含:

  • db.sqlite3 或資料庫的一致副本。
  • 資料夾 attachments.
  • 資料夾 sends如果你想保留這些文件的話。
  • 文件 config.json如果你使用面板的話。
  • 文件 rsa_key*.
  • Compose 檔案、Caddy 及其變數。

為了進行簡單且一致的備份,您可以暫時停止 Vaultwarden 並歸檔資料夾:

docker compose stop vaultwarden
tar -czf vaultwarden-backup-$(date +%F).tar.gz vw-data compose.yml Caddyfile .env
docker compose start vaultwarden

該檔案可能包含管理令牌和 SMTP 憑證。 複製前請先加密。 傳輸到另一台電腦或遠端儲存設備。

如果您不想停止該服務,Vaultwarden 提供了一個使用 SQLite 複製機制的命令:

docker exec vaultwarden /vaultwarden backup

此命令可保護資料庫,但您仍應備份附件、設定檔和金鑰。請設定備份自動化,至少保留一份異地備份,並定期測試復原功能。

獨家內容 - 點擊這裡  Discord 會因可疑活動封鎖您的帳號:真實原因以及如何保護自己

如何使用 Docker 更新 Vaultwarden

更新前請先建立已驗證的副本。然後運行:

docker compose pull
docker compose up -d

查看狀態和最新消息:

docker compose ps
docker compose logs --tail=100 vaultwarden

Docker 將下載映像並重新建立容器,同時保留映像。 vw-data請勿在未先檢查將要刪除哪些容器、鏡像和網路之前使用全域清理命令。

在穩定性至關重要的安裝環境中,您可以固定使用特定版本的鏡像,而不是始終使用預設版本。 latest這樣您就可以查看版本說明,並決定何時套用每個更新。

使用 Docker 安裝 Vaultwarden 時常見的錯誤

使用 Docker 安裝 Vaultwarden 時常見的錯誤

此介面在本機上可以正常運作,但在其他電腦上則無法正常運作。

該連接埠受限於 127.0.0.1 或者,瀏覽器在透過 HTTP 存取時會拒絕加密功能。請在其他裝置上使用該服務之前設定 HTTPS 位址。

官方客戶端無法連接到伺服器

選擇環境 自託管 並輸入確切地址 https://檢查證書、DNS、代理和變量 DOMAIN.

容器啟動後,資料在重新建立時消失了。

音量控制未正確安裝。請檢查一下。 ./vw-data:/data 設定中會顯示「您正在從預期資料夾執行 Compose」。

我無法建立另一個帳戶

Si SIGNUPS_ALLOWEDfalse此行為正確。請從控制台發送邀請,或僅在建立帳戶期間臨時啟用註冊功能。

ADMIN_TOKEN 哈希值無效

檢查符號的內插情況 $使用文件 .env 如果直接在 Compose 中插入字串,請使用單引號或雙引號。

環境因素似乎被忽略了。

檢查它是否存在 vw-data/config.json從面板儲存的選項可能會覆蓋在面板中定義的變數。 compose.yml.

這些憑證在瀏覽器中可以使用,但在行動裝置上無法使用。

該設備可能不信任整個證書鏈。請使用受認可的憑證授權機構,或正確安裝您自己的憑證授權單位及其憑證。

附件失效

檢查一下 DOMAIN 匹配外部地址並確保代理允許所需的請求大小。同時檢查可用空間和權限。 vw-data.

Vaultwarden 無法寫入 vw-data 內部。

主機資料夾權限不相容。請根據日誌中顯示的錯誤檢查擁有者和權限。請勿使用 chmod 777 作為永久解決方案。

Fail2ban 封鎖了錯誤的地址

代理伺服器未傳輸真實 IP 位址,或 Fail2ban 讀取了錯誤的欄位。請正確配置。 X-Real-IP 或與您的代理商對應的標頭。

恢復後的副本不包含附件。

僅備份了 SQLite 資料庫。請同時恢復資料夾。 attachments y sends除了 RSA 配置和金鑰之外。

Vaultwarden 允許您使用組織和收藏集來 共享家庭密碼 使用相容的客戶端。在新增更多使用者之前,請先驗證 HTTPS、兩步驟驗證和備份功能是否正常運作。

最終可以得到一個快速、私密且靈活的密碼管理器,但其安全性取決於維護。只有配合更新、限制存取權和成熟的復原策略,對伺服器的控制才能真正發揮作用。

如何在不發送文件的情況下與家人安全地共享密碼
相關文章:
如何在不發送文件的情況下與家人安全地共享密碼