从keepass迁移到bitwarden

起因

我之前的密码管理方案是keepass+OneDrive,keepass是一个开源免费的密码管理器,拥有全平台客户端,数据库.kdbx文件存储在本地,通过云盘实现全平台数据同步,数据完全掌握在自己手中。但是在使用的过程中遇到一个问题——同步不及时。比如我在电脑上添加了一个密码,等一会在手机上想要填充这个密码却找不到,于是萌生了迁移的想法。

了解到Bitwarden支持自托管,刚好手里有一台闲置的VPS,于是决定自部署一个Bitwarden。官方版本对于服务器的要求较高。

image-20231215130129827

GitHub有大佬用rust重写了Bitwarden名为vaultwarden,对机器的要求更低,而且提供了Docker镜像,部署起来也比较方便。

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

前置准备

  • 一台闲置VPS

vaultwarden对于资源占用很低,各大厂商的入门机器就够用了。

  • 宝塔面板

我的建议是使用宝塔面板辅助管理,后面配置反向代理、SSL之类的也很方便。宝塔面板安装需要一台纯净的VPS,建议购买后立即安装(会用Nginx等配置的可以忽略)

  • docker和docker-compose
  • 一个有效域名(如果你不打算使用ip:端口访问的话)

部署服务

安装Docker和Docker-compose

1
2
docker -v
docker-compose -v

安装完毕后分别输入命令,如果输出版本信息说明安装成功。

设置域名DNS

在你的域名管理处添加一条DNS记录,指向你服务器的ip地址

创建数据文件夹

首先在你喜欢的位置创建一个文件夹,里面用来存放vaulwarden的数据文件,方便后期备份。我这里是在主目录下创建vaultwarden文件夹。

1
2
cd ~
mkdir vaultwarden && cd vaultwarden

创建docker-compose.yml文件

1
vim docker-compose.yml

打开文件后按i进入输入模式,将下面内容写入

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
version: "3"

services:
  vaultwarden:
    image: vaultwarden/server:latest
    container_name: vaultwarden  
    restart: always
    ports:
#端口映射,可自行修改8080端口
      - "6666:80"
      - "3012:3012"
    volumes:
#映射目录位置,可选
      - ./bw-data:/data 
#这里的目录可以换成你创建的目录,比如我的是~/vaultwarden
    environment:
#后台管理登陆密码
      - ADMIN_TOKEN=Password
#域名配置,刚才设置了DNS的域名
      - DOMAIN=https://example.com
#禁用显示密码提示
      - SHOW_PASSWORD_HINT=false
#是否开启注册,自用的话自己搭建好注册后改成false
      - SIGNUPS_ALLOWED=false
#启用WebSocket通知
      - WEBSOCKET_ENABLED=true
#是否开启Web客户端
      - WEB_VAULT_ENABLED=true

写入完毕后按Esc,然后输入:wq保存退出

启动项目

确保docker-compose.yml中的信息无误后,启动项目

1
sudo docker-compose up -d

然后查看容器是否运行

1
sudo docker ps

image-20231215135826570

出现容器名称说明容器成功运行,在这里可以使用你的服务器ip:端口号访问web页面

image-20231217220525482

使用宝塔面板部署SSL以及设置反向代理

打开宝塔面板,点击网站->添加站点,此处域名更换成你自己的域名

image-20231215140236160

提交后点击SSL->Let`s Encrypt申请证书

image-20231215140439474

然后点击当前证书->保存并启用证书,勾选强制https,不然后续会出现无法注册的问题

设置反向代理

点击反向代理->添加反向代理

image-20231217221704724

代理名称随意,目标url填ip:端口,也就是你刚才访问的url,提交后就可以使用域名访问你的vaultwarden网页了。

Built with Hugo with 主题 StackJimmy 设计