个人从21年开始使用Vaultwarden一直到现在,项目持续在更新,热度不减。在此之前一直用的是1Password,比较下来Vaultwarden的功能没有比1Password差的,值得推荐大家使用。
什么是Vaultwarden
Vaultwarden 是一个用 Rust 编写的非官方 Bitwarden 服务器实现。它与官方 Bitwarden 客户端兼容,非常适合不希望运行官方资源密集型服务的自托管部署。
Vaultwarden 面向个人、家庭和小型组织。开发主要对大型组织有用的功能(例如单点登录、目录同步等)并不是优先考虑的事项,尽管实现这些功能的高质量 PR 会受到欢迎。
以下是 Bitwarden 、1Password、Vaultwarden 密码管理器解决方案之间的主要异同:
Bitwarden | 1Password | Vaultwarden | |
---|---|---|---|
官网 | https://bitwarden.com/ | https://1password.com/ | https://github.com/dani-garcia/vaultwarden |
价格 | 个人: - 免费:2个用户 2个集合 - 高级:10$/年 2个用户 2个集合 - 家庭:40$/年 6个用户 无限集合 商业: - 团队:4$/用户/月 无限用户 - 企业:6$/用户/月 无限用户 | 个人: - 个人:2.99$/月 - 家庭:4.99$/月 5个家庭账号 商业: - 团队:19.95$/用户/月 10用户 - 商业:7.99$/用户/月 无限用户 | 免费 |
端点支持 | Windows、macOS、Linux、iOS、watchOS、Android | Windows、macOS、Linux、iOS、watchOS、Android | |
浏览器插件 | Chrome、火狐、Safari 等 | Chrome、火狐、Safari 等 | Chrome、火狐、Safari 等 |
密码库选项 | Bitwarden Azure 云(美国、欧盟)、客户数据中心 | 1密码云(美国、加拿大、德国) | 自有 |
安全共享 | 单一密码、密码组、信用卡、文件 | 单一密码、密码组、信用卡、文件 | 单一密码、密码组、信用卡、文件 |
3rd 方网站和应用程序 MFA 选项 | Bitwarden 验证器 | 1密码 一次性密码,双重 | Vaultwarden 验证器 |
部署准备
- 准备VPS主机
- Docker环境
以Debian系统为例,参考Install using theapt
repository 安装,总结下来的安装命令如下:
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
# Install the Docker packages
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
- 推荐Nginx反代
参考nginx网站代理典型配置
配置Vaultwarden
1. 创建Vaultwarden工作目录
创建主目录
首先,在服务器上创建一个用于存放Vaultwarden相关文件的主目录。例如:
mkdir -p ~/vaultwarden
cd ~/vaultwarden
创建数据目录
Vaultwarden需要一个持久化数据存储目录来保存数据库和其他重要文件。创建一个名为vw-data
的目录:
mkdir -p vw-data
这个目录将映射到Docker容器中的/data
目录,以确保数据持久化。
2. 创建Docker Compose文件
Vaultwarden可以通过Docker轻松部署。首先,确保Docker和Docker Compose已经正确安装。然后,创建一个Docker Compose文件(例如docker-compose.yml
):
version: '3'
services:
vaultwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
restart: always
volumes:
- ./vw-data:/data
env_file:
- config.env
ports:
- "7443:80"
3. 创建环境变量配置文件
创建vaultwarden环境变量文件config.env
(配置模版文件:.env.template):
# 是否开放用户注册;
SIGNUPS_ALLOWED=true
# 域设置
# 域必须与您访问服务器的地址匹配
# 建议配置此值,否则某些功能可能无法工作,
# 如附件下载、电子邮件链接和 U2F。
# 要使 U2F 正常工作,服务器必须使用 HTTPS,您可以使用 Let's Encrypt 获取免费证书
# 要使用 HTTPS,建议的方法是将 Vaultwarden 置于反向代理之后
DOMAIN=https://example.com/bit
# 数据库在容器内的路径
DATABASE_URL=/data/vaultwarden.db
# 设置服务器线程
ROCKET_WORKERS=10
# 是否开启 Web 客户端
WEB_VAULT_ENABLED=true
# 配置SMTP服务器的主机地址,用于发送邮件
SMTP_HOST=smtp.your_email_provider.com
# 发件人邮件地址
SMTP_FROM=<mail-address>
# 配置SMTP服务器的端口
SMTP_PORT=587
# 配置SMTP加密方式
SMTP_SECURITY=starttls
# 配置SMTP登陆用户名
SMTP_USERNAME=<mail-address>
# 配置SMTP登陆密码
SMTP_PASSWORD=<less-secure-app-password>
# 设置日志记录的级别
LOG_LEVEL=warn
# 启用扩展日志记录,在日志中显示时间戳和目标
EXTENDED_LOGGING=true
# 记录到文件
LOG_FILE=/data/bitwarden.log
4. 配置Nginx反向代理
为了通过HTTPS安全访问Vaultwarden,你可以使用Nginx作为反向代理。以下是一个基本的Nginx配置示例:
location ^~ /bit/{
proxy_pass http://192.168.0.243:7443;
client_max_body_size 300m;
}
维护Vaultwarden
1. 更新Vaultwarden
定期更新Vaultwarden以修复漏洞和获取新功能。更新过程如下:
docker-compose pull
docker-compose up -d
# 删除container
docker-compose down
# 启动
docker-compose start
# 停止
docker-compose stop
2. 备份数据
定期备份vw-data
目录中的数据,以防止数据丢失。可以使用rsync
或其他备份工具实现自动备份。
3. 监控和日志
监控Vaultwarden的运行状态和日志,以便及时发现和解决问题。可以使用Docker日志命令查看:docker logs vaultwarden
Vaultwarden多端应用
Vaultwarden支持多种客户端应用程序:
桌面应用
兼容Bitwarden官方桌面应用程序,支持Windows、macOS和Linux。移动应用
兼容Bitwarden官方移动应用程序,支持iOS和Android。浏览器扩展
支持Chrome、Firefox、Safari等常用浏览器的Bitwarden官方扩展。
注意!!! 请牢记自己的Vaultwarden密钥,没有找回的方式。