项目详情
Vaultwarden
用 Rust 重写 Bitwarden 服务器,自托管密码管理只需一个容器
更新于 2026-07-17
← 返回汇总
项目速览
一句话定位
用 Rust 重写 Bitwarden 服务器,自托管密码管理只需一个容器
Bitwarden 客户端 API 的非官方 Rust 实现,与官方移动/桌面/浏览器客户端完全兼容。相比官方 C# 服务器的重资源栈,单容器即可跑起完整功能,内存几十 MB。默认 SQLite 开箱即用,也支持 MySQL/PostgreSQL。面向个人、家庭、小团队,把密码主权握在自己手里。
项目速览
核心数据
3k Forks · 52 Open Issues · 创建于 2018-02-17 · 前身 bitwarden_rs
为什么存在
官方 Bitwarden 太重了
资源吃紧
官方服务器是 C# / .NET + SQL Server + 多容器编排,小 VPS 跑不动。
部署复杂
MSSQL License、Identity、Admin 等十几个组件,自托管门槛高。
隐私诉求
密码是最高敏数据,很多用户不愿交给云服务,只想自托管。
核心理念
轻量,但不阉割
- 单二进制 + 单容器:编译成一个 Rust 可执行文件,Docker 一行跑起,内存占用几十 MB
- API 兼容而非协议重造:实现 Bitwarden Client API,复用官方全套客户端,零学习成本
- SQLite 默认开箱即用:小规模免装数据库,也支持 MySQL / PostgreSQL 横向扩展
- 功能近乎完整:组织、Send、附件、2FA、SSO、紧急访问、策略、目录同步全部支持
核心机制
客户端兼容闭环
官方移动端
→
官方桌面端
→
浏览器扩展
→
Vaultwarden API
→
SQLite / MySQL / PG
- 端到端加密不变:加解密仍在客户端,服务器只存密文,安全模型与官方一致
- Web Vault 内嵌:容器自带修改版 bw_web_builds,开箱即用无需额外部署
- Admin Panel:独立管理后台,环境变量配置、用户管理、诊断一站式
技术架构
分层结构
Web 层
Rocket Framework
Rust 异步 Web 框架,内置 TLS 支持,路由 + 请求处理。推荐前置反向代理(Nginx/Caddy/Traefik)处理 HTTPS。
API 层
Bitwarden Client API
几乎完整复刻官方 API 端点,包括 SSO 登录、prelogin、同步、加密条目、组织权限。
存储层
多后端数据库
默认 SQLite(嵌入式,零配置);生产可选 MySQL/MariaDB 或 PostgreSQL。Diesel ORM 抽象。
前端层
修改版 Web Vault
基于官方 Web Vault 的兼容构建(bw_web_builds),打包进镜像静态资源。
安全模型
零信任,服务器永不接触明文
- 客户端加密:主密码派生主密钥,条目加密后才上传,服务器仅存储密文
- 多因子全覆盖:TOTP Authenticator、Email、FIDO2 WebAuthn、YubiKey、Duo 全部支持
- SSO 支持:OIDC / SAML 集成企业身份提供商,1.36 修复 SSO CSRF 等多个安全问题
- 组织级管控:策略(Policies)、管理员重置密码、目录同步、事件日志
- 紧急访问:可指定受信联系人,在失能时接管密码库
快速上手
三分钟跑起来
# 拉取镜像
docker pull vaultwarden/server:latest
# 运行容器,挂载持久化目录
docker run --detach --name vaultwarden \
--env DOMAIN="https://vw.domain.tld" \
--volume /vw-data/:/data/ \
--restart unless-stopped \
--publish 127.0.0.1:8000:80 \
vaultwarden/server:latest
# 前置 Nginx/Caddy 终止 HTTPS(Web Crypto API 强制要求 Secure Context)
# 访问 https://vw.domain.tld 注册账号即可
镜像发布于 ghcr.io / docker.io / quay.io 三处,社区另提供第三方包(可能滞后)。
快速上手
Docker Compose 版本
services:
vaultwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
restart: unless-stopped
environment:
DOMAIN: "https://vw.domain.tld"
volumes:
- ./vw-data/:/data/
ports:
- 127.0.0.1:8000:80
- DOMAIN 必填:决定 WebAuthn / SSO 的 origin 绑定,错误会导致 2FA 失败
- 反向代理必备:Rocket 虽内置 TLS,但官方推荐用 Nginx/Caddy 终止 HTTPS
功能矩阵
覆盖范围对照
| 类别 | 具体能力 |
| 个人密码库 | 条目管理、Send 临时分享、附件、网站图标、Personal API Key |
| 组织协作 | Collections、密码共享、成员角色、Groups、事件日志、管理员重置、目录同步、策略 |
| 多因子认证 | Authenticator (TOTP)、Email、FIDO2 WebAuthn、YubiKey、Duo |
| 身份集成 | SSO (OIDC/SAML)、Emergency Access 紧急访问 |
| 管理后台 | 独立 Admin Panel、环境变量配置、诊断、用户管理 |
适用场景
谁该用 Vaultwarden
- 个人极客:1 核 512MB 的 VPS 就能托管全家密码,摆脱 LastPass / 1Password 订阅
- 家庭共享:建一个 Organization,家人共享 Wi-Fi / 流媒体 / 银行密码,权限可控
- 小型团队 / 初创:替代官方 Bitwarden Teams 付费版,省下每用户每月费用
- 合规敏感企业:数据完全自有,满足数据不出境 / 等保 / GDPR 自托管要求
- Homelab 玩家:自托管基础设施的经典组件,与 Nextcloud / Jellyfin 同列
风险提示
需要警惕
- 备份是生命线:官方明确不承担数据丢失责任,必须定期备份
/data 与数据库
- HTTPS 强制:Web Crypto API 要求 Secure Context,没反代会白屏
- 非官方项目:与 Bitwarden Inc. 无关联,Bug 不能走官方支持渠道(但一名维护者是 Bitwarden 员工业余贡献)
- 更新滞后风险:第三方包 / 旧镜像可能滞后,密码库应紧跟官方 release(如 1.36 修复 SSO CSRF)
- 规模上限:面向个人 / 家庭 / 小组织,千人级企业应评估官方服务器
生态与社区
成熟的周边
- 多渠道分发:ghcr.io / docker.io / quay.io 官方镜像,外加社区第三方包
- 活跃社区:Matrix 聊天室、GitHub Discussions、独立 Discourse 论坛三处答疑
- 详尽 Wiki:HTTPS 启用、反代示例、备份恢复、容器镜像选择等部署文档齐全
- 稳定发布节奏:GHA 自动化构建/发布流程,安全修复响应迅速(1.36 集中修复 6 个 GHSA)
潜力评估
未来空间
自托管密码管理赛道的绝对王者,63.8k Stars 证明社区共识。Rust 单容器的轻量优势在边缘计算 / 家庭服务器场景无可替代。只要 Bitwarden 客户端 API 不大改,其地位稳固。