vaultwarden 用了几年,备份方案翻来覆去折腾了好多种,这次利用 nginx syslog 实现“精确”的备份:
log_format json-log escape=json '{"status":$status,"request_method":"$request_method","request_uri":"$request_uri"}';
server {
location / {
# ...
proxy_redirect off;
proxy_pass http://vaultwarden;
proxy_http_version 1.1;
access_log syslog:server=syslog-server:50333,facility=local7,tag=nginx,severity=info,nohostname json-log;
}
}
这样 syslog-server:50333
就可以收到完成的请求,可以拿到 status
request_method
request_uri
等信息,如此只需要实现个简单的 syslog server ,便可以根据这些信息来决定是否调用备份:例如所有 GET 请求都无需关心,因为对数据库没有更改;例如我不关心登录、注册、设备、二次验证之类的变更,则 ^/identity/accounts/prelogin
^/identity/connect/token
.*/devices/.*
.*/two-factor/.*
等请求也可以略过;例如我不使用 sends ,.*/sends/.*
也可以忽略。
bitwarden 客户端让每一次更改都必须对应 vaultwarden 数据库的更改,这个备份方案理论上也可以确保对自己有价值的变更都被备份。
部署运行了一周,我很喜欢这个方案
诸位觉得如何
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.