结合宝塔和 Docker 安装 Bitwarden 及数据迁移

互联网时代,我们的账号数量也不断增多,每使用一家服务就需要注册一个账户。偷懒的人会在几乎所有平台使用同一套用户名、邮箱和密码,这对于账户的安全非常不利。当其中一个服务的账户信息被泄露,黑客可使用泄漏的账号密码去各个平台进行尝试,导致其他平台的数据丢失。然而,在不同平台使用不同的账号或者密码虽然安全,但是用户记忆的成本就会大大增加,因此密码管理类软件应运而生。

常见的这类软件有1Password、Lastpass等,但这里介绍一款可以部署在自己服务器上的工具–bitwarden。Bitwarden本身就提供免费的服务可以供大家使用,但是自己部署可以体验到付费版才拥有的功能。详情可见Bitwarden官网:https://bitwarden.com/。

宝塔国际版安装

wget -O install.sh http://www.aapanel.com/script/install-ubuntu_6.0_en.sh && bash install.sh

安装Docker

官方安装指南

https://docs.docker.com/engine/install

根据自己的系统选择合适的安装教程。

安装完成后输入以下代码以设置docker开机启动:

systemctl enable docker #设置docker开机自动启动

systemctl status docker #查看docker状态

安装bitwarden

初次部署

docker run -d --name bitwardenrs \
  --restart unless-stopped \
  -e WEBSOCKET_ENABLED=true \
  -v /www/wwwroot/demo/:/data/ \
  -p 6666:80 \
  -p 3012:3012 \
  vaultwarden/server:latest

其中,/www/wwwroot/demo/为挂载目录,为数据存放的位置,可按需更改。(平时应多备份该文件夹

6666为选择的服务器端口,也可按需更改(记得在宝塔防火墙中放行相应端口)。

安装完成后,可以通过http://ip:6666访问bitwarden界面。

设置方向代理

  1. 解析一个域名到服务器。
  2. 进入宝塔,添加一个网站,FTPDatabase不需要,PHP为静态即可。
  3. 修改网站文件夹路径为 /www/wwwroot/demo/,与前面保持一致。
  4. 修改网站的Config,将52–64行注释掉并添加:
  location / {
  proxy_pass http://127.0.0.1:6666/;
  rewrite ^/(.*)$ /$1 break;
  proxy_redirect off;
  proxy_set_header Host $host;
  proxy_set_header X-Forwarded-Proto $scheme;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header Upgrade-Insecure-Requests 1;
  proxy_set_header X-Forwarded-Proto https;
  }
  1. 完成后重载nginx,此时可以通过域名访问网站并注册账号进行使用。
  2. 如果需要设置自动同步数据,可以直接参考后面步骤设置自动同步

优化配置

关闭新用户注册

作为私人使用的密码管理工具,自己注册完成即可关闭新用户注册。

首先停止该容器 docker stop bitwardenrs

并删除该容器 docker rm -f bitwardenrs

(放心,数据还保存在设置的目录里)

然后运行以下代码:

docker run -d --name bitwardenrs \
  --restart unless-stopped \
  -e SIGNUPS_ALLOWED=false \
  -e WEBSOCKET_ENABLED=true \
  -v /www/wwwroot/demo/:/data/ \
  -p 6666:80 \
  -p 3012:3012 \
  vaultwarden/server:latest

设置自动同步

同前面设置反向代理相同,打开宝塔网页的Config,用以下代码替换掉反向代理的代码,即可打开自动更新。

    location / {
        proxy_pass http://127.0.0.1:6666;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
  
    location /notifications/hub {
        proxy_pass http://127.0.0.1:3012;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
  
    location /notifications/hub/negotiate {
        proxy_pass http://127.0.0.1:6666;
    }

数据迁移

有时可能遇到重装服务器或者迁移服务器的情况,此时需要涉及数据迁移的问题。

  1. 首先将bitwarden存放数据的文件夹里的文件(即前面的/www/wwwroot/demo/)压缩并下载到本地。
  2. 上传到新的服务器相应的位置,比如还是/www/wwwroot/demo/,解压缩。
  3. 同前面一样添加网站,并把路径改为/www/wwwroot/demo/
  4. SSH登录然后同前面一样运行docker的代码:
  docker run -d --name bitwardenrs \
   --restart unless-stopped \
   -e SIGNUPS_ALLOWED=false \
   -e WEBSOCKET_ENABLED=true \
   -v /www/wwwroot/demo/:/data/ \
   -p 6666:80 \
   -p 3012:3012 \
   vaultwarden/server:latest
  1. 然后依然按照上面优化配置,即可重新登录bitwarden,且与之前账户密码等信息保持一致。
  2. 本质就是备份好bitwarden存放数据的文件夹,在新服务器上运行docker时,将挂载目录指向备份的数据即可。

留下评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注