抱歉,您的浏览器无法访问本站

本页面需要浏览器支持(启用)JavaScript


了解详情 >

背景

之前使用的 lastpass 密码管理软件,可以跨平台,刚开始可以免费使用,后来变为收费,再加上希望自建平台,可以将数据放在自己的服务器上,于是看到了 Bitwarden,它开源免费,支持私有部署,跨平台支持 Windows、Mac、Linux、iOS、Android 平台,同时也提供了Chrome、Edge、Firefox、Safari 等浏览器扩展,可以导入 lastpass 数据,完全符合个人使用需求,但是这个项目是基于 .Net 开发,使用 MSSQL 数据库,部署起来对服务器要求比较高,于是有人使用 rust 语言实现了 Bitwarden 的 API,这就是 vaultwarden,之前叫 “BitWarden_rs”,下面开始介绍 vaultwarden 的安装使用。

准备工作

  • 服务器

  • 域名

  • 域名 HTTPS 证书

    ⚠ 如果是国内服务器,域名需要备案

系统环境

操作系统:CentOS 7.8

安装 Docker

官方推荐使用 Docker 部署,那么第一步就是要安装 Docker。

  1. 依次执行以下命令,添加 yum 源。

    $ yum update
    $ yum install epel-release -y
    $ yum clean all
    $ yum list
  2. 执行以下命令,安装 Docker。

    $ yum install docker-io -y
  3. 执行以下命令,运行 Docker。

    $ systemctl start docker
  4. 执行以下命令,检查安装结果。

    $ docker info
  5. docker是否启动

    $ systemctl status docker
  6. 加入开机启动

    $ systemctl enable docker
  7. 查看容器运行状态

    $ docker ps

BitWarden_rs 安装配置

安装

$ docker pull bitwardenrs/server:latest

启动

docker run -d \
    --name bitwarden \
    -p 8880:80 \
    -p 3012:3012 \        
    --restart=always \  #自动重启
    -e SIGNUPS_ALLOWED=true \        #允许注册
    -e WEB_VAULT_ENABLED=true \        #Web客户端
    -e DOMAIN=https://bw.zerow.cn \
    -e LOG_FILE=/data/bitwarden.log \
    -v /data/bitwarden/data:/data \
    bitwardenrs/server:latest

关闭

$ docker stop bitwarden

升级

# 重新拉取镜像
docker pull bitwardenrs/server:latest

# 停止、删除原容器
docker stop bitwarden
docker rm bitwarden

# 启动新容器
执行上面的【启动】,执行 docker run 命令。

Nginx 配置

SSL 证书

腾讯云、FreeSSL 都可以申请免费的 SSL证书,申请成功后将 SSL 证书放置在 /www/server/nginx/cert/bw.zerow.cn

nginx.conf 配置文件

server
{
    listen 80;
      listen 443 ssl http2;
    server_name bw.zerow.cn;
    index index.php index.html index.htm

    ssl_certificate    /www/server/nginx/cert/bw.zerow.cn/fullchain.pem;
    ssl_certificate_key    /www/server/nginx/cert/bw.zerow.cn/privkey.pem;
    ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
    ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;
    add_header Strict-Transport-Security "max-age=31536000";
    error_page 497  https://$host$request_uri;

    if ($scheme = http) {
                return 301 https://$server_name$request_uri;
        }

     location / {
     proxy_pass http://127.0.0.1:8880;
     proxy_set_header Host $host;
     proxy_set_header X-Real-IP $remote_addr;
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
     proxy_set_header X-Forwarded-Proto $scheme;
   }

   location /notifications/hub {
     proxy_pass http://127.0.0.1:3012;
     proxy_set_header Upgrade $http_upgrade;
     proxy_set_header Connection "upgrade";
   } 

   location /notifications/hub/negotiate {
     proxy_pass http://127.0.0.1:8880;
   }
   location = /robots.txt {
    root /www/wwwroot/bw.zerow.cn/;
    }

    access_log  /www/wwwlogs/bw.zerow.cn.log;
    error_log  /www/wwwlogs/bw.zerow.cn.error.log;
}

重启 Nginx

$ nginx -s reload

客户端使用

网页端

浏览器输入配置的域名 https://bw.zerow.cn 即可打开 Bitwarden 网页密码库,注册一个私人账号后就可以正常使用。

浏览器插件

在扩展程序中搜索“Bitwarden”,即可找到“Bitwarden - 免费密码管理器”,安装完成后点击插件左上角的⚙【设置】,在【服务器URL】中输入:“https://bw.zerow.cn”,点击右上角的【保存】按钮,然后使用在网页端注册的账号密码登录。

  • 其它客户端都是同样操作。
  • 当前网页 URL 匹配到密码时,使用快捷键 Ctrl+Shift+L 可以自动填充表单

安装 Docker Compose

Docker Compose 是用于定义和运行多容器 Docker 应用程序的工具,通过使用 YML 文件来配置应用程序需要的所有服务,使用 Docker Compose 可以更方便管理容器,如果不使用此工具,只使用 docker 命令当然也是可以的。

下载:Docker compose

  • GitHub

    $ sudo curl -L https://github.com/docker/compose/releases/download/v2.4.0/docker-compose-linux-x86_64 -`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
  • 加速地址:

    $ sudo curl -L https://github.91chi.fun//https://github.com//docker/compose/releases/download/v2.4.0/docker-compose-linux-x86_64 -`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

如果提示:“Failed to create the file /usr/local/bin/docker-compose: No such file
Warning: or directory”,则需要创建目录:

$ sudo mkdir /usr/local/bin

添加可执行权限

$ sudo chmod +x /usr/local/bin/docker-compose

验证是否安装成功

$ docker-compose --version

创建软链接

$ ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

创建配置文件

定位到 Dockers compose 目录,比如我的是 /usr/local/bin/,新建一个 docker-compose.yml 文件:

version: "3"

services:
  bitwarden:
    image: bitwardenrs/server
    container_name: bitwardenrs
    restart: always                #在容器非正常退出时,重启
    ports:
        - "127.0.0.1:8880:80"     #将8880端口映射到镜像80端口
        - "127.0.0.1:3012:3012"    #WebSocket端口
    volumes:
      - ./bw-data:/data
    environment:
      WEBSOCKET_ENABLED: "true" #开启WebSocket通知
      SIGNUPS_ALLOWED: "false"     #开启注册,自己注册后改成fale
      WEB_VAULT_ENABLED: "true" #web客户端

启动容器

执行 docker-compose up -d 拉取镜像并启动容器

♥ 常用命令

  • docker-compose pull 更新镜像
  • docker-compose stop 停止容器
  • docker-compose restart 重启容器
  • docker-compose down 停止并删除容器

其它配置

添加 robots.txt

网站根目录(/www/wwwroot/bw.zerow.cn/)新建 robots.txt 文件:

User-agent: *
Disallow: /

发送邮件通知

-e SMTP_HOST=<smtp.domain.tld> \
  -e SMTP_FROM=<bitwarden@domain.tld> \
  -e SMTP_PORT=587 \
  -e SMTP_SSL=true \
  -e SMTP_USERNAME=<username> \
  -e SMTP_PASSWORD=<password> \

评论