个人从21年开始使用Vaultwarden一直到现在,项目持续在更新,热度不减。在此之前一直用的是1Password,比较下来Vaultwarden的功能没有比1Password差的,值得推荐大家使用。

什么是Vaultwarden

Vaultwarden 是一个用 Rust 编写的非官方 Bitwarden 服务器实现。它与官方 Bitwarden 客户端兼容,非常适合不希望运行官方资源密集型服务的自托管部署。
Vaultwarden 面向个人、家庭和小型组织。开发主要对大型组织有用的功能(例如单点登录、目录同步等)并不是优先考虑的事项,尽管实现这些功能的高质量 PR 会受到欢迎。
以下是 Bitwarden 、1Password、Vaultwarden 密码管理器解决方案之间的主要异同:

Bitwarden1PasswordVaultwarden
官网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、AndroidWindows、macOS、Linux、iOS、watchOS、Android
浏览器插件Chrome、火狐、Safari 等Chrome、火狐、Safari 等Chrome、火狐、Safari 等
密码库选项Bitwarden Azure 云(美国、欧盟)、客户数据中心1密码云(美国、加拿大、德国)自有
安全共享单一密码、密码组、信用卡、文件单一密码、密码组、信用卡、文件单一密码、密码组、信用卡、文件
3rd 方网站和应用程序 MFA 选项Bitwarden 验证器1密码 一次性密码,双重Vaultwarden 验证器

部署准备

  1. 准备VPS主机
  2. Docker环境
    以Debian系统为例,参考Install using the apt 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
  1. 推荐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支持多种客户端应用程序:

  1. 桌面应用
    兼容Bitwarden官方桌面应用程序,支持Windows、macOS和Linux。

  2. 移动应用
    兼容Bitwarden官方移动应用程序,支持iOS和Android。

  3. 浏览器扩展
    支持Chrome、Firefox、Safari等常用浏览器的Bitwarden官方扩展。

注意!!! 请牢记自己的Vaultwarden密钥,没有找回的方式。