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 目录下其他所有备份,重新启动容器即可还原。
关闭注册后不会删除创建账号按钮,但已经注册不了了。

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。