Vaultwarden 是一个用 Rust 编写的非官方 Bitwarden 服务器实现。
Bitwarden 是一个密码管理器,可以在浏览器、Android 实现密码填充功能。使用自托管 Vaultwarden 服务器可以在离线环境下使用 Bitwarden 客户端、浏览器插件、网页端管理密码。
Vaultwarden 有提供 Docker 容器运行方式,也可以通过 Docker 容器提取预编译的二进制文件,但预编译的二进制文件并没有 Windows 版本,所以需要手动编译。
为了实现开箱即用和便携化,编译时尽可能选择静态链接、二进制文件无额外依赖的方法。
本文主要为 x86_64
架构编译,arm64
的方法可能不同,所有命令使用 PowerShell
执行。
文末放出了编译好的文件,可以先尝试使用后再决定是否要自行编译。
编译环境搭建
- 安装 C++ 编译工具链
参照 在 Windows 上针对 Rust 设置开发环境的教程,需要先安装 C++ 编译工具链。
可以安装 Microsoft C++ 生成工具或 Microsoft Visual Studio,然后启用 使用 C++ 的桌面开发
工作负载。
- 安装 Rust
首先通过官网下载 rustup-init.exe,使用默认设置安装 Rust:
1 | $env:RUSTUP_UPDATE_ROOT="https://mirrors.cernet.edu.cn/rustup/rustup" |
- 使用 vcpkg 安装 OpenSSL
Vaultwarden 还依赖 openssl/vendored
,需要使用 vcpkg 安装:
1 | # 克隆仓库 |
- 编译 Vaultwarden
克隆 Vaultwarden,进入目录后编译:
1 | git clone https://github.com/dani-garcia/vaultwarden |
在本地使用,仅需要启用 sqlite 数据库支持,如编译成功,exe 文件会出现在 .\target\release\
目录下。
Vaultwarden 使用
得到编译完成的 exe 文件后,还需要 web-vault 文件夹来提供网页内容。
按照 安装 web-vault 的教程,从 dani-garcia/bw_web_builds 下载 bw_web_vxxxx.xx.xx.tar.gz
文件解压得到 web-vault
文件夹,放在 vaultwarden.exe
同目录下。
然后创建 .env
配置文件:
1 | # 禁用网站图标下载 |
可以参考 .env.template 配置更多选项。
创建 data
文件夹,数据库和设置文件将会保存到这里。运行 vaultwarden.exe
,在网页中打开 http://127.10.10.100:8000
可以开始注册账号使用。
要在浏览器插件或者程序上使用,需要在自托管环境设置中将服务器 URL 设置为 http://127.10.10.100:8000
。
如果需要开机启动或者后台运行,可以使用 WinSW 创建开机自启服务。
在仅使用浏览器插件进行填充的情况下,只有更新密码信息才会和服务端通信,服务端后台常驻不是很有必要。
以下是基于 vaultwarden 1.33.2 和 Web-Vault v2025.1.1 编译打包的文件信息:
1 | 文件版本: |