【保姆级教程】利用宝塔面板+Docker搭建一个优秀的密码管理器——Bitwarden
Bitwarden
Bitwarden 是一款开源密码管理器,它会将所有密码加密存储在服务器上,它的工作方式与 LastPass、1Password 或 Dashlane 相同。
官方的版本搭建对服务器要求很高,搭建不容易,GitHub上有人用 Rust 实现了 Bitwarden 服务器,项目叫 vaultwarden,并且提供了 Docker 镜像,这个实现更进一步降低了对机器配置的要求,并且 Docker 镜像体积很小,部署非常方便。这个项目目前在GitHub也有9.8k的star,非常受欢迎。
一:简介
项目:https://github.com/dani-garcia/vaultwarden
二:要求
一个解析好的域名
腾讯轻量云香港服务器 (演示系统:Debian 10)
Docker安装
官方地址:https://docs.docker.com/engine/install/debian/
1.更新apt包索引并安装包以允许atp过 HTTPS 使用存储库:
sudo apt-get update sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ gnupg \ lsb-release
2.添加 Docker 的官方 GPG 密钥:
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
3.使用以下命令设置稳定存储库。要添加 nightly或test存储库,请在以下命令中的单词之后添加单词nightly
或test
(或两者)stable
。
echo \ "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
4.更新apt
包索引,安装最新版本的Docker Engine和containerd,或者进入下一步安装特定版本:
sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io
5.通过运行hello-world
映像来验证 Docker 引擎是否已正确安装。
sudo docker run hello-world systemctl enable docker #设置docker开机自动启动 systemctl status docker #查看docker状态
正式部署
用Docker来部署,两行命令就够了,命令如下:
docker run -d --name bitwardenrs \ --restart unless-stopped \ -e WEBSOCKET_ENABLED=true \ -v /www/wwwroot/demo/:/data/ \ -p 6666:80 \ -p 3012:3012 \ vaultwarden/server:latest
注意:/www/wwwroot/demo/ 请修为自己的路径
配置反向代理
上面的设置好之后,我们还需要设置反向代理才可以打开网站,但是在设置之前,我们需要新建一个站点,并且设置好SSL证书。这些还是用宝塔面板来操作。我们需要把【http://127.0.0.1:6666】设置反向代理,如图:
代码如下:
location / { proxy_pass http://127.0.0.1:6666/; rewrite ^/(.*)$ /$1 break; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Upgrade-Insecure-Requests 1; proxy_set_header X-Forwarded-Proto https; }
登陆
设置好反向代理之后,就可以打开站点了,如图
<!–注意:创建账号,需要在开启了ssl证书的情况下才会成功。–>
配置
现在是所有人都可以注册这个网站,如果要自己使用,那就最好关掉注册,使用下面的命令,重新创建容器并开启禁止注册用户。
docker stop bitwardenrs #停止容器 docker rm -f bitwardenrs #删除容器 docker run -d --name bitwardenrs \ --restart unless-stopped \ -e SIGNUPS_ALLOWED=false \ -e WEBSOCKET_ENABLED=true \ -v /www/wwwroot/demo/:/data/ \ -p 6666:80 \ -p 3012:3012 \ vaultwarden/server:latest
运行完容器,登陆后在注册,就会显示错误提示:
设置自动同步
Bitwarden 默认是不会自动同步的,不管你是添加或者删除又或是修改了一条记录,都只是先保存在本地,只有当你手动点一下同步时才会进行同步。此时我们可以打开 WebSockets notifications 功能,这样手机修改后会立刻自动同步到云端。所以,我们还需要需要上面的反向代理。
打开网站配置文件,直接复制过去就可以了。(可以把前面第四步的反向代理那段替换掉)
location / { proxy_pass http://127.0.0.1:6666; proxy_http_version 1.1; proxy_cache_bypass $http_upgrade; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Port $server_port; } location /notifications/hub { proxy_pass http://127.0.0.1:3012; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } location /notifications/hub/negotiate { proxy_pass http://127.0.0.1:6666; } location /admin { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_pass http://127.0.0.1:6666; } # 加入robots.txt 防止搜索引擎爬虫抓取 location = /robots.txt { root /home/wwwroot/Bitwarden; }
大功告成了!
可以多端同步,覆盖了大多类型的设备
四:总结
目前比较流行的密码管理软件有 1Password、LastPass 、KeePass、Enpass以及SafeInCloud等,但是完全免费开源的只有Bitwarden。我们只需要借助Docker就可以很容易搭建一个自己的密码管理平台。