0°

Bitwarden 服务端搭建记录

 

Bitwarden 服务端搭建记录 (https://10101.io/2019/11/24/self-hosted-bitwarden)

Bitwarden 除了使用官方提供的密码管理服务之外,也可以在自己的服务器搭建服务端,自己管理自己的密码

用到的项目是 bitwarden_rs (https://github.com/dani-garcia/bitwarden_rs),需要 Docker 环境运行,安装好之后就可以在客户端使用了

=============================================

准备工作

  • VPS (本文 VPS 系统为 Debian9)
  • 一个域名且解析到了 VPS 的 IP 地址

安装 Docker

  • # 1. 执行官方的安装脚本
  • wget -qO- get.docker.com | bash
  • # 2. 检查安装结果
  • docker version
  • # 3. 启动 Docker
  • systemctl start docker
  • # 4. 查看 Docker 启动状态(绿色 active)
  • systemctl status docker
  • # 5. 允许 Docker 自启动
  • systemctl enable docker

安装 Bitwarden

快速开始

不进行自定义,不需要域名,快速搭建一个 Bitwarden 后端

  • # 1. 拉取 bitwarden_rs 镜像
  • docker pull bitwardenrs/server:latest
  • # 2. 运行容器
  • docker run -d –name bitwarden -v /bw-data/:/data/ -p 80:80 bitwardenrs/server:latest

自定义参数运行

自定义一些参数,加入 HTTPS 支持等。

  • # 1. 拉取 bitwarden_rs 镜像
  • docker pull bitwardenrs/server:latest
  • # 2. 生成一个 admin 用户管理页面的 token
  • openssl rand -base64 48
  • # 3. 生成 ssl 证书,以启用 https,推荐使用 acme.sh 免费申请及自动续签
  • # > 3.1 下载并执行 acme.sh 脚本
  • wget https://get.acme.sh | sh
  • # > 3.2 生成证书,这只是一种方式,其他方式可以自行搜索
  • acme.sh –issue -d yourdomain.com –standalone
  • # > 3.3 将生成的证书拷贝安装到指定文件夹
  • acme.sh –installcert -d yourdomain.com
  • –key-file /path/to/yourdomain.com.key
  • –fullchain-file /path/to/fullchain.cer
  • # 4. 运行 bitwarden_rs 容器
  • docker run -d –name bitwarden
  • -e SIGNUPS_ALLOWED=false
  • -e INVITATIONS_ALLOWED=false
  • -e ADMIN_TOKEN=step2_generated_token
  • -e ROCKET_TLS=‘{certs=”/path/to/docker/ssl/fullchain.cer”,key=”/path/to/docker/ssl/yourdomain.com.key”}’
  • -e DOMAIN=https://yourdomain.com
  • -e LOG_FILE=/path/to/log
  • -e LOG_LEVEL=warn -e EXTENDED_LOGGING=true
  • -e DATA_FOLDER=/path/to/data/folder
  • -p 443:80
  • -v /path/to/host/ssl/:/path/to/docker/ssl/
  • -v /path/to/host/data/folder:/path/to/docker/data/folder
  • bitwardenrs/server:latest

参数解释

  • SIGNUP_ALLOWED:是否允许注册
  • INVITATIONS_ALLOWED: 是否允许组织邀请注册
  • ADMIN_TOKEN:用户管理界面 (/admin),可用于删除用户及邀请用户注册
  • ROCKET_TLS:ssl 证书信息,同时需要配置 -v /path/to/host/ssl/:/path/to/docker/ssl/ 卷,前者为宿主机 ssl 证书的位置,后者为容器证书位置
  • DOMAIN:域名
  • LOG_FILELOG_LEVELEXTENDED_LOGGING:日志保存文件路径以及日志等级定义
  • DATA_FOLDER:docker 容器数据保存文件夹(默认为 /data),除了定义这个文件夹之外,还可以定义附件、图标缓存、数据库等参数
    • DATABASE_URL:数据库路径
    • ATTACHMENT_FOLDER:附件路径
    • ICON_CACHE_FOLDER:图标缓存路径

以上是我自己觉得需要的一些配置,更多参数可参考官方 Wiki。

示例

  • docker run -d –name bitwarden -e SIGNUPS_ALLOWED=false -e INVITATIONS_ALLOWED=false -e ADMIN_TOKEN=bTVsf7Hj99HPxECRPOL9U70bP0Iy5lXmbbJVP2tvwDszB8CClv+MD3TT6mSJTa4L -e ROCKET_TLS=‘{certs=”/ssl/bw.withdewhua.space/fullchain.cer”,key=”/ssl/bw.withdewhua.space/bw.withdewhua.space.key”}’ -e DOMAIN=https://bw.withdewhua.space -e LOG_FILE=/data/bitwarden.warn.log -e LOG_LEVEL=warn -e EXTENDED_LOGGING=true -p 443:80 -v /bw-data/:/data/ -v /usr/local/nginx/conf/ssl/:/ssl/ bitwardenrs/server:latest

示例站点https://bw.withdewhua.space:8443/#/ (仅用于展示,可注册体验,随时可能删除)

容器操作命令

  • # $name 为 docker run 中定义的 name
  • # 启动容器
  • docker start $name
  • # 停止容器
  • docker stop $name
  • # 删除容器
  • docker rm $name
  • # 查看运行容器
  • docker ps -as

升级 Bitwarden 镜像

  • # 1. 重新拉取镜像
  • docker pull bitwardenrs/server:latest
  • # 2. 停止、删除原容器
  • docker stop bitwarden
  • docker rm bitwarden
  • # 3. 重新运行 docker run 命令
  • # 4. 查看镜像文件
  • docker image ls
  • # 5. 删除原镜像文件, $ID 在 step4 中可以看到
  • docker image rm $ID

客户端使用方法

使用方法就讲下 Chrome 插件的吧,其他的用法都是类似的。

  1. 打开插件,点击右上角设置按钮
    bitwarden-chrome-extension
  2. 填入 bitwarden 的域名
    server-url
  3. 保存后正常登录即可。

=============================================

? 大佬的良心结语:

– 这个 docker 镜像对于服务器的要求不高,个人使用的话,1 CPU 512 RAM 应该就可以跑了,又可以充分利用自己的服务器了
– 能用得上的大部分功能都有了,除了最基本的密码保存、上传附件等,官方需要付费使用的 TOTP 、密码检测等功能也都是可以直接使用的
– 数据在自己手里,可能会感觉会更安全点吧

 

 

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论