Bitwarden_rs服务器搭建
2020-09-11
前言
Bitwarden是一款开源密码管理工具,我之前也一直在用它。但使用官方的服务器不仅网速有点慢,而且数据在别人那里,万一它跑路了,就啥都登不进了。既然自己有个服务器,那就自己搭一个bitwarden的服务端吧。 自行搭建官方的Bitwarden服务端需要去官网申请,可不知道什么原因总是504,可能是官方把接口关闭了吧。因此这里使用非官方的服务端Bitwarden_rs
(Github地址),用的是Rust
,不过用Docker
封装了,安装使用还是挺方便的。官方给的教程用的是Caddy
服务器,因为我不怎么熟,所以就自己研究了一下nginx
的配置。
搭建过程
创建文件夹
mkdir bitwarden && cd bitwarden
创建文件
docker-compose.yml
内容如下:version: '3' services: bitwarden: image: vaultwarden/server:latest restart: always volumes: - ./bw-data:/data ports: - 3011:80 - 3012:3012 environment: WEBSOCKET_ENABLED: 'true' # Required to use websockets SIGNUPS_ALLOWED: 'true' WEB_VAULT_ENABLED: "true" #是否开启Web客户端
这里映射了两个端口,容器的80和3012端口要用到,因此映射出来,一会要用到。
修改
nginx
配置内容如下:
#bitwarden server { listen 443 ssl; server_name [你的域名]; ssl_certificate [你的证书]; ssl_certificate_key [你的证书私钥]; ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; ssl_prefer_server_ciphers on; location / { proxy_pass http://127.0.0.1:3011; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; 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; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Port $server_port; } location /notifications/hub { proxy_pass http://127.0.0.1:3012; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; 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; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Port $server_port; } location /notifications/hub/negotiate { proxy_pass http://127.0.0.1:3011; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; 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; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Port $server_port; } location /admin { proxy_pass http://127.0.0.1:3011; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; 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; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Port $server_port; } }
注意把上面的端口号改成刚才设置的。没有证书的可以免费去申请。
进入
docker-compose.yml
所在的目录,执行docker-compose up
就会开始下载bitwarden_rs
服务器并启动了。也可以用docker-compose up -d
后台启动。要停止只要docker-compose stop
就行了。启动
nginx
。一切顺利的话,用浏览器打开https://[你的IP]
就可以看到bitwarden
的网页端了。由于它的网页版是SPA,所以加载可能有点慢,稍微等一下吧。再把原来的密码库导入就可以正常使用啦。
下面是一些推荐的做法,爱折腾的可以做一下
- 如果是自己使用,可以关闭注册账号的功能。将
docker-compose.yml
里的SIGNUPS_ALLOWED: "true"
改成SIGNUPS_ALLOWED: "false"
保存即可。 - 可以写个脚本定期备份,保证数据安全
- 配置
fail2ban
,把尝试密码的ip自动禁掉。可以参考官网给的示例。