LNMP + Docker Install Bitwarden_rs

1、安装Docker
wget -qO- https://get.docker.com/ | bash

然后我们再安装docker-compose,管理起来更方便些

curl -L "https://github.com/docker/compose/releases/download/1.26.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

国内安装docker-composer的话使用下面命令下载会更快些:

curl -L "https://get.daocloud.io/docker/compose/releases/download/1.26.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

如果是国内VPS或服务器上使用docker建议将仓库设置为国内的,这样拉取镜像时会更快

cat >/etc/docker/daemon.json<

启动docker并设置为开机启动:

systemctl start docker
systemctl enable docker
2、部署bitwarden_rs

2.1 创建bitwarden_rs的运行目录,这里我们将在当前用户目录下运行:

cd /home/wwwroot && mkdir bitwarden && cd bitwarden

2.2 创建docker-compose配置文件

cat > /home/wwwroot/bitwarden/docker-compose.yml<

2.3 启动bitwarden_rs服务

cd /home/wwwroot/bitwarden
docker-compose up -d

运行后会自动拉去镜像和设置bitwarden_rs,根据网络等因素拉取镜像会比较耗时,等一会儿,如果没有错误就会看到提示信息:Starting bitwardenrs ... done 就表示已经运行起来。

关闭重启服务命令

docker-compose down #关闭服务
docker-compose restart #重启服务
3、Web服务器设置

虽然bitwarden_rs已经运行起来,但是bitwarden_rs是必须要通过https访问,否则进行无法注册、登陆等一系列的操作。接下来以LNM一键安装包环境为例创建虚拟主机并添加反向代理配置:
运行:

lnmp vhost add

提前将域名解析到你服务器IP上,再按提示添加域名,其他默认回车默认就行,提示 Add SSL Certificate (y/n) 时,输入y 回车,再输入 2 回车,再次回车,将自动添加好该域名。

添加好域名后,使用winscp、nano、vim之类的软件编辑 /usr/local/nginx/conf/vhost/域名.conf 文件。

查找include enable-php.conf; 在第二个 include enable-php.conf; 下面添加(也就是该域名的https虚拟主机部分配置里),如下配置:

    location / {
        proxy_pass http://127.0.0.1:8087;
        proxy_http_version    1.1;
        proxy_cache_bypass    $http_upgrade;
        proxy_set_header Upgrade            $http_upgrade;
        proxy_set_header Connection         "upgrade";
        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;
        proxy_set_header X-Forwarded-Host   $host;
        proxy_set_header X-Forwarded-Port   $server_port;
    }

    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:8087;
    }

    location /admin {
        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;
        proxy_pass http://127.0.0.1:8087;
    }

添加完成后,删掉下面这几行:

    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    {
        expires      30d;
    }

    location ~ .*\.(js|css)?$
    {
        expires      12h;
    }

保存。

重载nginx配置文件:/etc/init.d/nginx reload

然后在浏览器输入: https://域名

就会看到如下界面:

点击”创建账号“,填写好邮箱、密码等信息,登陆后,后台如下图:

如果之前有使用lastpass、1password、keepass或浏览器等之类的都可以使用原密码管理软件导出的数据导入到bitwarden_rs里。

4、浏览器设置

浏览器上需要安装好bitwarden的插件,chrome store、firefox Add-ons里搜索:bitwarden

安装好后,在浏览器点击bitwarden插件的图标,如下图:

在服务器URL栏添加上你服务器的域名,其他选项不用填写。

填写好后保存,然后用之前注册的账号和密码,在浏览器bitwarden插件登陆页面上登陆。

这样bitwarden_rs就已经可以使用了,但是可以修改一下设置更加好用些,点击bitwarden图标->设置->选项,在"当页面加载时启用自动填充"选项后面打勾,并且"默认的 URI 匹配检测方式"选项可以选择"基础域"。

5、处理小尾巴关闭注册

如果是个人自用建议关闭掉注册,修改前需要先停掉bitwarden_rs

cd /home/wwwroot/bitwarden
docker-compose down

修改 /home/wwwroot/bitwarden/docker-compose.yml 文件,将SIGNUPS_ALLOWED: "true" 改成 SIGNUPS_ALLOWED: "false" 保存,然后 docker-compose up -d 再启动服务。

6、bitwarden_rs升级

bitwarden_rs更新是很频繁的,建议隔段时间升级一下,升级方法也很简单:

cd /home/wwwroot/bitwarden
docker-compose down
docker pull bitwardenrs/server:latest
docker-compose up -d
7、bitwarden_rs数据备份

bitwarden_rs的数据都在 /home/wwwroot/bitwarden/bw-data/ 目录下,db.sqlite3 为密码的数据库文件,该文件为加密的。
如果已经安装了sqlite3,可以直接使用命令:

vi ~/backup.sh

写入一下内容

#!/bin/bash

database1fileName=bitwarden-backup_date +%Y%m%d%H%M%S

# 备份
sqlite3 /home/wwwroot/bitwarden/bw-data/db.sqlite3 ".backup '/home/backup/${database1fileName}.sqlite3'"

# 压缩备份文件
tar -zcPvf /home/backup/${database1fileName}.sqlite3.tar.gz /home/backup/${database1fileName}.sqlite3

# 删除数据库文件
rm -f /home/backup/${database1fileName}.sqlite3;

# 上传备份文件到cos
coscmd upload -r /home/backup/ /bitwarden_rs/

# 删除7天前备份的数据,只保留一星期内的数据
find /home/backup/ -mtime +7 -name "${database1fileName}.sqlite3.tar.gz" -exec rm -rf {} \;

添加权限

chmod 755 backup.sh

设置定时任务

crontab -e

# 在最后一行加这一句,意思是每天3点跑脚本
0 3 * * * /root/backup.sh
# 每隔三日3点执行脚本
0 3 */3 * * /root/backup.sh

重启一下corntab

service crond restart
8、设置SMTP

登陆https://域名/admin 后,设置SMTP的时候,勾选上Use explicit TLS

Leave a Reply