ttionya / vaultwarden-backup

Backup vaultwarden (formerly known as bitwarden_rs) SQLite3/PostgreSQL/MySQL/MariaDB database by rclone. (Docker)
MIT License
1.04k stars 119 forks source link

本地备份恢复失败问题 #39

Closed Ivan-ggg closed 2 years ago

Ivan-ggg commented 2 years ago

作者好,目前我使用docker-compose部署vw和vw-backup,可以自动将备份打包并上传至dropbox。docker-compose配置如下:

version: '3' services: vaultwarden: image: vaultwarden/server:latest container_name: vaultwarden restart: always ports: - 8248:80 - 3012:3012 volumes: - ./vw-data:/data/ environment: - WEBSOCKET_ENABLED=true - SIGNUPS_ALLOWED=false - WEB_VAULT_ENABLED=true

backup: image: ttionya/vaultwarden-backup:latest container_name: vaultwarden-backup restart: always environment: RCLONE_REMOTE_NAME: 'dropbox' RCLONE_REMOTE_DIR: '/' CRON: '5 * * * *' ZIP_ENABLE: 'TRUE' ZIP_PASSWORD: '123' ZIP_TYPE: 'zip' BACKUP_FILE_DATE_SUFFIX: '-%H%M%S' BACKUP_KEEP_DAYS: 30 TIMEZONE: 'Asia/Shanghai' volumes: - ./vw-data:/bitwarden/data/ - /root/.config:/config/

当我将备份文件下载至vps,使用如下命令恢复时,显示恢复成功,但实际并没有。

cd ~/vaultwarden docker-compose down

docker run --rm -it \ --mount type=volume,source=vw-data,target=/bitwarden/data/ \ --mount type=bind,source=$(pwd),target=/bitwarden/restore/ \ -e DATA_DIR="/data" \ ttionya/vaultwarden-backup:latest restore \ --zip-file backup.20211231-131600.zip -p WHEREISMYPASSWORD?

docker-compose up -d

执行完成后,vaultwarden并未恢复到backup.20211231-131600.zip这个版本,请问是哪里出错了。可见下图

image

系统版本:Ubuntu 20.04,甲骨文的arm64架构 文件都在/root/vaultwarden向下 /root/vaultwarden/vw-date #vaultwarden数据库目录 /root/vaultwarden/docker-compose.yml /root/vaultwarden/backup.20211231-131600.zip

ttionya commented 2 years ago

@Ivan-ggg ,

你错误的使用了还原命令 docker run --rm -it --mount type=volume,source=vw-data,target=/bitwarden/data/ --mount type=bind,source=$(pwd),target=/bitwarden/restore/ ...

--mount type=volume,source=vw-data,target=/bitwarden/data/ 这个是将 container 中的目录 /bitwarden/data/ 映射到卷(volume)vm-data 中,而你运行 vaultwarden 使用的是本地的文件夹。你执行 docker volume ls 应该能发现一个名为 vw-data 的卷,还原的数据在这里面。

你把上面那一条改成 --mount type=bind,source=$(pwd)/vw-data/,target=/bitwarden/data/ 或者 -v $(pwd)/vw-data:/bitwarden/data/ 应该能正常工作。

Ivan-ggg commented 2 years ago

感谢,感谢!使用如下命令恢复成功。 docker run --rm -it \ -v $(pwd)/vw-data:/bitwarden/data/ \ --mount type=bind,source=$(pwd),target=/bitwarden/restore/ \ ttionya/vaultwarden-backup:latest restore \ --zip-file backup.20211231-131600.zip -p WHEREISMYPASSWORD? 再询问一下,可以支持备份至多个网盘吗?您这里的环境变量只列出了备份至一处的例子,我想备份至多处可以实现吗?

ttionya commented 2 years ago

@Ivan-ggg ,

备份工具本身不支持也无需支持备份至多处,因为可以通过多个 vaultwarden-backup 容器实现。