把密码库搬回自己手里:Vaultwarden 自建上手与避坑

开源工具深读 · 第 107 期

把密码库搬回自己手里:Vaultwarden 自建上手与避坑

把密码交给商业云服务,最怕两件事:数据不在自己手里,想多用点功能就得交订阅费。Vaultwarden 给出一个干净的答案——用官方 Bitwarden 的客户端,把服务端换成自己托管的轻量实现。

它到底是什么

Vaultwarden 是 Bitwarden API 的第三方开源实现,用 Rust 写成,兼容官方全平台客户端(浏览器插件、桌面端、手机 App)。你不需要改变任何使用习惯,只是把「账本」存到了自己的服务器上。它原名 Bitwarden_RS,后来为避免商标混淆改名,与 Bitwarden 官方无隶属关系。

它支持个人保险库、附件、网站图标、组织与共享、双因素认证(TOTP / WebAuthn / YubiKey / Duo)、紧急访问,以及自带的管理后台。本质上是把一个资源消耗很高的官方服务,换成一台 1 核 512MB 就能常年跑起来的轻量服务。

怎么用

官方推荐用容器镜像部署,下面这段来自 README 的 docker-compose 是最直接的起法(把 DOMAIN 换成你的 HTTPS 域名):

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

跑起来后用 Nginx / Caddy 反代并配 HTTPS 即可;README 也给了等价的 docker run 命令。注意 Web Vault 依赖 HTTPS 安全上下文,裸跑拿不到 Web Crypto,无法使用网页端。

优点

  • 轻量:Rust 实现,内存占用极低,树莓派、小机型都能常年跑。
  • 数据自主:所有密码、TOTP、附件都在你自己的盘上,不再经过第三方。
  • 零迁移成本:兼容官方全平台客户端,历史数据直接导入即可。
  • 免费且功能完整:组织共享、双因素、紧急访问都包含,没有订阅墙。
  • 活跃维护:项目提交持续,安全更新跟得上。

缺点与坑

  • 许可证为 AGPL-3.0 强 copyleft:你若分发修改版,必须开源你的改动。
  • 非官方实现:不享受 Bitwarden 官方支持,出问题别找官方工单。
  • 部分官方付费能力未覆盖:高级 2FA 的某些项、家族高级特性等不在范围内。
  • 责任完全在你:安全、备份、HTTPS 全要自己兜底,Web Vault 必须 HTTPS + 反代。
  • 需要一点运维:至少会配反代、做定期备份。

最终能达到什么效果

一次部署,全家或一个小团队就用上了「自己的 1Password」——密码、TOTP、附件都在自己服务器上同步,订阅费归零,跨端体验与官方 Bitwarden 一致。

适合谁

注重数据主权、想省订阅费、有一台常开小服务器或 NAS、愿意自己运维的个人 / 家庭 / 小团队。

不适合谁

完全不想碰运维、需要官方 SLA 与工单支持、要企业级高级功能的团队。

安装与命令示例均取自 Vaultwarden 官方 README(main 分支);部署前请以仓库最新文档为准。许可证:AGPL-3.0。

下期预告副屏 / 投屏 / 本地互传开源工具横向合集(承接此前预告,仍未交付)。