Docker中部署bitwarden服务器
参考:(保存学习备用)
https://kwokronny.top/202109/bitwarden-private-deploy/中文文档:https://rs.ppgg.in/
Bitwarden 是基佬又发现并推荐的另一个多平台密码管理工具,官方提供免费的存储服务,最赞的还是支持免费的私有化部署!
由于官方网站国内访问不畅😭,日常就不方便与家人共用,所以就只好将其私有化部署至自己的NAS上啦😉。
私有环境
- 家中自建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地址即可。
浏览器插件登陆
三、无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