用过蛮多密码管理工具的,后来朋友给推荐了个更好的:
Bitwarden
看这个平台的支持度,还支持 self-hosted
, 那就是一个秒换
由于官方网站国内访问不畅 😭,日常就不方便与家人共用,反正都有公网IP,所以就想着折腾到自己的 NAS 上啦 😉,直接就是一个部署上。
🐋 Docker 部署
bash
复制成功
docker volume create bitwarden_data // 创建 bitwarden_data 卷
docker volume create bitwarden_ssl // 创建 bitwarden_ssl 卷
docker run --name bitwarden \
-v bitwarden_data:/data \
-v bitwarden_ssl:/ssl \
-p [端口]:80
-e ROCKET_TLS='{certs="/ssl/cert.pem",key="/ssl/key.pem"}'
--restart always
vaultwarden/server
浏览器访问即可看到 Bitwarden 的服务,并自行注册账号,并导入自己的密码库使用
配置浏览器扩展或APP
在 Bitwarden官网 下载并安装所需的浏览器扩展或APP后
登录前进入自托管设置的服务URL就可以直接使用啦
设置SSL
因为配置自托管要求HTTPS,现在用的华硕路由,自带 DDNS 和 Let’s Encrypt 证书申请
bash
复制成功
#!/bin/bash
rm /var/lib/docker/volumes/bitwarden-ssl/_data/cert.pem
rm /var/lib/docker/volumes/bitwarden-ssl/_data/key.pem
ssh router 'cat /jffs/.le/[域名]/fullchain.pem' >> /var/lib/docker/volumes/bitwarden-ssl/_data/cert.pem
ssh router 'cat /jffs/.le/[域名]/domain.key' >> /var/lib/docker/volumes/bitwarden-ssl/_data/key.pem
docker restart Bitwarden
// webhook 通知证书更新成功
curl "http://webhook.send?title=DDNS证书更新&desp=更新证书完成"
as
并设置上定时更新,crontab -e
打开定时任务编辑模式,并增加一行后重启下定时任务
bash
复制成功
0 3 1 */2 * sh ~/shell/renew-ssl-cert.sh > ~/shell/renew-ssl-cert.log 2>&1
设置定时备份
密码这种数据当然要定期备份啦,所以同样通过脚本备份并设置定时任务,
bash
复制成功
#!/bin/bash
time=$(date "+%Y-%m-%d_%H%M")
bakDir='备份路径'
errorMsg=
echo "当前时间:$time"
echo "启动备份"
# 备份bitwarden
echo "开始备份Bitwarden"
cd /var/lib/docker/volumes/bitwarden-data/_data
zip -q -r "${bakDir}/bitwarden-${time}.zip" ./
if [ $? -eq 0 ]; then
echo "备份Bitwarden完成,已备份归档至${bakDir}/bitwarden-${time}.zip"
else
errorMsg="Bitwarden 备份失败"
fi
echo "开始清除${time}7天前的历史备份文件"
find $bakDir -type f -mtime +7 | xargs rm -f
if [ $? -eq 0 ]; then
echo "清除备份完成"
else
errorMsg+="
清除备份失败"
fi
if [[ $errorMsg != "" ]];then
curl "webhook?title=备份失败通知&desp=${errorMsg}"
fi