对于个人和家庭而言,密码管理至关重要。Vaultwarden(原 bitwarden_rs)是 Bitwarden 服务器的轻量级实现,它让我们能安全地自托管密码库,保障数据隐私。本文将基于 Docker Compose,详细记录 Vaultwarden 的搭建过程,并重点介绍如何集成 vaultwarden-backup 工具实现自动化、加密备份。
我觉得这个还是蛮有用的,特别是类似谷歌这种每次登录完就忘,下次登录重置还总提示不要用之前的密码,还有复杂度要求。现在直接通过Vaultwarden通行密钥,不用输密码即可登录。
配置文件:docker-compose.yml
我们使用 Docker Compose 来一键部署 Vaultwarden 服务和备份服务。
BitwardenBackup 需要使用rclone服务,所以请提前安装rclone。
curl https://rclone.org/install.sh | sudo bash
1.配置 Rclone
在 Docker Compose 设置之前,您必须为备份存储目标配置 Rclone。直接运行以下代码会生成一个有rclone配置的卷,用于之后挂载使用。remote name我设置为 BitwardenBackup。
docker run --rm -it \
--mount type=volume,source=vaultwarden-rclone-data,target=/config/ \
ttionya/vaultwarden-backup:latest \
rclone config
我的目标是软路由上的vaultwarden备份到nas上,nas我已经通过nfs挂载到了软路由的/mnt/backup下,所以我在rclone配置选择本地(local)即可,如果你挂载其他网盘或alist,可参考网络教程或rclone官方文档。
2. 配置文件内容
将以下内容保存为 docker-compose.yml 文件。如果和我一样的portainer,直接在stack中新建stack。
version: '3.7'
services:
vaultwarden:
image: vaultwarden/server:latest
restart: always
ports:
# 端口按需更改
- '8086:80'
environment:
TZ: Asia/Shanghai
# ⚠️ 访问管理后台的令牌,请务必修改为强密码!
ADMIN_TOKEN: 'password'
# 允许新用户注册。完成初始注册后,建议改为 'false'
SIGNUPS_ALLOWED: 'true'
volumes:
- vaultwarden-data:/data/
backup:
image: ttionya/vaultwarden-backup:latest
restart: always
environment:
# 这里的NAME和我们之前执行的生成rclone生成配置的建立名称对应,DIR就是我们rclone挂载的文件夹。
RCLONE_REMOTE_NAME: 'BitwardenBackup'
RCLONE_REMOTE_DIR: '/mnt/backup'
# 每天0点备份
CRON: '0 0 * * *'
BACKUP_FILE_SUFFIX: '%Y%m%d'
ZIP_ENABLE: 'TRUE'
#压缩包密码
ZIP_PASSWORD: 'WHEREISMYPASSWORD?'
ZIP_TYPE: 'zip'
#备份文件保存天数
BACKUP_KEEP_DAYS: 7
TIMEZONE: 'Asia/Shanghai'
volumes:
- vaultwarden-data:/bitwarden/data/ # 与 vaultwarden 共享同一个 volume
- vaultwarden-rclone-data:/config/ # 使用 rclone 配置 volume
- /mnt/backup:/mnt/backup # 记得加上rclone的挂载文件夹
volumes:
vaultwarden-data:
name: vaultwarden-data
vaultwarden-rclone-data:
external: true # 标记为外部卷
name: vaultwarden-rclone-data
3. 启动服务
将文件保存后,进入文件所在目录,运行以下命令启动服务:
docker compose up -d
4. 还原操作
如果需要还原数据,请遵循以下步骤:
- 停止 Vaultwarden 容器:在执行还原前,必须确保主容器已停止,防止数据库写入冲突。
docker stop vaultwarden
- 执行还原命令:将备份文件如 backup.20250630.zip 下载到本地,在其目录下使用
vaultwarden-backup工具运行一个临时容器,将备份文件解压并写入到数据卷中。你需要替换命令中的备份文件名和加密密码。
docker run --rm -it \
--mount type=volume,source=vaultwarden-data,target=/bitwarden/data/ \
--mount type=bind,source=$(pwd),target=/bitwarden/restore/ \
-e ZIP_PASSWORD='WHEREISMYPASSWORD?' \
ttionya/vaultwarden-backup:latest restore \
--zip-file /bitwarden/restore/backup.20250630.zip
--zip-file <BACKUP_FILE_NAME>.zip: 指定要还原的备份文件路径。-e ZIP_PASSWORD: 提供你设置的解密密码。
- 重启 Vaultwarden 容器:还原完成后,启动容器使更改生效。
docker start vaultwarden
通过这套配置,你的vaultwarden就可以每天自动备份啦!

注:vaultwarden默认强制要求https登录,可以使用caddy、nginx或者lucky、 Nginx Proxy Manager等可视化工具实现反向代理。
