本文最后更新于 1519 天前,其中的信息可能已经有所发展或是发生改变。
原教程:https://www.hostloc.com/thread-703431-1-1.html
序言
各位手里可能有那么些个用完12个月免费服务的Azure吃灰号,正好可以搞点有用的东西。Bitwarden就不多说了,自托管的密码管理程序,用起来也蛮舒服的,全平台都有客户端。
Github:
如何安装
- 应用程序服务(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:alpine改成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:alpine
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:alpine
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
目录下其他所有备份,重新启动容器即可还原。 - 关闭注册后不会删除
创建账号
按钮,但已经注册不了了。