起因
我之前的密码管理方案是keepass+OneDrive,keepass是一个开源免费的密码管理器,拥有全平台客户端,数据库.kdbx
文件存储在本地,通过云盘实现全平台数据同步,数据完全掌握在自己手中。但是在使用的过程中遇到一个问题——同步不及时。比如我在电脑上添加了一个密码,等一会在手机上想要填充这个密码却找不到,于是萌生了迁移的想法。
了解到Bitwarden支持自托管,刚好手里有一台闲置的VPS,于是决定自部署一个Bitwarden。官方版本对于服务器的要求较高。
GitHub有大佬用rust重写了Bitwarden名为vaultwarden,对机器的要求更低,而且提供了Docker镜像,部署起来也比较方便。
vaultwarden:https://github.com/dani-garcia/vaultwarden
前置准备
- 一台闲置VPS
vaultwarden对于资源占用很低,各大厂商的入门机器就够用了。
- 宝塔面板
我的建议是使用宝塔面板辅助管理,后面配置反向代理、SSL之类的也很方便。宝塔面板安装需要一台纯净的VPS,建议购买后立即安装(会用Nginx等配置的可以忽略)
- docker和docker-compose
- 一个有效域名(如果你不打算使用ip:端口访问的话)
部署服务
安装Docker和Docker-compose
|
|
安装完毕后分别输入命令,如果输出版本信息说明安装成功。
设置域名DNS
在你的域名管理处添加一条DNS记录,指向你服务器的ip地址
创建数据文件夹
首先在你喜欢的位置创建一个文件夹,里面用来存放vaulwarden的数据文件,方便后期备份。我这里是在主目录下创建vaultwarden文件夹。
|
|
创建docker-compose.yml文件
|
|
打开文件后按i
进入输入模式,将下面内容写入
|
|
写入完毕后按Esc
,然后输入:wq
保存退出
启动项目
确保docker-compose.yml中的信息无误后,启动项目
|
|
然后查看容器是否运行
|
|
出现容器名称说明容器成功运行,在这里可以使用你的服务器ip:端口号访问web页面
使用宝塔面板部署SSL以及设置反向代理
打开宝塔面板,点击网站->添加站点,此处域名更换成你自己的域名
提交后点击SSL->Let`s Encrypt申请证书
然后点击当前证书->保存并启用证书,勾选强制https,不然后续会出现无法注册的问题
设置反向代理
点击反向代理->添加反向代理
代理名称随意,目标url填ip:端口
,也就是你刚才访问的url,提交后就可以使用域名访问你的vaultwarden网页了。