vaultwarden 密码管理
Vaultwarden:用 Rust 重写的轻量级密码管理服务
密码管理器 Bitwarden 知名度较高的开源方案, Rust 重写了 Bitwarden 的服务端 API,目标是在保持客户端兼容性的前提下大幅降低部署门槛
这个项目最初叫 Bitwarden_RS,后来为了和官方服务端区分、避免商标方面的争议而改名。实现了 Bitwarden 客户端 API 的大部分功能,包括个人密码库、组织管理、密码共享、文件附件、两步验证(支持 TOTP、FIDO2、YubiKey、Duo 等多种方式)、紧急访问、以及管理后台。官方的 Web Vault 客户端也被修改后打包在容器镜像里,用户不需要额外编译前端。
部署方式以容器为主。官方镜像发布在 ghcr.io、docker.io 和 quay.io 三个平台,一条 docker pull 命令就能拉下来。配合 Docker Compose 的话,配置文件也很简洁,核心就是指定域名、挂载数据卷、映射端口。项目也维护了社区驱动的第三方包,不过这些包可能存在版本滞后或配置方式不一致的情况。
Web Vault 要求 HTTPS 和安全上下文,因为浏览器的 Web Crypto API 在非安全环境中不可用。所以部署时必须配置 TLS,官方建议通过反向代理(如 Nginx、Caddy)来处理证书,而不是让 Vaultwarden 本身直接暴露在公网上。项目 Wiki 里有多种反向代理的配置示例。
技术栈上,Vaultwarden 基于 Rust 的 Rocket Web 框架,虽然 Rocket 本身支持 TLS,但官方仍然推荐用反向代理来终结 HTTPS 连接。这种架构让 Vaultwarden 的容器镜像体积和内存占用都远低于官方服务端,在低配 VPS 上也能流畅运行。
社区方面,项目在 Matrix、GitHub Discussions 和 Discourse 论坛都有活跃的讨论渠道。遇到问题时,官方明确要求用户直接向 Vaultwarden 团队反馈,而不是走 Bitwarden 的官方支持流程。项目采用 AGPL-3.0 协议,目前有超过 6 万 star,贡献者数量也在持续增长。
需要注意的是,Vaultwarden 和 Bitwarden 公司没有从属关系。虽然其中一位活跃维护者在 Bitwarden 任职,但其贡献属于个人行为,由其他维护者独立审核。使用 Vaultwarden 时,数据安全的责任在用户自己身上,官方建议定期备份数据库和文件。