vaultwarden 备份思路

346 天前
 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 服务。

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

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

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

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

https://www.v2ex.com/t/1008203

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

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

© 2021 V2EX