简述
什么是Bitwarden
Bitwarden是一款自由且开源的密码管理服务,用户可在加密的保管库中存储敏感信息(例如网站登录凭据)。Bitwarden平台提供有多种客户端应用程序,包括网页用户界面、桌面应用,浏览器扩展、移动应用以及命令行界面。
通俗点讲就是和lasspast、1password一样的一款密码管理工具。
部署
环境部署
Docker安装:https://docs.docker.com/engine/install/centos/ Docker compose安装:https://docs.docker.com/compose/install/
Bitwarden部署
因为官方的Bitwarden服务器使用MSSQL数据库,我部署的时候mssql容器报错:This program requires a machine with at least 2000 megabytes of memory
,意思就是服务器内存不能低于2GB。无奈敝人服务器Total Memory才1GB。google之后,发现有大神用 Rust 实现了 Bitwarden 服务器,项目叫 Bitwarden_rs,并且提供了 Docker 镜像,对服务器配置的要求很低,并且 Docker 镜像体积很小,个人用很合适。
Bitwarden_rs项目地址:https://github.com/dani-garcia/bitwarden_rs
我这里用nginx反代Bitwarden后端,为了方便操作,我直接做成一个docker-compose.yml。
代码语言:javascript复制version: "3"
services:
nginx:
image: openresty:v1
ports:
- "80:80"
- "443:443"
restart: always
volumes:
- /data/nginx/nginx.conf:/usr/local/openresty/nginx/conf/nginx.conf
- /data/nginx/conf.d/:/etc/nginx/conf.d/
- /data/ssl/:/usr/local/openresty/nginx/ssl/
depends_on:
- bitwarden
bitwarden:
image: bitwardenrs/server
container_name: bitwardenrs
restart: always
ports:
- "8000:80" #将8000端口映射到镜像80端口
- "3012:3012"
volumes:
- /data/bw-data:/data
environment:
WEBSOCKET_ENABLED: "true" #开启WebSocket
SIGNUPS_ALLOWED: "true" #开启注册,自己注册后改成fale
WEB_VAULT_ENABLED: "true" #web客户端
反代
代码语言:javascript复制.....
location / {
proxy_pass http://bitwarden:80;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
location /notifications/hub {
proxy_pass http://bitwarden:3012;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
location /notifications/hub/negotiate {
proxy_pass http://bitwarden:80;
}
.....
参考资料:韩艺博的博客