[技术向] 用 Docker 自建 Bitwarden_rs - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
Nyarime

[技术向] 用 Docker 自建 Bitwarden_rs

  •  
  •   Nyarime Mar 20, 2021 5429 views
    This topic created in 1866 days ago, the information mentioned may be changed or developed.

    准备工作

    我们需要一个服务器,这里使用腾讯云轻量服务器提供的 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 -p30123012

    情况 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 replies    2021-05-06 15:53:25 +08:00
    neteroster
        1
    neteroster  
       Mar 20, 2021 via Android
    反代用 caddy 会方便许多,还可以一键 https 。
    uTOmOuk3L6sb4MSI
        2
    uTOmOuk3L6sb4MSI  
       Mar 20, 2021 via iPhone
    @neteroster #1
    之前想试下,结果 arm 行不通,换 nginx proxy manager 了
    ferock
        3
    ferock  
    PRO
       Mar 20, 2021 via iPhone
    虽然搭建docker 版的很容易,但是教程之类的还是欢迎的。
    pendulum
        4
    pendulum  
       Mar 20, 2021
    感觉没必要,成本没官方便宜
    Jat001
        5
    Jat001  
       Mar 20, 2021
    把自建的密码管理库暴露在公网……
    awah
        6
    awah  
       Mar 20, 2021 via iPhone
    有没有试过用 lambda 部署?
    Biggoldfish
        7
    Biggoldfish  
       Mar 21, 2021 via Android
    不认为需要靠着教程自己部署的会比官方的安全
    Jat001
        8
    Jat001  
       Mar 21, 2021
    @Biggoldfish #7 bitwarden_rs 不是官方的,第三方写的服务端,兼容官方的客户端而已,也不是社区驱动,把这种项目放公网上我可不敢
    m4d3bug
        9
    m4d3bug  
       Mar 21, 2021 via Android
    肯定得放内网
    faninx
        10
    faninx  
       Mar 21, 2021 via iPhone
    mark 了。lastpass 买不起
    qiyaooozz
        11
    qiyaooozz  
       May 6, 2021
    腾讯云开源应用中心可以一键体验和正式开通 Bitwarden_rs,不需要自己部署,可以去体验下 https://app.cloud.tencent.com
    About     Help     Advertise     Blog     API     FAQ     Solana     5103 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 77ms UTC 05:58 PVG 13:58 LAX 22:58 JFK 01:58
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86