簡介 #
我個人原本一直使用 Google Password Manager,因為它實在太方便了。不過,密碼資料畢竟是由 Google 的掌握,對於資料掌控權與安全性仍然有所顧慮,因此我最後選擇自己架設開源密碼庫。
Vaultwarden 是一個輕量、開源的 Bitwarden 相容密碼管理伺服器,可自行架設來安全管理密碼與機密資料。
Bitwarden 本身就是一個大廠製作的開源密碼管理庫,有提供免費和付費方案,當然因為官方伺服器開源的關係,也可以自己架設官方維護的版本 bitwarden/server ,但官方的版本記憶體要求竟然要驚人的 2GB 至 4GB,而 Vaultwarden 是基於 Bitwarden 開源修改的,採用 Rust 重寫,比原版更輕量,實際記憶體使用量會依使用者數量、資料庫大小與部署環境而有所不同。
Vaultwarden 功能:
- 儲存帳號密碼、Passkey、個人資訊與 TOTP 驗證碼
- 在絕大多數瀏覽器、裝置上自動填入
- 與 Bitwarden 原版客戶端相容
TOTP 是許多網站使用的雙因素驗證(2FA)驗證碼,Vaultwarden 可以直接儲存 TOTP Secret,在登入網站時自動填入生成的驗證碼。
基本上功能和市面上大多的 Password Manager 差不多。
Vaultwarden GitHub 頁面: dani-garcia/vaultwarden
Vaultwarden / Bitwarden 安全性 #
Vaultwarden / Bitwarden 採用端對端加密與零知識架構,密碼庫資料會以加密形式儲存在伺服器上,伺服器本身並不需要知道使用者的主密碼。不過,這並不代表自架服務「絕對安全」;主密碼強度、備份資料管控以及使用者自己的裝置仍然需要妥善保護。
Vaultwarden 架設教學 #
Vaultwarden 對於硬體設備的要求極低,以 Docker 部署的環境要求如下
- 任意伺服器上,如需要外網存取需配置良好網路環境
- Docker 環境
- RAM: 依實際使用量而定,個人使用通常不需要大量記憶體(我的環境跑起來大約只用不到 500MB)
- 硬碟空間: 100MB 以上 (取決於密碼庫大小)
開始架設 #
- 建立資料夾環境
mkdir vaultwarden/
nano docker-compose.ymldocker-compose.yml填入設定檔:
services:
vaultwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
restart: unless-stopped
environment:
DOMAIN: "https://example.com"
volumes:
- ./vw-data/:/data/
ports:
- 8787:80記得替換 DOMAIN: https://example.com 為自己的網域,應設定為使用者實際存取 Vaultwarden 的完整 HTTPS 網址。容器內部端口使用 80,機器端口可以依照自己的環境需求自訂,我用 8787 作為示範。
- 啟動伺服器
sudo docker compose up -d- 放開防火牆(如果有的話)
sudo ufw allow 8787即可成功在 [你的伺服器]:8787 看到 Vaultwarden 伺服器
外部安全存取你的密碼庫 #
如果需要在任何地方存取你的自架 Vaultwarden,你可以透過 Nginx 或任何反向代理伺服器配置,這裡不贅述。
另外,一定要記得完整配置 TLS 憑證、強制https連線,並且設定防火牆,避免透過IP可以直接存取等等,不然後果大家都知道的,如果服務直接暴露在未加密的 HTTP 連線上,登入資訊與其他敏感資料可能在傳輸過程中遭到竊聽或竄改。因此,只要 Vaultwarden 需要透過網際網路存取,就應該使用 HTTPS,並正確配置 TLS 憑證。
架設後初始化 #
使用電子郵件註冊一個帳號,設定安全的主密碼。
你的帳號/電子郵件資料只保存在這台伺服器上,電子郵件僅是在這台伺服器上辨識你的身分而已,沒有其他用途,並且跟 Bitwarden 官方伺服器不會有任何關係。
注意!如果這個密碼庫只有你/你信任的人要使用,則當他們都註冊完成後,在 docker-compose.yml 中的 environment 加入 SIGNUPS_ALLOWED: false 禁止註冊新帳號。
# docker-compose.yml
environment:
DOMAIN: "你的 domain"
SIGNUPS_ALLOWED: false # 加入這個如何使用 Bitwarden 官方的客戶端登入自架的 Vaultwarden 密碼庫 #
以 Bitwarden Android App 為例:只需在登入時選擇自架,填入自己伺服器的url即可。



總結 #
Vaultwarden 對於想自行掌控密碼資料的人來說,是一個相當輕量的選擇。透過 Docker 可以快速完成部署,再搭配 HTTPS、反向代理、備份與適當的防火牆設定,就能建立一套方便且具備良好安全性的自架密碼管理服務,還可以免去密碼資料掌握在第三方的困擾。