V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Nyarime
V2EX  ›  开源软件

[技术向] 用 Docker 自建 Bitwarden_rs

  •  
  •   Nyarime · 2021-03-20 18:25:49 +08:00 · 4449 次点击
    这是一个创建于 1125 天前的主题,其中的信息可能已经有所发展或是发生改变。

    准备工作

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

    buy.png

    链接地址: 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 ,就出现如下图所示界面(根据浏览器语言会有相应语言)

    Bitwarden-Login-Page-1615477941215.png 直接按着引导走就是了。

    高级设定

    开启管理界面

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

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

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

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

    Bitwarden-General-Settings.png

    添加 SMTP 服务

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

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

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

    Test-Email-Success.png

    ​ 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

    11 条回复    2021-05-06 15:53:25 +08:00
    neteroster
        1
    neteroster  
       2021-03-20 18:56:12 +08:00 via Android
    反代用 caddy 会方便许多,还可以一键 https 。
    ODD10
        2
    ODD10  
       2021-03-20 21:46:00 +08:00 via iPhone
    @neteroster #1
    之前想试下,结果 arm 行不通,换 nginx proxy manager 了
    ferock
        3
    ferock  
       2021-03-20 21:47:32 +08:00 via iPhone
    虽然搭建 docker 版的很容易,但是教程之类的还是欢迎的。
    pendulum
        4
    pendulum  
       2021-03-20 21:53:08 +08:00
    感觉没必要,成本没官方便宜
    Jat001
        5
    Jat001  
       2021-03-20 22:20:15 +08:00
    把自建的密码管理库暴露在公网……
    luguhu
        6
    luguhu  
       2021-03-20 22:48:23 +08:00 via iPhone
    有没有试过用 lambda 部署?
    Biggoldfish
        7
    Biggoldfish  
       2021-03-21 00:29:13 +08:00 via Android
    不认为需要靠着教程自己部署的会比官方的安全
    Jat001
        8
    Jat001  
       2021-03-21 00:35:18 +08:00
    @Biggoldfish #7 bitwarden_rs 不是官方的,第三方写的服务端,兼容官方的客户端而已,也不是社区驱动,把这种项目放公网上我可不敢
    m4d3bug
        9
    m4d3bug  
       2021-03-21 08:41:32 +08:00 via Android
    肯定得放内网
    faninx
        10
    faninx  
       2021-03-21 12:04:20 +08:00 via iPhone
    mark 了。lastpass 买不起
    qiyaooozz
        11
    qiyaooozz  
       2021-05-06 15:53:25 +08:00
    腾讯云开源应用中心可以一键体验和正式开通 Bitwarden_rs,不需要自己部署,可以去体验下 https://app.cloud.tencent.com
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5194 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 08:09 · PVG 16:09 · LAX 01:09 · JFK 04:09
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.