Vaultwarden部署指南:轻量自托管密码管理服务器

Vaultwarden 是用Rust重写的轻量Bitwarden兼容服务端,内存占用极低,适合个人自托管密码管理。
Vaultwarden 是基于 Rust 编写的非官方 Bitwarden 兼容服务器,旨在以极低的资源占用为个人和小团队提供完整的自托管密码管理能力。相比官方 Bitwarden 方案需要多个 Docker 容器、至少 2GB 内存,Vaultwarden 单容器空载内存占用不足 30MB,可在树莓派、低配 VPS 等设备上稳定运行。它兼容 Bitwarden 所有官方客户端,并默认开放 TOTP 两步验证、Bitwarden Send、Emergency Access 等原本需要付费订阅的高级功能。部署时推荐搭配 Nginx、Caddy 等反向代理实现 HTTPS,并遵循关闭公开注册、加密备份数据库等安全实践。目前该项目在 GitHub 拥有超过 65,000 Star,已成为自托管密码管理领域的标杆选择。
什么是 Vaultwarden
Vaultwarden 是一个用 Rust 语言编写的非官方 Bitwarden 兼容服务器,前身名为 bitwarden_rs。它旨在为个人用户和小型团队提供一个轻量、高效的自托管密码管理解决方案。目前该项目在 GitHub 上已获得超过 65,000 个 Star,社区活跃度持续走高。
对于许多注重隐私的用户来说,将密码等敏感数据托管在第三方云服务上始终存在顾虑。Vaultwarden 的出现,让用户可以在自己掌控的服务器上运行一套完全兼容官方 Bitwarden 客户端的密码管理后端,从而在便利性与数据主权之间取得平衡。

为什么选择 Vaultwarden 而非官方方案
资源占用极低,适合低配设备
官方 Bitwarden 自托管方案基于 .NET 构建,并依赖多个 Docker 容器(如 MSSQL 数据库等),对硬件资源要求较高,通常需要至少 2GB 内存才能流畅运行。这对于树莓派、低配 VPS 或家庭 NAS 等场景并不友好。
Vaultwarden 采用 Rust 编写,得益于 Rust 的高性能和内存安全特性,整个服务可以在极低的资源占用下运行——即便在只有几百 MB 内存的设备上也能稳定工作。这使得它成为个人用户和自托管爱好者的首选方案。
Rust 语言的内存管理机制与传统 GC(垃圾回收)语言存在本质差异。Rust 通过「所有权(Ownership)」系统在编译期完成内存安全检查,无需运行时垃圾收集器,因此既避免了 C/C++ 常见的内存泄漏与悬空指针问题,又不会像 Java、C# 那样因 GC 暂停导致额外的内存和 CPU 开销。官方 Bitwarden 服务端基于 .NET(C#)构建,其运行时本身就需要占用可观的基础内存,再加上 MSSQL 数据库容器,冷启动内存轻松超过 1.5GB。而 Vaultwarden 的单容器在空载时内存占用通常低于 30MB,在树莓派 3B(1GB RAM)或入门级 VPS(512MB RAM)上完全可以与其他服务共存运行。
完整的 Bitwarden 功能兼容性
Vaultwarden 实现了 Bitwarden 官方 API 的绝大部分功能,用户可以直接使用官方的桌面客户端、浏览器扩展、移动 App 以及 CLI 工具连接自己的 Vaultwarden 实例。其支持的功能包括:
- 用户账户注册与登录管理
- 密码库(Vault)的存储与同步
- 组织(Organization)与共享集合
- 两步验证(2FA),支持 TOTP、Duo、YubiKey 等
- 附件上传与管理
- Bitwarden Send 加密分享
- Emergency Access 紧急访问
你可能没注意到,官方 Bitwarden 中一些原本属于付费订阅(Premium)的功能,在 Vaultwarden 中默认即可使用,这也是许多用户转向该项目的重要原因之一。

Bitwarden Send 是 Bitwarden 在 2021 年推出的端对端加密文件与文本分享功能。与普通的文件分享链接不同,Send 的数据在客户端本地完成加密后才上传到服务器,服务器只存储密文,连服务提供者本身也无法读取内容。接收方通过链接中携带的密钥片段在本地解密,整个过程遵循零知识(Zero-Knowledge)原则。Emergency Access(紧急访问)则允许用户预先指定可信联系人,当账户持有者失联或发生意外时,受信任联系人可在经过一段等待期后申请获取密码库访问权限——这一机制为密码库的数字遗产传承提供了制度化保障,在官方方案中属于 Premium 付费功能,Vaultwarden 默认开放。
Vaultwarden 部署教程
Docker 快速部署方法
Vaultwarden 官方推荐通过 Docker 进行部署,这也是最简单的上手方式。用户只需拉取官方镜像并运行容器,即可快速搭建起一个可用的密码管理服务。典型的部署命令如下:
docker run -d --name vaultwarden \
-v /vw-data/:/data/ \
-p 80:80 \
vaultwarden/server:latest
在实际生产环境中,通常还会在前面配置一层反向代理(如 Nginx、Caddy 或 Traefik)来处理 HTTPS 加密。由于密码管理涉及高度敏感的数据,启用 TLS 是必须的安全措施。
反向代理在 Vaultwarden 部署中扮演着关键角色,值得单独说明。Vaultwarden 容器本身默认监听 HTTP 80 端口,不直接处理 TLS 证书。通过在前端部署 Nginx、Caddy 或 Traefik,可以将外部的 HTTPS 443 请求解密后以 HTTP 转发给 Vaultwarden 容器,这种模式称为「TLS 终止(TLS Termination)」。其中 Caddy 因内置 Let's Encrypt 自动申请和续期证书的能力,对新手最为友好——只需在配置文件中声明域名,Caddy 会自动完成证书的全生命周期管理,无需手动执行 certbot 命令。Traefik 则更适合已有多个容器服务的 Docker Compose 环境,可通过标签(Label)自动发现并配置路由规则,减少重复配置工作。
安全配置建议
自托管虽然带来了数据主权,但也意味着安全责任转移到了用户自己身上。使用 Vaultwarden 时,建议关注以下几点:
- 强制 HTTPS:所有客户端与服务器之间的通信必须加密。
- 关闭开放注册:部署完成后,及时通过环境变量禁用公开注册功能,避免陌生人创建账户。
- 启用管理后台密码:Vaultwarden 提供了 Admin 管理页面,应设置强密码进行保护。
- 定期备份数据库:密码库数据一旦丢失后果严重,需建立可靠的备份机制。
- 保持版本更新:及时跟进项目发布的安全补丁。
Vaultwarden 与自托管趋势
Vaultwarden 的成功反映了当下开源社区两个重要趋势:一是 Rust 在系统级服务领域的崛起,凭借内存安全与高性能,Rust 正逐步成为构建基础设施软件的热门选择;二是 自托管(self-hosted)文化的复兴,越来越多的用户希望摆脱对大型云厂商的依赖,将自己的数据掌握在手中。
作为一个非官方项目,Vaultwarden 与官方 Bitwarden 保持了良好的兼容性但并无从属关系。这既是它的优势——轻量灵活、功能开放,也提醒用户在选型时需自行评估维护稳定性与安全责任。对于企业级、大规模团队,官方方案在支持与合规上仍有其价值;而对于个人、家庭或小团队而言,Vaultwarden 无疑是一个极具吸引力的选择。
总结
Vaultwarden 用 Rust 重新实现了 Bitwarden 兼容服务器,在保持功能完整的同时极大降低了资源占用门槛。凭借超过 6.5 万 Star 的社区认可度,它已经成为自托管密码管理领域的标杆项目。无论你是希望在树莓派上搭建私人密码库的技术爱好者,还是寻求低成本团队密码管理方案的小企业,Vaultwarden 都值得纳入你的技术栈考量。
相关推荐

@ai-sdk/zai@3.0.10 发布:依赖更新的补丁版本解析
Vercel AI SDK 发布 @ai-sdk/zai@3.0.10 补丁版本,同步更新 provider、provider-utils 与 openai-compatible 等底层依赖。本文解析该版本变更内容及 AI SDK provider 体系的设计意义。

Vercel AI SDK 更新:@ai-sdk/workflow 2.0.29 修复工具结果保留问题
Vercel AI SDK 发布 @ai-sdk/workflow 2.0.29 补丁版本,核心修复工作流在终止、延迟、暂停三种响应状态下 provider 工具执行结果的保留问题,并同步升级 ai@7.0.98 等核心依赖。

Vercel AI SDK 更新:@ai-sdk/xai 4.0.58 批处理与图像生成改进
Vercel AI SDK 发布 @ai-sdk/xai 4.0.58 版本更新,新增批处理图像生成支持,修复批处理请求类型校验及 DeepSeek 推理流问题,并同步升级 provider 相关依赖。