Bitwarden是一款开源的密码管理工具,支持各种平台,本文是尝试自己搭建Bitwarden服务器端,其他具体内容可查看wiki

前言

先说说为什么要选Bitwarden,其实在好几年前我就已经把所有的密码都交给密码管理工具了。几年前的某一天无意中看到一条Lastpass手机端支持免费使用的新闻,使用下来发现用起来很方便。当时安卓系统是不支持直接填充的,而Firefox上的扩展还是收费的,所以只能用Yandex浏览器(当时安卓上唯一一款支持Chrome插件的浏览器)+Lastpass插件。用了一段时间后因为Yandex实在有点发热、费电,就把浏览器转向Chrome,同时把密码全部交给了Google。

随着Chrome用的时间越来越长,Chrome保存的密码越来越多,现在已经接近1000个了。Windows上习惯性的也只用Chrome,但我发现在Windows上,只需要知道电脑的PIN就可以轻松的得到Chrome保存的密码,更改要不要Chrome同步则完全不需要任何验证信息。而且,从Chrome跳转到 Chrome同步的数据 后不需要任何验证就可以清除云端保存的所有数据(谷歌,你为什么要这么设定啊!!!

所以我还是需要一个密码管理工具,或者说一个自动填充工具,来记录一些可以说根本不需要保密,其他人知道都无所谓的密码,回到Lastpass发现官方汉语没了,搜了搜新闻,Lastpass这个商标被国内抢注了,官方直接放弃大陆市场……

这时候我想到了Bitwarden,所有产品都开源,免费账号功能足够,高级账户也只是每年10刀。最重要的是Bitwarden的服务器是可以自己搭建的,你可以把密码存放在自己的服务器里。

安装

官方有Docker,但是需要.NET和MySQL,我的辣鸡服务器估计跑不起来,还好有一个非官方的用Rust服务器端 Bitwarden_rs ,同样用Docker就可以运行。

安装Docker

1
wget -qO- get.docker.com | bash

安装 Bitwarden_rs

拉取 bitwarden_rs 镜像

1
docker pull bitwardenrs/server:latest

生成admin管理页面需要的token

1
openssl rand -base64 48

运行

1
docker run -d --name bitwarden -e ADMIN_TOKEN=lD0UOjX/DFujuKUNwnsiV2Py0IKwbdU/KXKPnFUKKUjGy2lPF6ScXRp2baTJIqe2 -p 8880:80 -v /bw-data/:/data/ bitwardenrs/server:latest

/admin 界面可开启或者关闭注册,上面提到的 run 命令去掉 ADMIN_TOKEN 参数可以禁用 /admin 界面

更新

重新拉取镜像

1
docker pull bitwardenrs/server:latest

停止、删除原容器

1
2
docker stop bitwarden
docker rm bitwarden

重新运行 docker run 命令

查看镜像文件

1
docker image ls 

删除原镜像文件, $ID 在上一步中可以看到

1
docker image rm $ID

后续

自建可以免费使用Bitwarden的所有功能,但体验了几天之后,对自建也不怎么感兴趣了,毕竟自己太小白,万一没有及时更新,或者运行时哪个地方设置不好密码被别人全拿走了就不好了,再着自己的服务器说不定更有可能会跑路呢。
而且,官方的免费版本也完全够用的,没必要折腾啊