bitwarden:使用VPS(宝塔)自己搭建安全好用的密码管理器

Bitwarden 就是一个类似浏览器中帮你记住账号密码的东东,它可以以插件的形式安装在firefox、chrome、edege等浏览器上,或者以app的形式安装在Iphone和android上。用这个来记密码是非常方便好用的。

不过原生的Bitwarden 有两个问题:

  • 使用 .Net 开发,占用空间过大
  • 使用 mysql数据库,占用资源多

但高手在民间,有大佬使用 Rust 实现了 Bitwarden 服务器:bitwarden_rs

其实官方已经提供了一个非常简单的docker命令用于安装,但我们还是最好通过docker compose来安装。因为通过docker compose来安装可以自定义一些参数,特别是安装完毕后关闭面板入口。

安装过程

使用docker compose

如果你的VPS只安装了docker没有安装docker compose的话,需要执行以下命名安装:

sudo curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose

新建docker-compose.yml

利用宝塔在根目录root上新建一个一个目录bitwarden 或者使用以下命令:

cd ~ && mkdir bitwarden && cd bitwarden

然后在bitwarden里面新建一个文件docker-compose.yml,这个文件用于安装bitwarden镜像

version: '3'

services:
  bitwarden:
    image: bitwardenrs/server:latest
    container_name: bitwarden
    restart: always
    volumes:
      - ./data:/data
    env_file:
      - config.env
    ports:
      - "8081:80"

参数说明:

  • image: bitwarden的 最新镜像;
  • volumes:用于挂载到宿主机的当前目录下的 data 目录,删除docker镜像不会导致数据丢失;
  • env_file:指定自定义配置文件
  • ports:指定将容器内的 80 端口映射到了宿主机的 8081 端口;

新建配置文件config.env

DOMAIN=https://bw.example.com
DATABASE_URL=/data/bitwarden.db
ROCKET_WORKERS=10
WEB_VAULT_ENABLED=true
SIGNUPS_ALLOWED=true

参数说明:

  • DOMAIN 填入你准备分配给 Bitwarden 服务使用的域名,可以是https://bw.example.com;
  • DATABASE_URL 设置数据库在容器内的路径,你可以不设置,默认位于 /data/db.sqlite3;
  • ROCKET_WORKERS 设置服务器使用几个线程;
  • WEB_VAULT_ENABLED 设置是否开启 Web 面板(首次登陆需要注册一个master账号,所以也暂且先打开,后续需要禁止防止外人注册账号就需要关闭这个面板,跟宝塔面板一个原理);
  • SIGNUPS_ALLOWED 控制是否开放用户注册,因为你必须先注册才能存储数据,所以暂且先打开;

安装

其实安装命令非常简单:

docker-compose up -d

然后你在地址栏输入http://xxx.xxx.xxx.xxx:8081 就可以登陆

用nginx反向代理捆绑域名

用宝塔建立一个网站,然后填写反向代理, 弄好后的配置类似下面这个

server
{
    listen 80;
    server_name bw.example.com;
    location / {
    proxy_pass http://127.0.0.1:8081;
    proxy_set_header Host $http_host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

用户注册和数据导入

主界面

注册账号

导入数据(可以从chrome、firefox上下载,格式为csv、json)

关闭用户注册、关闭 web vault

修改配置文件config.env, 关闭了用户注册功能,并禁用了 web vault 的访问

DOMAIN=https://bw.example.com
DATABASE_URL=/data/bitwarden.db
ROCKET_WORKERS=10
WEB_VAULT_ENABLED=false
SIGNUPS_ALLOWED=false

重启

docker-compose down && docker-compose up -d

配置客户端(chrome插件、ios app)

设置自建的服务器地址

登陆账号后同步数据


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以邮件至 [email protected]