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