宝塔面板Docker自建Bitwarden密码管理

Bitwarden是一个跨平台的密码管理软件,类似于 1Password、EnPass、LastPass 等。Bitwarden 是免费开源的,可以将服务端部署在自己的服务器上,比如群晖,并且支持 Docker 部署。但官方的镜像要求至少 2G 以上内存,要求比较高。有人用 Rust 实现了 Bitwarden 服务器,项目叫 bitwarden_rs,并且提供了 Docker 镜像,这个实现更进一步降低了对机器配置的要求,并且 Docker 镜像体积很小,部署非常方便。

部署过程

1. 宝塔安装 docker 管理器

如果宝塔已安装 docker 管理器,该步骤可省略。如果未安装,在宝塔面板首页左侧点击软件商店,搜索 docker,安装即可,安装完后把 首页显示 的开关打开,方便后续管理。

2. 获取镜像

打开 docker 管理器,点击镜像管理 —> 获取镜像,输入 Bitwarden_rs 的官方镜像 bitwardenrs/server 后点击获取镜像。

3. 创建容器

  1. 点击容器列表 —> 创建容器按钮。
  2. 填写端口映射中的容器端口:80(必须是 80), 服务端口:6666(6666 可以自定义)。
  3. 如果使用 WebSockets,实现自动同步,那么再增加一组端口映射:容器端口服务端口都填 3012。否则可以不添这组映射。配合第 10 步其他设置一起食用。
  4. 填写目录映射中的服务器目录:/www/wwwroot/xxx(此处目录可自定义,但这里使用网站目录,xxx 为将来打算建立的网站域名,使用网站目录也会给后面建网页入口带来些许方便), 容器目录:/data(必须是 /data)。
  5. 填写内存配额,根据自己服务器情况填写,建议至少填 512MB,能填 1G 以上就填 1G 以上。
  6. 点击提交按钮创建容器
  7. 点击容器名称修改为 bitwardenrs(自己起个名字)方便记忆。

重要的事情说三遍

端口映射和目录映射填写完成后一定要点击 + 号进行添加!!!
端口映射和目录映射填写完成后一定要点击 + 号进行添加!!!
端口映射和目录映射填写完成后一定要点击 + 号进行添加!!!

4. 创建站点

  1. 宝塔创建一个网站,网站域名填写之前服务器目录设置中的 xxx,FTP、数据库均不创建,PHP 版本选择纯静态。
  2. 网站设置 SSL,添加证书,强制开启 HTTPS。bitwarden 要求必须使用 HTTPS,这一步不可少。
  3. 添加反向代理,名称随意填,目标 URL 为 http://127.0.0.1:6666,此处端口号 6666 和上面创建容器时服务器端口保持一致。

5. 开始使用

搭建完成后在宝塔安全设置中放行之前设置的服务器端口 6666 和 3012。之后访问网站即可打开 web 页面进行账号注册进行使用了。此处主密码应该设置一个有足够强度且在别处没有使用过自己能记住的密码,以后只要这个密码不失手,那么其他密码就是安全的,以后我们只需要记住这唯一的一个密码。

6. 关闭注册

一般我们自主部署只是为了自己使用或者与家人、朋友等小范围内使用,并不向外提供公众服务,因此当需要使用的人都注册完毕以后我们应该关闭注册功能。

1.在 docker 管理器中点击刚才创建的容器的状态绿色图标,停止容器运行,然后删除容器(删除容器后不会删除数据)。

2.在 VPS 中运行下面的命令重新运行容器,其中 bitwardenrs 为我们给容器起的名字,SIGNUPS_ALLOWED=false 代表禁止注册,/www/wwwroot/xxx 为上面创建容器时所写的服务器目录,/data 为容器目录,6666:80 代表上面创建容器时的服务器端口:容器端口

docker run -d --name bitwardenrs \
  --restart unless-stopped \
  -e SIGNUPS_ALLOWED=false \
  -e WEBSOCKET_ENABLED=true \
  -v /www/wwwroot/xxx/:/data/ \
  -p 6666:80 \
  -p 3012:3012 \
  bitwardenrs/server:latest

运行完在容器列表里就又可以重新看到了,然后再去试下创建账号就会出现一个不能创建账号的错误提示。

后面如果想重启启用注册功能,只需把上面代码中的 false 改为 true 把第 6 步再来一遍即可。

7. 浏览器插件及客户端下载

去 Bitwarden 下载:Bitwarden

8. 客户端及插件连接自建服务展开目录

打开客户端或者插件,先不要登录,点击左上角的齿轮按钮,在服务器URL一栏中填写自建服务的域名,然后再登录。

9. 其他设置(试行)

bitwarden 默认是不会自动同步的,不管你是添加或者删除又或是修改了一条记录,都只是先保存在本地,只有当你手动点一下同步时才会进行同步。此时我们可以打开 WebSockets notifications 功能,这样手机修改后会立刻自动同步到云端,但手机端是接不到其他平台的即时修改信息的,官方就是这样弄的,没办法解决。具体设置为添加反代:
宝塔打开 /www/server/panel/vhost/nginx/proxy/xxx/*.conf 这个文件,添加如下信息(3012 是默认的 WebSocket server 端口可以通过变量 WEBSOCKET_PORT 修改,具体参见 wiki。我们可以在终端使用 docker ps 查看容器端口使用情况):

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

10. 其他配置

如果只是一般用,到这里就差不多了,但如果要使用组织管理、开启管理员等功能请参见项目 wiki:Bitwarden_rs/wiki

 

© 版权声明
THE END
喜欢就支持以下吧
点赞0
分享
评论 抢沙发
  • 昵称

  • 取消

    请填写用户信息: