1. Vaultwarden介绍
- Vaultwarden 是什么?
Vaultwarden 是一个用于本地搭建 Bitwarden 服务器的第三方 Docker 项目。仅在部署的时候使用 Vaultwarden 镜像,桌面端、移动端、浏览器扩展等客户端均使用官方 Bitwarden 客户端。
Vaultwarden 很轻量,对于不希望使用官方的占用大量资源的自托管部署而言,它是理想的选择。
- Vaultwarden 与 Bitwarden 的区别
除不支持官方企业版的部分功能(如目录同步、SSO、群组、自定义角色以及基于企业组织层面的 Duo Security 两步登录)外,其他大部分功能均免费支持。并跟随官方版本保持及时更新。
Vaultwarden 比官方版更轻量。官方版使用 .Net 开发,使用 MSSQL 数据库,要求至少 2GB 内存;Vaultwarden 使用 Rust 编写,改用 SQLite 数据库(现在也支持 MySQL 和 PostgreSQL),运行时只需要 10M 内存,可以说对硬件基本没有要求。
2. 安装docker
参考本博客ubuntu下docker部署
3. 部署Vaultwarden
3.1 使用docker-compose.yml管理docker
模板配置文件docker-compose.yml
version: '3'
services:
vaultwarden:
container_name: vaultwarden
image: vaultwarden/server:latest
restart: unless-stopped
volumes:
- /mnt/data/vaultwarden:/data/
ports:
- 8004:80
environment:
- DOMAIN=https://44587oq645.yicp.fun
- LOGIN_RATELIMIT_MAX_BURST=10
- LOGIN_RATELIMIT_SECONDS=60
- ADMIN_RATELIMIT_MAX_BURST=10
- ADMIN_RATELIMIT_SECONDS=60
- SENDS_ALLOWED=true
- EMERGENCY_ACCESS_ALLOWED=true
- WEB_VAULT_ENABLED=true
- SIGNUPS_ALLOWED=false
- SIGNUPS_VERIFY=true
- SIGNUPS_VERIFY_RESEND_TIME=3600
- SIGNUPS_VERIFY_RESEND_LIMIT=5
- SMTP_HOST=smtp.163.com
- SMTP_FROM=xx@163.com
- SMTP_FROM_NAME=Vaultwarden
- SMTP_SECURITY=force_tls
- SMTP_PORT=465
- SMTP_USERNAME=xxx@163.com
- SMTP_PASSWORD=xxx
3.2 配置项说明
3.2.1 系统类配置
-
服务域配置
DOMAIN=https://xxx.tx.x 自己服务所在的域实例
-
禁用新用户注册
SIGNUPS_ALLOWED=true/false
-
将注册限制为某些电子邮件域名
您可以通过设置 SIGNUPS_DOMAINS_WHITELIST 来限制只能某些域名的电子邮件地址可以注册。示例:
SIGNUPS_DOMAINS_WHITELIST=example.com (单个域名)
SIGNUPS_DOMAINS_WHITELIST=example.com,example.net,example.org (多个域名)
如果设置了 SIGNUPS_DOMAINS_WHITELIST,SIGNUPS_ALLOWED=false的值将被忽略。
您可能还想设置 SIGNUPS_VERIFY=true,这要求新注册的用户在成功登录前进行电子邮件验证。这可以防止有人用一个拥有正确域名的假电子邮件地址注册。
-
禁用邀请
environment: - INVITATIONS_ALLOWED=false
-
启用管理页面
environment: - ADMIN_TOKEN=xxx
-
禁用管理
environment: -DISABLE_ADMIN_TOKEN=true
-
启用WebSocket通知
environment: - WEBSOCKET_ENABLED=true
-
邮件配置
environment: - SMTP_HOST=smtp.163.com - SMTP_FROM=xx@163.com - SMTP_FROM_NAME=Vaultwarden - SMTP_SECURITY=force_tls - SMTP_PORT=465 - SMTP_USERNAME=xxx@163.com - SMTP_PASSWORD=xxx