bitWarden_rs是bitWarden独立出来的开源的密码库,相比lastpass等巨头来说,功能实用性更具一筹,重点是免费撸,前提是你得有机器,vps即可!

我这里采用的是Debian 9 搭建的,环境为:

  • docker
  • docker-compose
  • bitWarden_rs
  • nginx【作为反代使用的,可以安装lnmp环境或者宝塔】
  • ssl证书一本

下面是详细搭建的记录:

第一步:安装docker,使用的是一键脚本

1
2
3
4
5
6
#新机器开始之前安装wget跟简单的源更新一波^.^
apt-get install wget #安装wget,一般Debian是会默认安装的
apt update #更新升级源

#开始安装docker
wget -qO- https://get.docker.com/ | bash

第二步:安装docker-compose

1
2
3
#拉取到本地并且命名文件/usr/local/bin/docker-compose ,同时添加x执行权限
curl -L "https://github.com/docker/compose/releases/download/1.26.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

开启docker

1
2
systemctl start docker      #启动docker
systemctl enable docker #允许开机启动docker

第三部:部署部署bitwarden_rs

  • 创建bitwarden镜像运行目录,我这里是创建在root用户下的目录:/root/bitwarden

    1
    cd ~ && mkdir bitwarden && cd bitwarden
  • 创建docker-compose配置文件,这里在运行终端一行一行的黏贴就行了

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    cat > ~/bitwarden/docker-compose.yml<<EOF
    version: "3"

    services:
    bitwarden:
    image: bitwardenrs/server
    container_name: bitwardenrs
    restart: always
    ports:
    - "127.0.0.1:8087:80" #将宿主机8087端口映射到docker的80端口
    - "127.0.0.1:3012:3012"
    volumes:
    - ./bw-data:/data
    environment:
    WEBSOCKET_ENABLED: "true" #是否开启WebSocket
    SIGNUPS_ALLOWED: "true" #是否开启注册,自用的话自己搭建好注册后改成false
    WEB_VAULT_ENABLED: "true" #是否开启Web客户端
    #ADMIN_TOKEN: "" #后台登陆密码,建议openssl rand -base64 48 生成ADMIN_TOKEN确保安全,当前是没启用,如需启用去掉ADMIN_TOKEN前面的 # ,并生成安全密码
    EOF
  • 启动bitwardeb

    1
    2
    cd ~/bitwarden 
    docker-compose up -d

    运行后会自动拉去镜像和设置bitwarden_rs,根据网络等因素拉取镜像会比较耗时,等一会儿,如果没有错误就会看到提示信息:Starting bitwardenrs … done 就表示已经运行起来。

    1
    2
    3
    #其他常用的命令
    docker-compose down #关闭服务
    docker-compose restart #重启服务

第四步:配置反代,以宝塔示例

  • 直接创建一下新的站点
  • 打开站点配置的反向代理-随便创建一个反向代理
  • 将以下配置修改到创建之后的反向代理配置规则
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    location / {
    proxy_pass http://127.0.0.1:8087;
    proxy_http_version 1.1;
    proxy_cache_bypass $http_upgrade;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    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;
    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-Port $server_port;
    }

    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:8087;
    }

    location /admin {
    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;
    proxy_pass http://127.0.0.1:8087;
    }
    # 加入robots.txt 防止搜索引擎爬虫抓取
    location = /robots.txt {
    root /home/wwwroot/Bitwarden;
    }
    然后在浏览器输入: https://域名

一些常规的处理优化、配置项:

1.个人自己使用在你注册账户之后关闭注册项目

  • 1.修改 ~/bitwarden/docker-compose.yml 文件,将SIGNUPS_ALLOWED: “true” 改成 SIGNUPS_ALLOWED: “false” 保存
  • 2.然后 docker-compose up -d 再启动服务。
    操作:
    1
    2
    3
    cd ~/bitwarden  && docker-compose down #进入docker镜像目录
    vi docker-compose.yml #修改关闭注册
    docker-compose up -d #再启动服务。

2.bitwarden升级

因为是开源版本,社区的更新也比较频繁,建议隔一段时间可以升级一次

1
2
3
4
cd ~/bitwarden      #进入镜像文件夹位置
docker-compose down #关闭镜像
docker pull bitwardenrs/server:latest #拉取最新镜像
docker-compose up -d #启动docker镜像

3.备份升级

我们安装时候已经将文件数据库写到宿主机上了,具体是这里实现的:

1
volumes 中指定将容器内的 /data 目录挂载到宿主机的当前目录下的 ./data 目录,这样你可以在宿主机上执行数据库的备份操作;

所以备份就显得很简单了,bitwarden_rs的数据都在 ~/bitwarden/bw-data/ 目录下,db.sqlite3 为密码的数据库文件,该文件为加密的。
如果已经安装了sqlite3,可以直接使用命令:

1
sqlite3 ~/bitwarden/bw-data/db.sqlite3 ".backup '/path/to/backup/bitwarden-backup.sqlite3'"

将数据备份导出,也有必要配合crontab定时备份并保存到其他安全的地方存储。