bitwarden (vaultwarden) docker搭建
背景
免费用户LastPass目前只能在一个设备上登陆,所以迁移到bitwarden。bitwarden是开源的跨平台密码管理软件。自己搭建后可以有全部功能
更新:2023年1月12日
1 使用caddy2
2 优化ssl data目录
3 bitwarden已经改名成vaultwarden,使用新版本
具体流传步骤
前置条件:
- 安装docker
- bitwarden只支持Https,所以VPS需要有域名、开放80 、443端口。3012是websocket的,不知道有没用
- Lastpass导出的密码:我选择的CSV格式
bitwardenr:
密码管理程序
- 下载镜像
docker pull vaultwarden/server
- 创建密码保存
sudo mkdir /srv/bitwarden
sudo chmod go-rwx /srv/bitwarden
- 启动bitwarden
sudo docker run -d --name bitwarden -v /srv/bitwarden:/data -e WEBSOCKET_ENABLED=true -p 127.:80 -p 3012:3012 --restart on-failure vaultwarden/server
-d 在后台运行
-v 卷/srv/bitwarden 映射 docker镜像的/data,保证数据不丢失
-e WEBSOCKET_ENABLED 开启websocket 需要使用websocket
-p 端口映射 8080 是主程序的端口,3012是ws的端口
–restart on-failure 在容器非正常退出时,重启
caddy:
支持https
- 下载镜像
sudo docker pull caddy
- 创建配置文件 :/etc/Caddyfile
dengyongqi.xyz {
encode gzip
# The negotiation endpoint is also proxied to Rocket
reverse_proxy /notifications/hub/negotiate 0.0.0.0:8080
# Notifications redirected to the websockets server
reverse_proxy /notifications/hub 0.0.0.0:3012
# Send all other traffic to the regular bitwarden_rs endpoint
reverse_proxy 0.0.0.0:8080
}
reverse_proxy /notifications/hub/negotiate 0.0.0.0:8080
– /notifications/hub/negotiate 映射到8080
reverse_proxy /notifications/hub 0.0.0.0:3012
– /notifications/hub 映射到3012
reverse_proxy 0.0.0.0:8080
– 所有请求都映射到8080
- 存caddy配置
sudo mkdir /work/caddy
sudo chmod go-rwx /work/caddy
存储一些caddy需要的文件类似Let’s Encrypt certificates.证书等,建议不要放root等用户目录下,否者docker无权限修改
- 启动caddy
sudo docker run -d --name caddy --net=host -v /work/caddy/Caddyfile:/etc/caddy/Caddyfile -v /work/caddy/data:/data -v /work/caddy/index.html:/usr/share/caddy/index.html --restart on-failure caddy:2
-d 后台运行
– name 名字
-v 挂载,可实现双向修改
/etc/caddy/Caddyfile 配置文件
/data ssl证书
/usr/share/caddy/index.html 主页
–net=host 。host模式,类似原生应用端口监听。
docker有好几种网络模式,默认情况下,容器之间只能通过ip就行网络互通,0.0.0.0就不好用了
- host :容器的网络栈和宿主机公用
- bridge:默认的
- overlay
- Macvlan
记住:如果没有映射证书data目录,docker run
初始化时会重新申请证书,多次申请会被限制。!
第二次用docker start
启动先调试,把证书拷贝出来!
docker start caddy
docker stop caddy
- 查看caddy log
sudo docker logs caddy
访问域名进行账号申请并导入Lastpass密码
关闭注册服务
sudo docker stop bitwarden
sudo docker rm bitwarden
sudo docker run -d --name bitwarden -v /srv/bitwarden:/data -e WEBSOCKET_ENABLED=true -e SIGNUPS_ALLOWED=false -p 8080:80 -p 3012:3012 --restart on-failure vaultwarden/server:latest
-e SIGNUPS_ALLOWED=false
这是私人的服务,导入成功后,手机和chrome插件调试没问题,禁止他人注册
参考:
https://www.linode.com/docs/guides/how-to-self-host-the-bitwarden-rs-password-manager/#before-you-begin
这文档里面有不少错误:caddyfile写的是错误的、caddy 也没用net模式启动。