使用docker 搭建 开源的专属密码管理系bitwarden/Vaultwarden

2024年3月17日
Share

对于已经在应用的服务器,升级下软件包

apt update -y

安装部署docker,已经部署请跳过

curl -fsSL https://get.docker.com | sh && rm -f get-docker.sh  //安装docker,安装后删除
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose  //安装docker-compose
sudo chmod +x /usr/local/bin/docker-compose  //获取权限

创建存放宿主机上的数据卷文件夹,另外还有项目文件夹,这里我选择创建data文件夹和vaultwarden项目文件夹

mkdir -p /data/vaultwarden  //创建项目文件夹
cd /data/vaultwarden
mkdir data vdata letsencrypt  //创建数据卷文件夹

nano docker-compose.yml  //创建docker-compose.yml

配置docker-compose.yml 文件,这里反向代理我选择的是nginx proxy mana,复制黏贴注意缩进还有空格

version: '3.8'

services:
  vaultwarden:
    container_name: vaultwarden
    image: vaultwarden/server:latest
    restart: unless-stopped
    volumes:
      - ./vdata/:/data/
    ports:
      - 8008:80
    environment:
      - DOMAIN=https://subdomain.yourdomain.com # 这是您希望与您的Vaultwarden实例关联的域名。
      - LOGIN_RATELIMIT_MAX_BURST=10 # 允许在一阵登录/两步验证尝试中的最大请求次数。
      - LOGIN_RATELIMIT_SECONDS=60 # 这是来自同一IP的登录请求之间的平均秒数,在Vaultwarden限制登录次数之前。
      - ADMIN_RATELIMIT_MAX_BURST=10 # 这与LOGIN_RATELIMIT_MAX_BURST相同,只争对admin面板。
      - ADMIN_RATELIMIT_SECONDS=60 # 这与LOGIN_RATELIMIT_SECONDS相同
      - ADMIN_SESSION_LIFETIME=20 # 会话持续时间
      - ADMIN_TOKEN=YourReallyStrongAdminTokenHere # 此值是Vaultwarden管理员面板的令牌(一种密码)。为了安全起见,这应该是一个长的随机字符串。如果未设置此值,则管理员面板将被禁用。建议openssl rand -base64 48 生成ADMIN_TOKEN确保安全
      - SENDS_ALLOWED=true  # 此设置决定是否允许用户创建Bitwarden发送 - 一种凭证共享形式。
      - EMERGENCY_ACCESS_ALLOWED=true # 此设置控制用户是否可以启用紧急访问其账户的权限。例如,这样做可以在用户去世后,配偶可以访问密码库以获取账户凭证。可能的值:true / false。
      - WEB_VAULT_ENABLED=true # 此设置决定了网络保险库是否可访问。一旦您配置了您的账户和客户端,停止您的容器,然后将此值切换为false并重启Vaultwarden,可以用来防止未授权访问。可能的值:true/false。
      - SIGNUPS_ALLOWED=true # 此设置控制新用户是否可以在没有邀请的情况下注册账户。可能的值:true / false。
	  
  nginx-proxy-manager:
    image: 'jc21/nginx-proxy-manager:latest'
    container_name: npm
    restart: unless-stopped
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt
    ports:
      - '80:80'
      - '81:81'
      - '443:443'

保存好配置文件,开始运行创建容器

docker-compose up -d

用IP加端口访问试试,安装成功会出现下图,注意这里自己设置的端口一定要在服务器后台是放行的

接下来是配置放下代理,用的工具是nginx proxy manager,可视化操作

使用ip + 81 默认端口访问服务,出现下图表示部署成功

登入后配置添加一个代理

nginx proxy manager 提供 申请证书,还有自动续期的功能,不用担心证书过期

全部弄好之后就可以去用自己的域名访问了,开始折腾吧

卸载项目,只需要进入项目文件夹,执行

docker-compose down  //卸载docker容器,镜像,网络

rm -rf /root/data/docker_data/vaultwarden  # 完全删除项目文件夹

官方项目地址:https://github.com/dani-garcia/vaultwarden