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