docker自建vaultwarden (bitwarden_rs) 第三方密码管理器

0. 选择

不想用浏览器自动保存了,比较了1pass,enpass和bitwarden,最后决定自建bitwarden。

我选择bitwarden的理由:

  • 自建对我来说0额外成本
  • 安全性无忧,数据自己保存可同步,即使数据库、服务器被黑,目前也无法破解得到存储的密码。相比被黑风险,被社工方式获取主密码的风险更高。
  • 多平台兼容性好。

使用了用 Rust 编写的非官方 Bitwarden 兼容服务器,相比官方版对资源占用更低,且能白嫖bitwarden付费会员功能。目前24.5k star。

github https://github.com/dani-garcia/vaultwarden

1. 安装docker和docker-compose

1.1 安装docker

sudo apt-get update
sudo apt-get install docker.io

检查安装结果

docker --version

启动docker

systemctl start docker

查看 Docker 启动状态 (绿色 active)

systemctl status docker

如下提示说明正常

图片[1]-docker自建vaultwarden (bitwarden_rs) 第三方密码管理器-THsInk

输入以下命令让 Docker 开机自启动

systemctl enable docker

最后运行 hello-world 验证 docker 是否安装成功

图片[2]-docker自建vaultwarden (bitwarden_rs) 第三方密码管理器-THsInk

1.2 安装docker-compose

apt install docker-compose

2. 安装vaultwarden

先创建文件夹

mkdir -p /www/wwwroot/vaultwarden

切换到这个目录下

cd /www/wwwroot/vaultwarden

为了方便,可以先准备好以下配置文件

输入

nano docker-compose.yml

粘贴以下内容:

version: '3'
services:
  vaultwarden:
    image: vaultwarden/server:latest
    restart: always
    ports:
      - "14090:80"
    environment:
      DOMAIN: 'https://pass.thsink.com/'
      SIGNUPS_ALLOWED: 'true' #开启注册,自己注册后改成fale
      WEBSOCKET_ENABLED: 'true'
    volumes:
      - ./data:/data

详细配置文件参考https://rs.ppgg.in/configuration/configuration-overview

开放端口,如我这里选择14090,将域名解析,并开启ssl,反代127.0.0.1:14090

运行

docker-compose up -d
图片[3]-docker自建vaultwarden (bitwarden_rs) 第三方密码管理器-THsInk

其他指令

docker-compose down #关闭服务
docker-compose restart #重启服务

3. 配置vaultwarden

访问域名pass.thsink.com

图片[4]-docker自建vaultwarden (bitwarden_rs) 第三方密码管理器-THsInk

创建账号后登录。

设置二步验证

图片[5]-docker自建vaultwarden (bitwarden_rs) 第三方密码管理器-THsInk

获取客户端及浏览器插件

图片[6]-docker自建vaultwarden (bitwarden_rs) 第三方密码管理器-THsInk

4. 导入chrome中的密码到vaultwarden

在chrome设置中搜索密码,选择导出密码(.csv)

图片[7]-docker自建vaultwarden (bitwarden_rs) 第三方密码管理器-THsInk

在vaultwarden导入,很方便

图片[8]-docker自建vaultwarden (bitwarden_rs) 第三方密码管理器-THsInk

5. vaultwarden的备份与恢复

5.1 手动备份

vaultwarden备份最关键的就是sqlite3数据库文件了,你可以直接进入到./data目录下,将sqlite3数据库保存下来。当然你也可以将./data目录下所有的包括附件文件夹、图标缓存文件夹、密钥等文件备份下来。

图片[9]-docker自建vaultwarden (bitwarden_rs) 第三方密码管理器-THsInk

5.2 自动备份

利用定时任务执行bitwarden备份,首先新建一个文件夹:mkdir /bw-data/db-backup,然后执行数据库备份任务。代码如下(关于定时任务说明参考:Linux Crontab命令定时任务基本语法与操作教程):

sqlite3 /bw-data/db.sqlite3 ".backup '/bw-data/db-backup/backup.sqlite3'"

我选择定时任务每10分钟自动备份到googledrive

5.3 恢复备份

直接将sqlite3数据库重写替换就可以了。如果你的数据库路径与原来的不一致,可以手动指定,代码示例:

docker run -d --name vaultwarden \
  -e DATABASE_URL=/database/vaultwarden.sqlite3 \
  -v /bw-data/:/data/ \
  -v /bw-database/:/database/ \
  -p 80:80 \
  vaultwarden/server:latest

6. 其他

6.1 vaultwarden发送邮件

vaultwarden可以支持多用户注册使用,如果想要让vaultwarden发送邮件的话,可以使用SMTP发邮件,参考代码如下:

docker run -d --name vaultwarden \
  -e SMTP_HOST=<smtp.domain.tld> \
  -e SMTP_FROM=<vaultwarden@domain.tld> \
  -e SMTP_PORT=587 \
  -e SMTP_SSL=true \
  -e SMTP_USERNAME=<username> \
  -e SMTP_PASSWORD=<password> \
  -v /bw-data/:/data/ \
  -p 80:80 \
  vaultwarden/server:latest

备注:使用非 Docker 在服务器上编译搭建 Vaultwarden (Bitwarden_rs)

参考:

https://wzfou.com/bitwarden-rs/
https://yangyq.net/2022/07/baota-docker-install-bitwarden.html
https://zhujiceping.org/p/16128
https://blog.gimo.me/posts/self-host-vaultwarden/
https://github.com/dani-garcia/vaultwarden/wiki/Using-Docker-Compose

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 共1条
头像
欢迎您留下宝贵的见解!无需注册,过短或乱码评论会被屏蔽。
提交
头像

昵称

取消
昵称表情代码图片
    • 头像ZzZz0