跳转到内容

Vaultwarden:自托管密码库

一个轻量的服务端实现,可以配合官方 Bitwarden 客户端使用。密码由客户端加密后上传,服务端保存的是密文。

这是你所有账号的钥匙

自托管密码库意味着可用性和备份完全由你负责。服务挂了、数据丢了、证书过期了,影响的是你登录一切网站的能力。在决定自托管之前,先诚实评估:你能保证它长期稳定运行并有可靠备份吗?做不到的话,用成熟的商业密码管理服务是更负责任的选择。

必须满足的前提

  1. 必须 HTTPS。 客户端拒绝通过明文连接同步,这不是可选项。
  2. 必须有可靠备份。 数据丢失等于所有密码丢失。
  3. 必须关闭开放注册。 创建完自己的账号后立刻关掉。
  4. 必须有高可用的访问路径。 手机在外面打不开密码库,是很现实的麻烦。

部署

yaml
services:
  vaultwarden:
    image: vaultwarden/server:latest
    container_name: vaultwarden
    restart: unless-stopped
    ports:
      - "8222:80"
    environment:
      - SIGNUPS_ALLOWED=true   # 创建完账号后改为 false 并重启
      - DOMAIN=https://你的域名
    volumes:
      - /vol1/docker/vaultwarden/data:/data

前面必须有一个提供 HTTPS 的反向代理,见 Nginx Proxy Manager

数据与备份

/data 目录包含数据库、附件和密钥材料,全部都要备份。建议:

  • 每日自动备份到另一个存储空间。
  • 另外保留一份加密的异地副本,见备份到云存储
  • 定期做恢复演练:这是最不该「假设备份没问题」的数据。
  • 同时在客户端里导出一份离线备份,放在安全的地方。

已知坑

  • 证书过期会导致所有客户端无法同步,配好续期告警。
  • 升级前务必备份,跨版本升级可能涉及数据库结构变更。
  • 开放注册忘记关闭,是这类服务最常见的配置失误。

参考资料

fnOS 非官方中文使用指南,与飞牛官方无隶属关系。