open(11)Vaultwarden 轻量级密码管理

Vaultwarden 是一个由 Rust 编写的轻量级密码管理服务器,兼容 Bitwarden 客户端,适合个人或小型团队自建密码管理服务。它的前身是 bitwarden_rs,目标是提供一个资源占用更少、部署更简单的自托管解决方案。

e2ee37736311d14e03897820424ac0ac.png


bitwarden

🔐 1.Vaultwarden 特点

  • 轻量高效:相比官方服务器,资源占用更少,适合配置较低的服务器或 NAS 设备 。
  • 功能丰富:默认支持官方 Bitwarden 付费版的全部功能,如多因素认证(TOTP、YubiKey)、附件上传、组织共享等。
  • 高度兼容:可与官方 Bitwarden 客户端无缝配合使用,支持 Windows、macOS、Linux、iOS、Android 等平台。
  • 完全自托管:用户拥有对数据的完全控制权,增强了数据隐私和安全性 。

🚀 2.快速部署 Vaultwarden

2.1.运行容器

quickstart

1
2
3
4
docker run -d --name vaultwarden \
-v /vw-data/:/data/ \
-p 80:80 \
vaultwarden/server:latest

上述命令将 Vaultwarden 部署在本地的 80 端口,数据保存在 /vw-data/ 目录中。

2.2.访问 Web 界面
在浏览器中访问 http://<服务器IP>,即可进入 Vaultwarden 的 Web 界面,注册并登录账户。

2.3参数控制

1
2
3
4
5
6
7
8
docker run -d --name vaultwarden \
-e SIGNUPS_ALLOWED=true \
-e WEBSOCKET_ENABLED=true \
-e LOG_FILE=/data/vaultwarden.log \
-v /bw-data/:/data/ \
-p 8880:80 \
-p 3012:3012 \
vaultwarden/server:latest

参数解释:

  • SIGNUPS_ALLOWED=true:允许新用户注册。
  • WEBSOCKET_ENABLED=true:启用 WebSocket 支持,用于多端同步。
  • LOG_FILE=/data/vaultwarden.log:指定日志文件路径。
  • -v /bw-data/:/data/:挂载数据卷,用于持久化存储。
  • -p 8880:80:映射 HTTP 端口。
  • -p 3012:3012:映射 WebSocket 端口 。
1
2
3
4
5
6
7
8
9
10
11
services:
vaultwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
restart: unless-stopped
environment:
DOMAIN: "https://vw.domain.tld"
volumes:
- ./vw-data/:/data/
ports:
- 80:80
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
version: '3'
services:
vaultwarden:
container_name: vaultwarden
image: vaultwarden/server:latest
restart: unless-stopped
volumes:
- ./data/:/data/
ports:
- 8080:80
environment:
- DOMAIN=https://subdomain.yourdomain.com
- ADMIN_TOKEN=xxxx
- EMERGENCY_ACCESS_ALLOWED=true
- WEB_VAULT_ENABLED=true
- SIGNUPS_ALLOWED=false

⚙️ 3.配置与管理

启用管理后台

Vaultwarden 支持通过设置 ADMIN_TOKEN 环境变量启用管理后台。

root@68bdb3fb562e:/# ./vaultwarden -h
Vaultwarden 1.33.2
Alternative implementation of the Bitwarden server API written in Rust

USAGE:
    vaultwarden [FLAGS|COMMAND]

FLAGS:
    -h, --help       Prints help information
    -v, --version    Prints the app and web-vault version

COMMAND:
    hash [--preset {bitwarden|owasp}]  Generate an Argon2id PHC ADMIN_TOKEN
    backup                             Create a backup of the SQLite database
                                       You can also send the USR1 signal to trigger a backup

PRESETS:                  m=         t=          p=
    bitwarden (default) 64MiB, 3 Iterations, 4 Threads
    owasp               19MiB, 2 Iterations, 1 Thread

3.1.生成加密的管理密码

1
docker run --rm -it vaultwarden/server /vaultwarden hash

按照提示输入密码,获取加密后的字符串。

3.2.设置环境变量

在运行容器时添加环境变量:

1
-e ADMIN_TOKEN='加密后的字符串'

3.3.访问管理后台

在浏览器中访问 http://<服务器IP>/admin,使用设置的 ADMIN_TOKEN 登录管理后台。

🧭 4.使用指南

4.1. 创建账户

访问 http://your-domain.com,根据提示创建账户。输入邮箱地址和主密码后,系统会发送验证邮件,点击邮件中的链接完成验证后即可使用 。

4.2. 管理后台设置

访问 http://your-domain.com/admin,输入在环境变量中设置的 ADMIN_TOKEN 进入管理后台。建议在完成初始配置后,关闭新用户注册功能,以增强安全性 。

4.3. 配置客户端

在官方 Bitwarden 客户端中,选择“自托管”选项,并输入您的服务器地址(如 http://your-domain.com),即可连接到自建的 Vaultwarden 服务 。

4.4.浏览器插件 -> Bitwarden