相信身為開發者,總會在各種網站中註冊賬號,為了方面記憶可以使用同一套賬號密碼進行註冊,自從前段時間學習通時間撞庫後有些人已經開始瘋狂改密碼了,可是密碼一多就很難記憶,最好找個地方儲存賬戶資訊
我曾經使用過手機便籤、筆記軟體,Edge的同步功能,甚至私有的GIT倉庫來記密碼,效果都不是很好,於是前段時間瘋狂尋找開源專案,想要搭建自己的密碼管理系統,終於找到了Bitwarden這個神仙
需要有可以使用伺服器以及可以使用的域名
瞭解並熟悉Docker的簡單使用
瞭解並熟悉Nginx的使用
瞭解HTTPS
Bitwarden是一款開源的密碼管理工具,可以直接存取他們的官網註冊並使用他們的服務,將賬號資訊交給他們管理,也可以自行搭建服務,將賬號密碼存在自己的伺服器上,供自己或者朋友進行使用
根據最近總結的經驗來看,部署Bitwarden的方式大概總結了三種:
- 使用官方提供的的sh指令碼進行安裝,需要系統中安裝好docker、docker-compse
這種方法我已經踩過坑了,首先的確是可以用的,但是執行安裝指令碼後啟動服務,你會發現Docker中多了十多個容器,對於我這種強迫症來說接受不了,而且我的Docker中已經事先安裝了Nginx並設定了網站的反向代理,會和官方提供的指令碼中的nginx衝突導致執行失敗,這個方案直接被pass
- 使用第三方維護的Docker映象:Bitwarden_RS
https://hub.docker.com/r/bitwardenrs/server
這個是由第三方個人維護的整合好的bitwarden映象,pull後可以直接執行並存取,這個映象我也用了一段時間,這期間深深被bitwarden的功能折服,打算寫一篇部落格介紹給更多的人用,所以對這個映象稍微瞭解一下,發現這個映象已經不在維護了,但是功能可以正常使用,如果不介意的話可以使用,但不推薦
第三種方法就是我目前正在使用的方法,我會在下面介紹安裝方法
https://hub.docker.com/r/vaultwarden/server
注意:部署Bitwarden要求系統中安裝了Docker和Nginx服務
推薦使用Vaultwarden映象,他與第二種安裝方案中的映象是同一個作者,因docker映象名稱容易引人誤會所以另開一個映象,如果想快速安裝Bitwarden使用下面這段命令就可以
# -p埠對映不多解釋,-v繫結資料目錄不多解釋
docker run -d --name bw \
-p 8002:80 \
-v /opt/docker/bw/:/data/ \
vaultwarden/server:latest
然後通過伺服器IP地址+埠號就可以存取服務了,如下所示
但是僅僅這樣是用不了的,出於安全考慮Bitwarden要求必須使用https進行存取,否則報錯
之前購買VPS的的部落格中提過,我的域名是交給CloudFlare管理的,這裡需要開啟強制https功能,如果你沒有這個條件的話需要用自己的域名申請一個SSL證書上傳至伺服器,然後設定Nginx,這裡請百度
然後設定域名解析,將域名解析到你的伺服器IP地址上,如下所示
然後編輯nginx的組態檔,設定Bitwarden的反向代理
server {
listen 80;
server_name bitwarden.hanzhe.site;
location / {
proxy_pass http://666.666.666.666:8002;
}
}
存取設定好的域名,就可以存取到Bitwarden網站了,強制https後註冊登入都一切順利,註冊登入後在這個位置設定中文
之後就可以正常使用了,可以在儲存密碼後安裝瀏覽器外掛,設定遠端地址後檢視賬號密碼,或者使用密碼填充
也可以GooglePlay商店或者百度下載手機端,同樣設定伺服器URL後登陸,進行新增檢視賬戶資訊,IOS也可以
https://bitwarden.hanzhe.site 這個就作為演示站供大家參考,已開放註冊,信得過的話也可以聯絡我邀請你使用我私有的bitwarden
在建立容器的時候可以指定很多環境變數,這裡簡單介紹幾個
管理員存取密碼,設定密碼後可以存取管理頁面
-e ADMIN_TOKEN=some_random_token_as_per_above_explanation \
是否允許註冊,false為禁止之策
-e SIGNUPS_ALLOWED=false \
是否允許邀請註冊,在禁止註冊的情況下可以邀請某個指定的使用者進行註冊
-e INVITATIONS_ALLOWED=false \
是否直接在頁面顯示密碼提示,不通過郵箱
-e SHOW_PASSWORD_HINT=false \
更多設定項請參照官方檔案 https://github.com/dani-garcia/vaultwarden/wiki
作者多數為原創文章 ( 部分轉載已標出 ),目前資歷尚淺文章內描述可能有誤,對此造成的後果深表歉意,如有錯誤還望指正