vaultwarden 备份思路

2024-01-12 19:52:08 +08:00
 0o0O0o0O0o

今天统计各服务商的 S3 意外发现 vaultwarden 的备份数据已经很大了,所以思考了一下。

我的旧方案是每日备份若干次,并且 inotifywait 了 data 目录一旦有写操作就备份,备份方式是无脑打 .tar.gz ,尽管大小不超过 5MB ,但由于备份频繁,所以占用和增长速度都变得有点过分。

新思路:

  1. 先 git init 个 repository
  2. 利用 vaultwarden 建议的 SQLite Online Backup API 先备份 db.sqlite3
    sqlite3 db.sqlite3 ".backup /tmp/vaultwarden.sqlite3"
  3. 再利用 sqlite3 dump 成 sql 文件
    sqlite3 /tmp/vaultwarden.sqlite3 .dump > vaultwarden.sql
  4. 再按需添加数据库之外的文件,我是很纯粹地当密码管理器使用,所以不需要 attachments 、sends ,否则又引入了二进制文件,而且 git 无法记录文件权限
  5. 判断一下有没有变化,有变化就 commit

最后用支持增量备份的工具来备份这个 git repository 就好了,不但可以备份到 S3 ,还可以 push 到任意 git 服务。

5425 次点击
所在节点    程序员
26 条回复
bao3
2024-01-13 00:58:35 +08:00
真的要安全,每个密钥,你都应该在 bitwarden 和另一个 app 同时存储,且在不同位置。只有这样你服务器上的备份才有了意义。你既然都默认是服务器不安全了,当然要异地灾备
0o0O0o0O0o
2024-01-13 08:14:37 +08:00
@bao3 #21 vaultwarden 的设计允许服务器是不安全的,数据不会被攻击者解密。所以你说的这个保护的是“服务器被黑后写入的数据”吗?
bao3
2024-01-13 10:30:46 +08:00
@0o0O0o0O0o 这取决于你对安全的理解,比如损失文件是否是安全的一部分,如果不是,那就无需考虑。
0o0O0o0O0o
2024-01-13 10:41:12 +08:00
@bao3 #23

谢谢,认同你说的,我确实完全没考虑到如何防止这部分数据的丢失。尽管我在 PC 上是把 Bitwarden 目录加进了日常备份的列表,但只是习惯性地写了进去,没有这方面的考虑。

目前想到的是在客户端以密文状态定期对比已备份到 S3 的数据和本地的数据
0o0O0o0O0o
2024-01-13 18:06:17 +08:00
24 小时过去,发现一个问题是每次打开 bitwarden 都会在数据库里修改 devices 表的 updated_at ,这种改变没有备份的意义,脚本里应该处理一下类似的问题
zhuweitung
2024-01-13 21:11:36 +08:00
ttionya/vaultwarden-backup

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/1008203

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX