抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)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 源。

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

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

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

    1
    $ docker info
  5. docker是否启动

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

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

    1
    $ docker ps

BitWarden_rs 安装配置

安装

1
$ docker pull bitwardenrs/server:latest

启动

1
2
3
4
5
6
7
8
9
10
11
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

关闭

1
$ docker stop bitwarden

升级

1
2
3
4
5
6
7
8
9
# 重新拉取镜像
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 配置文件

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
36
37
38
39
40
41
42
43
44
45
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

1
$ 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

    1
    $ 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
  • 加速地址:

    1
    $ 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”,则需要创建目录:

1
$ sudo mkdir /usr/local/bin

添加可执行权限

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

验证是否安装成功

1
$ docker-compose --version

创建软链接

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

创建配置文件

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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 停止并删除容器

更新容器

1
docker-compose pull && docker-compose up -d && docker-compose logs -f

其它配置

添加 robots.txt

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

1
2
User-agent: *
Disallow: /

发送邮件通知

1
2
3
4
5
6
-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> \

评论