Vaultwarden 密码管理服务

dani-garcia/vaultwarden 访问 GitHub ↗
🔤 Rust ★ 66125 ⑂ 0 daily #16 (+175) 抓取 2026-08-25

一句话简介

用 Rust 实现的轻量级 Bitwarden 兼容服务端,可自托管部署以管理密码、笔记等敏感数据。

标签

  • 密码管理
  • 自托管
  • 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-ForX-Real-IPX-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…