自建 Bitwarden 密码管理服务

以前一直用的 Keepass + Dropbox 同步,手机上使用起来还是不太麻烦。

前一阵子看见别人分享了 Bitwarden 这个密码管理软件,服务端都是开源的,所以可以自建。

自己搭了一下,用起来还可以。

  • 不用花钱,自建的服务端高级功能都是免费的
  • 全平台的客户端、浏览器扩展支持
  • 密码管理中支持 TOTP
  • 使用 Docker 搭建起来还挺简单的
  • Keepass 的数据可以通过导出 xml 文件导入 Bitwarden,不过不能导入附件

这里备份一下安装过程

安装 docker

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 1. 执行官方的安装脚本
wget -qO- get.docker.com | bash

# 2. 检查版本
docker version

# 3. 启动 Docker
systemctl start docker

# 4. 查看 Docker 状态
systemctl status docker

# 5. 设置 Docker 自启动
systemctl enable docker

安装 Bitwarden

1. 获取 bitwarden_rs 镜像

1
docker pull bitwardenrs/server:latest

2. 运行服务端

1
docker run -d --name bitwarden -v [Bitwarden 的数据存储路径]:/data/ -p 6666:80 bitwardenrs/server:latest

默认会开启用户注册,毕竟自己使用时也要注册一个用户,自己注册完了之后可以在命令中加入下面的内容关闭注册

1
-e SIGNUPS_ALLOWED=false

3. 设置 Nginx 反代

1
2
3
4
5
6
7
location / {
#...

proxy_pass http://localhost:6666;

#...
}

然后就可以访问域名开始使用了

4. 启动、停止服务端

1
docker start/stop bitwarden

Docker 命令

1
2
3
4
5
6
7
8
9
10
11
12
# $name 为 docker run 中定义的 name
# 启动容器
docker start $name

# 停止容器
docker stop $name

# 删除容器
docker rm $name

# 查看运行容器
docker ps -as

升级 Bitwarden 镜像

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 1. 重新获取镜像
docker pull bitwardenrs/server:latest

# 2. 停止、删除原容器
docker stop bitwarden
docker rm bitwarden

# 3. 重新运行 docker run 命令

# 4. 查看镜像文件
docker image ls

# 5. 删除原镜像文件, $ID 在 step4 中可以看到
docker image rm $ID

参考: 搭建自己的密码管理服务器 Bitwarden