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)
设置自建的服务器地址
登陆账号后同步数据