[技术向] 用 Docker 自建 Bitwarden_rs

2021-03-20 18:25:49 +08:00
 Nyarime

准备工作

我们需要一个服务器,这里使用腾讯云轻量服务器提供的 Docker 镜像环境会更快哦

链接地址: https://curl.qcloud.com/dfMFnwqL 准备好服务器,登录服务器即可。下面是教程部分:

教程部分

Bitwarden 是一个免费、自由且开源的的密码管理器,服务端也完全开源,可以自己搭建。 本文中欧式将自建 bitwarden 的过程记录下来。

前言

​ <del>那个男孩不想拥有自己的密码管理器呢</del>,之前欧式都是 Google 密码和 iCloud keychain 一起用的,混合使用不仅难于跨平台同步(非 chrome/apple 设备的密码更是无法填充),而且数据也无法自己掌控。上了大学之后,欧式了解到了全平台开源密码管理器 bitwarden 。经过了将近半年的折腾,终于做得好用点了,现在记录一下。

准备的东西

一个服务器,有 200MB RAM

一个域名,这里就用了自己在使用的***(以 bitwarden.example.com 为例)***

<del>还有亿点点耐心和学习搭建密码管理器的兴趣</del>

下载 docker 镜像

这里我使用的是 Bitwarden_RS,虽然它是第三方用 Rust 重写的,但是需要的资源更少,而且默认开启高级会员的功能<del>谁不想白嫖呢</del>。

docker pull bitwardenrs/server:latest

打开你的域名 dns 管理界面,添加 bitwarden 的 dns 记录。

配置反代

情况 1:bitwarden 单独放在一个服务器上

​ 直接跳到初始化配置,然后设置改为-p 80:80 -p3012:3012

情况 2:bitwarden 与多个对外服务共存

​ 配置 Nginx 反代,根据具体情况修改

​ 在 /etc/nginx/conf.d 目录下新建 bitwarden.conf,添加如下:

server {
  listen 80;
  listen [::]:80
  listen 443
  listen [::]:443;

  server_name bitwarden.example.com;

  location / {
      proxy_pass http://localhost:xxxx/;
  }
}

保存并退出,重启 nginx:

systemctl restart nginx

或者直接重启 nginx 的镜像(如果用 nginx 的 docker 的话)

配置 bitwarden_RS

初始化运行

在命令行根据实际情况(需求)执行

docker run -d --name=bitwarden_rs -e WEBSOCKET_ENABLED=true -e LOG_FILE/data/bitwarden.log -p xxxx:80 -p XXXX:3012 -v /data-directory-you-want/:/data/ --restart=always  bitwardenrs/server:latest

注:

  1. --name=你想要在 docker 里面显示的名字 (此为可选但是欧式感觉比较方便后续管理)

  2. 80 和 3012 的设置端口不能冲突<del>此乃废话</del>

  3. --restart=always 自动重启

  4. -v /data-directory-you-want/:/data/ 注意这是从根目录开始的<del>废废欧式就是没主意到导致现在整个文件夹都在根目录还找了 1 个星期都没有找到</del> 注意权限

登录网页并设置初始账户

直接打开 bitwarden.example.com ,就出现如下图所示界面(根据浏览器语言会有相应语言)

直接按着引导走就是了。

高级设定

开启管理界面

​ 添加环境变量-e ADMIN_TOKEN=XXXX ( XXXX 为管理界面密码)

​ 打开 bitwarden.example.com/admin,用你设置好的 token 登入

​ 登入后在 general settings 那里把 domain url 改成你的域名 https://bitwarden.example.com(注意要加 https://)

​ allow new signups 就是新用户注册许可啦(

添加 SMTP 服务

配置 SMTP 服务可以开启 bitwarden 的邮件传送功能,能开启二步验证(2FA),能发送邀请,<del>还能给自己邮箱发送 password hint(管理密码提示)防止自己脑残忘掉 master password</del>

这里欧式用的是 yandex 的 self-host email,配置教程可以看newslearner 的教程(有些内容有可能过时)或者yandex 自己的教程(EN)

  1. 创建新的成员账户,即需要用的收发信账户。
  2. 登入并完成注册。
  3. 打开yandex mail登入,打开设置
  4. 选 other,然后左边选 email client,开启第三方客户端访问权限
  5. 到 security 那里,生成 app password 并复制。
  6. 回到管理界面,在 smtp Email settings 那里如图填(或者叫 Starttls on,port 587),password 就填入刚才生成的 app password 。
  7. 保存,并到下方的 send test email 测试
  8. 收到测试邮件如下即成功!

​ 9.enjoy~

##Links: Bitwarden 官网:https://bitwarden.com/ Bitwarden_RS Github 页面(有任何问题记住要往这边反映):https://github.com/dani-garcia/bitwarden_rs Bitwarden_Rs Docker 页面: https://hub.docker.com/r/bitwardenrs/server

4472 次点击
所在节点    开源软件
11 条回复
neteroster
2021-03-20 18:56:12 +08:00
反代用 caddy 会方便许多,还可以一键 https 。
ODD10
2021-03-20 21:46:00 +08:00
@neteroster #1
之前想试下,结果 arm 行不通,换 nginx proxy manager 了
ferock
2021-03-20 21:47:32 +08:00
虽然搭建 docker 版的很容易,但是教程之类的还是欢迎的。
pendulum
2021-03-20 21:53:08 +08:00
感觉没必要,成本没官方便宜
Jat001
2021-03-20 22:20:15 +08:00
把自建的密码管理库暴露在公网……
luguhu
2021-03-20 22:48:23 +08:00
有没有试过用 lambda 部署?
Biggoldfish
2021-03-21 00:29:13 +08:00
不认为需要靠着教程自己部署的会比官方的安全
Jat001
2021-03-21 00:35:18 +08:00
@Biggoldfish #7 bitwarden_rs 不是官方的,第三方写的服务端,兼容官方的客户端而已,也不是社区驱动,把这种项目放公网上我可不敢
m4d3bug
2021-03-21 08:41:32 +08:00
肯定得放内网
faninx
2021-03-21 12:04:20 +08:00
mark 了。lastpass 买不起
qiyaooozz
2021-05-06 15:53:25 +08:00
腾讯云开源应用中心可以一键体验和正式开通 Bitwarden_rs,不需要自己部署,可以去体验下 https://app.cloud.tencent.com

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/763494

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX