Vaultwarden:一款在线密码管理器

-
-
2023-12-06

前言

Vaultwarden,也就是原来的Bitwarden_RS,为了方便与 Bitwarden区分,于2021年8月更名为Vaultwarden。

相较于Bitwarden,Vaultwarden是开源免费的,可以自主的管理自己的密码不必担心第三方。

Vaultwarden兼容Bitwarden的Chrome和edge扩展及手机端软件,十分方便。

搭建教程

本文主要基于Debain + Docker + Docker-compose 进行快速部署,如有不同之处请自行调整。

1、创建docker-compose.yml容器编排文件

# 创建挂载目录 & 进入挂载主目录 & 创建 docker-compose.yml
mkdir /home/docker/vaultwarden && cd /home/docker/vaultwarden && nano docker-compose.yml

2、复制下方内容到docker-compose.yml中(新版compose已经移除了version

services:
  vaultwarden:
    image: vaultwarden/server:latest
    container_name: vaultwarden
    restart: always
    ports:
        - "8081:80" # 前端网页端口
        - "3012:3012"
    volumes:
      - ./data:/data
    environment:
      DATA_FOLDER: 'data'  # 主数据文件夹,默认data
      RSA_KEY_FILENAME: 'data/rsa_key'  # RSA公钥私钥文件夹,默认配置
      ICON_CACHE_FOLDER: 'data/icon_cache'  # URL网站图标文件夹,默认配置
      ATTACHMENTS_FOLDER: 'data/attachments'  # 附件上传存放文件夹,默认配置
      SENDS_FOLDER: 'data/sends'  # 发送文件文件夹,默认配置
      TMP_FOLDER: 'data/tmp'  # 临时文件文件夹,默认配置
      DATABASE_URL: 'data/db.sqlite3'  # 默认SQLite,如使用Mysql,格式填写:mysql://user:password@host[:port]/database_name
      DATABASE_MAX_CONNS: '10'  # 数据库最大连接数,默认
      IP_HEADER: 'X-Real-IP'  # 客户端IP头,默认为X-Real-IP,设置为none,禁用任何头,只使用远程IP
      ICON_CACHE_TTL: '2592000'  # 缓存成功获取的图标的生存时间,单位为秒
      ICON_CACHE_NEGTTL: '259200'  # 缓存不可用图标的生存时间,以秒为单位(0表示“永远”)
      WEB_VAULT_FOLDER: 'web-vault/'  # 配置是Web文件路径
      WEB_VAULT_ENABLED: 'true'  # 配置是否开启Web端访问
      WEBSOCKET_ENABLED: 'false'  # 启用websocket通知
      WEBSOCKET_ADDRESS: '0.0.0.0'  # 控制WebSocket服务器地址
      WEBSOCKET_PORT: '3012'  # 控制WebSocket服务器端口
      SENDS_ALLOWED: 'true'  # 控制用户是否允许创建Bitwarden发送,可以在组织策略中禁用
      EMERGENCY_ACCESS_ALLOWED: 'true'  # 控制用户是否可以启用对其帐户的紧急访问
      SIGNUPS_ALLOWED: 'false'  # 配置是否允许新用户注册
      SIGNUPS_VERIFY: 'true'  # 新用户注册是否需要邮件验证
      SIGNUPS_VERIFY_RESEND_TIME: '3600' # 新用户注册邮件验证再次推送间隔(秒)
      SIGNUPS_VERIFY_RESEND_LIMIT: '3'  # 电子邮件验证推送次数
      ORG_CREATION_USERS: 'example@qq.com'  # 允许创建组织的用户邮箱,默认all都可以创建,none表示禁止创建,指定用户邮箱多个用逗号隔开
      INVITATIONS_ALLOWED: 'true'  # 组织管理员邀请用户,即使注册是禁用的
      INVITATION_ORG_NAME: 'Vaultwarden'  # 邀请邮件中显示的姓名并非来自特定组织
      INVITATION_EXPIRATION_HOURS: '120'  # 电子邮件验证令牌和删除请求令牌将过期,必须至少为1
      ORG_ATTACHMENT_LIMIT: '2097152'  # 每个组织的附件存储限制,以KB为单位
      USER_ATTACHMENT_LIMIT: '2097152'  # 每个用户附件存储限制,以KB为单位
      TRASH_AUTO_DELETE_DAYS: '90'  # 自动删除垃圾前等待的天数,不设置默认不删除
      PASSWORD_HINTS_ALLOWED: 'true'  # 控制用户是否可以设置密码提示
      SHOW_PASSWORD_HINT: 'false'  # 控制密码提示是否应该直接显示在网页上,没有配置SMTP服务
      DOMAIN: 'https://example.com'  # 域名配置,建议配置此值,否则某些功能可能无法工作
      ADMIN_SESSION_LIFETIME: '20'  # 将admin会话的生存期设置为此值,以分钟为单位
      REQUIRE_DEVICE_EMAIL: 'false'  # 在新设备登录时,需要发送电子邮件,如果发送失败,登录将失败
      SMTP_HOST: 'smtp-mail.outlook.com'  # SMTP服务器地址
      SMTP_FROM: 'example@outlook.com'  # 您创建的发件人
      SMTP_FROM_NAME: 'Vaultwarden Service'  # 发件人称呼
      SMTP_SECURITY: 'starttls'  # 默认值为starttls(显式端口587或25),force_tls(隐式端口465)或off,不加密(端口25)
      SMTP_PORT: '587'
      SMTP_USERNAME: 'example@outlook.com'
      SMTP_PASSWORD: 'password'
      SMTP_TIMEOUT: '15'
      SMTP_AUTH_MECHANISM: 'Login'  # SSL的默认值是“Plain”和“Login”,非SSL连接没有

3、运行命令完成搭建

docker-compose up -d 

目录