自建bitwardenvaultwarden的密码服务
对于经常上网的我们,账号密码相当多,使用同一个密码很容易被脱裤,使用不同的密码却又难记。其实有很多密码管理软件可以使用,比如bitwarden。
bitwarden的密码默认是储存在官方有服务器上,当然是加密存储的。官方为了方便用户,也提供docker方式在自己的服务器安装该密码管理服务。要想自己安装使用bitwarden,需要先安装docker,这个可以参考《centos7下安装docker》一文。安装官方的镜像对服务器的要求高,由于官方使用的是mssql,内存必需大于2G,对于小内存机器来说是跑不起来的。
不过在github上有vaultwarden(为了便于与官方区别,bitwarden_rs已更名为vaultwarden),这个是用rust写的docker镜像,对服务器要求较低,小内存照样能用。具体详见:https://github.com/dani-garcia/vaultwarden/。
按照提示,两行命令即可拉取docker镜像,进行默认安装:
1 | docker pull vaultwarden/server:latest |
为了可以通过宿主机上通过端口映射反代,需要配置相应的nginx,具体可以参考:https://github.com/dani-garcia/vaultwarden/wiki/Proxy-examples。
按上面链接配置好web配置文件后(如nginx),就可以用配置好域名进行访问管理了。
当然vaultwarden也是可以自定义安装,这个自定义是指相关的docker配置,下面简单介绍一下。
1、自行选择安装目录,如安装到/home/vaultwarden:
1 | cd /data && mkdir vaultwarden && cd vaultwarden |
2、准备一个配置文件config.env,里面包含了需要配置的环境变量:
1 | cat >> config.env <<EOF |
写入:
1 | SIGNUPS_ALLOWED=true |
DOMAIN填自己的域名,需要HTTPS。
这个环境配置文件不包含smtp发送邮件的配置,如果需要邮件功能,需要增加smtp的设置,完整配置及相关说明如下:
1 | 启用或禁用新用户注册:true启用,false禁用 |
当然也可以在安装好后,进管理后台的界面设置smtp参数,不过要记得将Use explicit TLS(vaultwarden中的Force TLS选项)打上勾,然后保存即可,否则可能发送邮件会出错。
ADMIN_TOKEN为管理面板密码,推荐使用“openssl rand -base64 48”生成,当然也可以随意。
SIGNUPS_ALLOWED=true,此项控制注册,第一次使用的话设置为true,若是备份有数据库,可设置为false,安装好后将DATABASE_URL指定路径中的数据库替换为备份的db重启docker即可。
上述详细的环境变量说明请参阅:https://github.com/dani-garcia/vaultwarden/wiki。
3、准备服务描述文件docker-compose.yml:
1 | cat >> docker-compose.yml <<EOF |
写入:
1 | version: '3' |
vaultwarden:现在是唯一一个服务;
image: vaultwarden/server:latest 指定使用 Docker Hub 的 vaultwarden/server:latest 最新镜像;
volumes 中指定将容器内的 /data 目录挂载到宿主机的当前目录下的 /docker/data 目录,这样你可以在宿主机上执行数据库的备份操作;
ports 指定分别将容器内的 80和3012 端口映射到了宿主机的 6666和8888 端口;
3、拉取镜像:
1 | docker-compose up -d |
4、nginx配置反代(其它web方式请参阅:https://github.com/dani-garcia/vaultwarden/wiki/Proxy-examples):
1 | server { |
5、设置开机启动:
编辑rc.local文件:
1 | vi /etc/rc.d/rc.local |
在最后加上
1 | /usr/local/bin/docker-compose -f /usr/local/vaultwarden/docker-compose.yml up -d |
这样开机就会自动启动vaultwarden。
访问https://你的域名/admin可以进管理面板。
到这里vaultwarden就搭建完成可以使用了,不过个人还是建议配置数据备份。
6、如果修改了配置,需要重新启动容器以便生效:
1 | docker-compose stop && docker-compose up -d |
用这个命令,停止当前容器服务并重新启动。
1 | docker-compose down && docker-compose up -d |
这个命令是移除容器和镜像并重建。