Docker: 使用 Vaultwarden 自建 Bitwarden 密码管理
Bitwarden,跨平台密码管理应用,支持管理登录密码、支付卡、身份信息、安全笔记;如无特别需求,官方的免费版本满足绝大多数的需求;
而本文笔记的Vaultwarden(原Bitwarden_RS),是用Rust编写的Bitwarden服务器API的替代实现,基于Docker镜像,最大的特点是轻量化,可使用Bitwarden的付费功能,例如TOTP,也就是两步验证,2FA;
既是优点又是缺点的是,需要自己搭建,自己维护,数据在自己手中。
1. 安装Docker
一键命令:
curl -sSL https://get.docker.com/ | sh
如果是CentOS系统,还需设置启动项和启动:
systemctl enable docker
systemctl start docker
2. 注册账号
先把Vaultwarden镜像运行起来:
docker run -d \
--name vaultwarden \
--restart=unless-stopped \
-v /root/vw-data/:/data/ \
-p 42020:80 \
vaultwarden/server:latest
解析一个域名(例如vw.domain.tld
)至主机,
随后用Nginx、Caddy等Web服务,反向代理端口42020
,并设置SSL证书;
注册账号必须要设置SSL,所以干脆就先整个域名,一步到位;
这里推荐宝塔面板或Nginx Proxy Manager,方便设置反向代理,方便使用Let's Encrypt免费配置SSL证书;例如宝塔面板的反向代理设置:
随后浏览器打开https://vw.domain.tld
注册账号。
3. 禁止新用户注册
注册账号后,删除容器:
docker stop vaultwarden && docker rm vaultwarden
添加禁止新用户注册的变量重新启动:
docker run -d \
--name vaultwarden \
--restart=unless-stopped \
-e SIGNUPS_ALLOWED=false \
-e DOMAIN=https://vw.domain.tld \
-v /root/vw-data/:/data/ \
-p 42020:80 \
vaultwarden/server:latest
上述DOMAIN=https://vw.domain.tld
的变量参数,修改成自己的域名,以用于启用添加第三方两步验证(2FA)。
4. Web管理页面
这功能似乎无关紧要;
Docker容器运行参数中加一个变量,设置登录密码,例如:
-e ADMIN_TOKEN=84qrSS1fWgbm1PySWZQXNw
然后管理页面是:https://vw.domain.tld/admin
;例如可视化设置SMTP邮件发送信息,并测试,等。
5. 启用移动客户端推送
2023年11月5日12:33:20,编辑项目后,保存的时候反应好慢,解决方法,忽视这一步;
猜测有可能是服务器(我的是用国内的机子搭的)与Bitwarden推送API之间的通信延迟问题,也有可能加上Bitwarden与手机推送服务之间的通信;
我不折腾了,直接关了,一个字懒 -_-||
前往https://bitwarden.com/host/输入邮箱地址,注意数据区域选择美国United States;
获取INSTALLATION ID
和INSTALLATION KEY
;
删除容器:
docker stop vaultwarden && docker rm vaultwarden
禁止新用户注册,启用客户端推送:
docker run -d \
--name vaultwarden \
--restart=unless-stopped \
-e SIGNUPS_ALLOWED=false \
-e DOMAIN=https://vw.domain.tld \
-e PUSH_ENABLED=true \
-e PUSH_INSTALLATION_ID=<INSTALLATION ID> \
-e PUSH_INSTALLATION_KEY=<INSTALLATION KEY> \
-v /root/vw-data/:/data/ \
-p 42020:80 \
vaultwarden/server:latest
注意,Bitwarden的移动客户端,必须从官方下载,目前来看安卓似乎只有Google Play Store,国产安卓似乎没啥必要进行这一步,IOS(App Store)强烈建议;
注意,推送不适用于已经登录过的设备,比方讲你此前已经搭建,并安装手机客户端且登录了,然后再服务端设置启用推送功能,推送不会成功,要清除APP数据,建议删掉APP重新安装再登录;
如何测试推送是否在工作,在Vaultwarden网页版https://vw.domain.tld
,通过修改文件夹的名称,看客户端APP上能否在几秒钟内自动改变。
6. 数据的备份
备份这个目录/root/vw-data/
就可以了;
这里推荐宝塔面板,直接在计划任务里创建,方便快捷;
额外
Vaultwarden GitHub: https://github.com/dani-garcia/vaultwarden
Vaultwarden WIKI: https://github.com/dani-garcia/vaultwarden/wiki
APP登录注意登录到自托管,填入第一项“服务器 URL”即可,
也就是https://vw.domain.tld
,可别登录到默认的bitwarden.com;
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。