Vaultwarden 密码管理服务
一句话简介
用 Rust 实现的轻量级 Bitwarden 兼容服务端,可自托管部署以管理密码、笔记等敏感数据。
标签
适用应用场景
- 个人或团队自建密码管理服务
- 替代官方 Bitwarden 云以降低资源占用
- 在 NAS 或家庭服务器上部署私有凭据库
- 为开发环境提供密钥与机密集中管理
README 中文摘要
项目简介
Vaultwarden 是 Bitwarden 客户端 API 的替代服务端实现,使用 Rust 编写,可与官方 Bitwarden 客户端(桌面、移动、浏览器插件、Web 密码库)完全兼容。项目定位为自托管部署场景下官方服务的轻量替代方案,适合不愿运行资源占用较高的官方服务的个人、家庭或小型组织。
核心特性
实现了几乎完整的 Bitwarden 客户端 API,主要涵盖以下能力:
- 个人密码库:条目管理、Send 安全分享、附件、网站图标、个人 API Key
- 组织功能:集合(Collections)、密码共享、成员角色、分组(Groups)、事件日志、管理员密码重置、目录连接(Directory Connector)、策略(Policies)
- 多因素认证:Authenticator 验证器、邮件、FIDO2 WebAuthn、YubiKey、Duo
- 紧急访问(Emergency Access)
- Vaultwarden 管理后台:提供额外的运维管理界面
- 修改版 Web Vault 客户端:内置在官方容器镜像中
技术架构
服务端基于 Rocket Web 框架开发,内置 TLS 支持。实际部署中推荐使用反向代理(Nginx、Caddy、Traefik 等)将 Vaultwarden 置于其后,原因有二:
- Web 密码库要求 HTTPS 与安全上下文,否则无法调用 Web Crypto API
- 反向代理能更灵活地处理 TLS 终止、HTTP/2 与访问控制
安装与运行
Docker / Podman CLI
推荐使用容器镜像,镜像发布于 ghcr.io、docker.io、quay.io。latest 标签包含修改版 Web Vault,其他轻量标签不含 web 客户端。
# 拉取镜像并后台启动,挂载主机目录持久化数据
docker pull vaultwarden/server:latest
docker run --detach --name vaultwarden \
--env DOMAIN="https://vw.domain.tld" \ # 服务对外域名,客户端连接使用
--volume /vw-data/:/data/ \ # 持久化目录(SQLite 数据库、附件等)
--restart unless-stopped \
--publish 127.0.0.1:8000:80 \ # 仅监听本地,由反向代理转发
vaultwarden/server:latest
/vw-data/ 目录保存所有持久化数据,建议定期备份;如需改用外部数据库,可通过环境变量切换至 PostgreSQL 或 MySQL。
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
亦可通过 Cargo 从源码自行编译,或使用社区维护的发行版软件包,但这些包的版本可能滞后于官方仓库。完整配置选项参见项目 Wiki。
配置要点
- 必须设置
DOMAIN环境变量,值需与客户端实际访问地址一致(含协议) - 反向代理需正确转发
X-Forwarded-For、X-Real-IP、X-Forwarded-Proto头,供 Rocket 识别客户端真实地址与协议 - 启用 HTTPS 后才能使用 Web Vault 与 FIDO2 WebAuthn 功能
- 建议关闭容器对外直接暴露的 80/443 端口,仅由反向代理访问
注意事项
使用 Vaultwarden 时遇到的任何 Bug 或功能建议,应直接反馈给本项目,而非 Bitwarden 官方支持渠道。项目与 Bitwarden 公司无官方关联,使用过程中产生的数据丢失(包括密码库、附件等)由使用者自行负责,强烈建议定期备份数据目录与数据库。该项目原名 Bitwarden_RS,后更名为 Vaultwarden 以避免商标与品牌混淆。
摘要更新于 2026-08-24 00:31:39
· 原文 11157 字符
· md5 e894b5c3b4b6…