CJW

CJW 个人博客

分享网络知识和知识记录
github
email

利用Azure免費Web搭建Bitwarden(可自動備份/還原)

原教程:https://www.hostloc.com/thread-703431-1-1.html

序言
各位手裡可能有那麼些個用完 12 個月免費服務的 Azure 吃灰號,正好可以搞點有用的東西。Bitwarden 就不多說了,自托管的密碼管理程式,用起來也蠻舒服的,全平台都有客戶端。

Github:
GitHub
hjh142857/scripts
Some Personal Scripts
40 20
如何安裝
應用程式服務 (App Service),添加,輸入名稱,發佈選中 Docker,操作系統選 Linux,區域按需選擇,SKU 和大小選擇免費的 F1 計劃,直接查看並創建,再點擊創建。
稍等幾分鐘部署完成後點擊轉入資源。
修改一些環境配置,側邊欄 設置(配置), 應用程式設置,WEBSITES_ENABLE_APP_SERVICE_STORAGE 值改為 true,部署槽位設置不要勾選。
側邊欄 設置(配置),常規設置,Web 套接字 (web sockets) 改為開,點擊保存,繼續。
側邊欄 開發工具(高級工具) – 轉到 – 導航欄點擊 Bash,執行如下命令,可以 Ctrl+V 粘貼。
mkdir /home/site/wwwroot/bitwarden
wget -P /home/site/wwwroot/bitwarden/
https://raw.githubusercontent.com/hjh142857/scripts/master/Azure_Bitwarden/bitwarden.sh
6、側邊欄 設置(容器配置),Docker Compose (預覽版) ,Docker Hub,公開 Public,連續部署(關),按自己需求修改好 docker-compose.yml 中的環境變量配置,粘貼完 yml 配置後點擊保存(tips: yml 配置的中文註釋要刪掉,不然會出現點保存沒反應)。
7、側邊欄 概述 Overview – 重新啟動 Restart。
8、差點漏了,弄完之後去https://uptimerobot.com/ 開一個網頁監控防止休眠,6 小時實測,設定半小時一次 http 訪問就沒問題了。
如何更新鏡像
保證兩倍定時備份週期內沒有提交密碼更新或註冊新用戶,之後按照步驟 7 重新啟動即可。如 YML 文件中默認設置的定時週期是 10 分鐘,則 20 分鐘內不提交新的數據即可。正常情況 Azure 會自動拉取最新的鏡像,如果發現沒有自動拉取最新鏡像,可以在 YML 配置文件中修改 image 項目,指定引用的鏡像版本,如把 image: bitwardenrs/server改成 image: bitwardenrs/server:1.15.1-alpine。建議選擇 alpine 打包的系列以節省免費計劃有限的資源配額。

Web Admin 登陸後跳轉到 localhost 怎麼辦
已解決,參照 20200616 更新後的 YML 配置文件,添加 DOMAIN 環境變量。
YML 的參考配置
Github:https://github.com/hjh142857/scripts/tree/master/Azure_Bitwarden

version: '3'

services:
bitwarden:
image: bitwardenrs/server
restart: always
volumes:
- ${WEBAPP_STORAGE_HOME}/site/wwwroot/bitwarden:/home
entrypoint: /home/bitwarden.sh
command: ["/bitwarden_rs"]
environment: # 環境變量配置完成必須刪除所有中文註釋,否則無法保存
- WEBSOCKET_ENABLED=true # 啟用 websocket,用於推送密碼變化
- SIGNUPS_ALLOWED=true # 允許註冊新用戶,設置為 false 則禁止新註冊
- WEB_VAULT_ENABLED=true # 用戶 web 頁面,設置為 false 則關閉
- ADMIN_TOKEN=your_web_admin_panel_password # web 管理員頁面的密碼,不設置則關閉管理面板,詳細請閱讀 README
- DOMAIN=https://your_domain # 域名設置,免費 F1 計劃域名格式為https://xxx.azurewebsites.net
- REALTIME_BAK_CYCLE=10 # 定時備份間隔分鐘數,需要能被 60 整除,設置為 0 則關閉所有備份(包括 FTP 備份)
- DAILY_BAK_COUNTS=5 # FTP 每日備份的保留份数,每天北京時間 0 時備份
- FTP_URL=ftp://your_ftp_url/your_folder/ # FTP 備份地址,必須以 / 結尾,否則會出現錯誤。不設置本項則禁用遠程 FTP 備份
- FTP_USER=your_ftp_username # FTP 用戶名,不啟用遠程 FTP 備份可以不設置
- FTP_PASS=your_ftp_password # FTP 密碼,不啟用遠程 FTP 備份可以不設置

nginx:
image: nginx
volumes:
- ${WEBAPP_STORAGE_HOME}/site/wwwroot/bitwarden:/home
ports:
- "80:80"
restart: always
entrypoint: /home/bitwarden.sh
command: ["nginx","-g","daemon off;"]
depends_on:
- bitwarden
一些小細節
完整版請大家移步作者的 Github:https://github.com/hjh142857/scripts/tree/master/Azure_Bitwarden
在此我節選一部分

在自己註冊帳號後想關閉註冊,請等 /home/site/wwwroot/bitwarden/backup_realtime 目錄下生成新的備份文件後再修改 YML 關閉註冊。
當前免費的 F1 計劃 websocket 有 BUG 暫時無法使用,正在解決中,參考 Azure 官方文檔、Github Issue。
從 FTP 下載備份還原,下載完成後放到 /home/site/wwwroot/bitwarden/backup_daily 目錄下並清空 backup_realtime 和 backup_daily 目錄下其他所有備份,重新啟動容器即可還原。
關閉註冊後不會刪除創建帳號按鈕,但已經註冊不了了。

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。