作者:_i逗比_985 | 来源:互联网 | 2024-12-12 22:06
随着毕业设计的顺利结束,我终于挤出了一些时间来更新我的博客。今天,我想分享的是如何在我的服务器上搭建 Bitwarden,这是一个非常受欢迎的开源密码管理器。虽然 Bitwarden 官方提供了免费版本,功能已经足够日常使用,但出于对数据安全的更高要求,我还是决定自行搭建服务器。
Bitwarden 官方提供了详细的部署指南,包括 Docker 镜像等,但这些方案往往占用较多系统资源。因此,我选择了更为轻量级的第三方实现——vaultwarden(前称为 bitwarden_rs)。
使用 Docker Compose 进行部署非常简便,这里分享一下我的 Compose 文件配置:
version: "3"
services:
vaultwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
restart: always
environment:
- LOG_FILE=/data/bitwarden.log
- WEBSOCKET_ENABLED=true
- TZ=Asia/Shanghai
- LC_ALL=zh_CN.UTF-8
volumes:
- /var/bitwarden/data/:/data/
ports:
- 8880:80
- 3012:3012
为了提高安全性,我还通过 Nginx 设置了反向代理,并启用了 SSL 加密。以下是 Nginx 的配置示例:
upstream vaultwarden-default { server 127.0.0.1:8880; }
upstream vaultwarden-ws { server 127.0.0.1:3012; }
server {
listen 80;
listen [::]:80;
server_name bitwarden.example.com;
error_log /var/log/nginx/error.log;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name bitwarden.example.com;
error_log /var/log/nginx/error.log;
ssl_certificate /path/to/your/certificate.crt;
ssl_certificate_key /path/to/your/private.key;
location / {
proxy_pass http://vaultwarden-default;
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://vaultwarden-ws;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
location /notifications/hub/negotiate {
proxy_pass http://vaultwarden-default;
}
location /admin {
auth_basic "Administrator’s Area";
auth_basic_user_file /etc/nginx/.htpasswd;
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_pass http://vaultwarden-default;
}
}
在搭建过程中,我也遇到了一些小挑战。例如,在初次尝试创建账户时遇到了注册失败的问题。经过一番排查,我发现使用更复杂的密码可以解决这个问题。