Docker中部署bitwarden服务器

Docker中部署bitwarden服务器

参考:(保存学习备用)
https://kwokronny.top/202109/bitwarden-private-deploy/

中文文档:https://rs.ppgg.in/

img

Bitwarden 是基佬又发现并推荐的另一个多平台密码管理工具,官方提供免费的存储服务,最赞的还是支持免费的私有化部署!
由于官方网站国内访问不畅😭,日常就不方便与家人共用,所以就只好将其私有化部署至自己的NAS上啦😉。

img

私有环境

  • 家中自建NAS,申请公网IP
  • Ubuntu-Server 20.04LT
  • Docker
  • 自有域名

由于密码库的相对私密性,所以端口自然不会使用常规端口,且暂时仅有些服务需要https的支持,需要nginx的反向代理完成,我这边就随机了个端口使用,常规端口就留给日后内网架设服务给家人使用吧。

部署 bitwarden

docker volume create bitwarden_data // 创建 bitwarden_data 卷

docker run --name bitwarden \
-v bitwarden_data:/data \
-p 39434:80
--restart always 
vaultwarden/server

浏览器访问 宿主IP:39434 即可看到 Bitwarden 的服务,但不能登陆,因为要SSL证书部署后,用https方式才能登陆,但可用PC(win、Linux、Android)客户端登陆,并且用浏览器插件登陆使用。

后续需要部署Nginx(我已在宿主机上部署),再生成证书(我的家中宽带80端口被封,要部署SSL证书很费劲,所以没部署)(注:后续利用freesslcn进行了SSL部署,部署后可在浏览器登陆管理,特别好用),只能用客户端登陆。

后续可用“docker-compose”方式,一键开启,方便管理,附Yaml:

version: '3'

services:
  bitwarden:
    image: vaultwarden/server:latest
    container_name: vaultbitwarden
    restart: always
    volumes:
      - /root/docker_data/bitwarden:/data 
    env_file:
      - config.env
    ports:
      - "85:80" 

其中:要建立config.env文件:

SIGNUPS_ALLOWED=true
DOMAIN=https://bitwarden.eee.cc
DATABASE_URL=/data/db.sqlite3
ROCKET_WORKERS=2
WEB_VAULT_ENABLED=true

这里有个坑:之前做docker-compose 一键部署的时候,配置文件内内有 #注释,所以在部署后启动了不,排查了很多信息都排查不到原因,甚至重新安装新版的docker还是不行,最后查看日志才明白,日志中是json错误,看样子配置文件是以json格式传入容器的,所以有汉字注释就启动不了,最后去除注释后才行。

二、登陆

客户端登陆

利用客户端登陆:以Linux为例,在服务器URL处填入自己的URL地址即可。
img

浏览器插件登陆

img

三、无ssl情况导入密码

使用家用的nas搭建bitwarden,只想在内网使用,没有配置ssl,发现浏览器不能登录和注册,而win客户端、Android客户端及浏览器插件,均无法导入密码。

经过查询官网,发现只能通过网页登陆后进行导入,而无ssl又不能登录,经过进一步摸索,发现使用命令行客户端可以导入。
官方导入说明

CLI Download and Install

The CLI can be used cross-platform on Windows, macOS, and Linux distributions. To download and install the Bitwarden CLI:

Native ExecutableNPMChocolateySnap

Natively packaged versions of the CLI are available for each platform and have no dependencies. Download using one of these links:

./bw config server http://ddd.com:5568	#设置本地服务器
Saved setting `config`.		#服务器设置成功

./bw login	#登陆
? Email address: xccccccc8@126.com
? Master password: [hidden]
You are logged in!	#登陆成功

./bw import --formats	#查看支持导入的格式
? Master password: [hidden]
Supported input formats:
1password1pif
1password1pux
1passwordmaccsv
1passwordwincsv
ascendocsv
avastcsv
avastjson
aviracsv
bitwardencsv
bitwardenjson
......

./bw  import bitwardenjson /path/bitwarden_export_20220517115458.json 	#导入json格式,可从bitwarden导出
Imported /path/bitwarden_export_20220617115458.json	#导入成功

附:老版本bitwardenrs的 docker-compose.yaml:

version: '3'

services:
  # 服务名称
  bitwarden:
    # 指定使用 Docker Hub 中的最新镜像
    image: bitwardenrs/server:latest
    # 容器名称
    container_name: bitwarden
    # 开机自动启动
    restart: always
    # 指定容器内的 /data 目录挂载到宿主机的当前目录下的 /www/wwwroot/bitwarden 目录,这样你可以在宿主机上执行数据库的备份操作
    volumes:
      - /www/wwwroot/bitwarden/:/data
    # bitwarden配置
    environment:
      # 开启网页访问
      WEB_VAULT_ENABLED: 'true'
      # 开启新用户注册,我们注册后关闭即可
      SIGNUPS_ALLOWED: 'true'
      # 开启/关闭长连接
      WEBSOCKET_ENABLED: 'true'
      # 日志文件
      LOG_FILE: /data/bitwarden.log
      # 数据库
      DATABASE_URL: /data/db.sqlite3
      #自行决定是否配置smtp邮件服务
      SMTP_HOST: 'smtp.163.com'
      SMTP_FROM: 'test@163.com'
      SMTP_PORT: '465'
      SMTP_SSL: 'true'
      SMTP_USERNAME: 'test@163.com'
      SMTP_PASSWORD: 'password'
      SMTP_EXPLICIT_TLS: 'true'

    # 将容器内的80/3012端口映射到宿主机的7006/7007端口;其中80端口为 HTTP 服务,3012 端口是 websockets 服务,如不需要可不映射
    ports:
      - 127.0.0.1:81:80
      #- 7007:3012

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 vault@coolxy.cn

×

喜欢就点赞,疼爱就打赏

github