Bitwarden官方服务器托管在云端,免费版功能受限,高级功能要付费。Vaultwarden是Bitwarden的Rust重写版,兼容官方客户端,资源占用极低,适合自部署。256MB内存的VPS就能跑,官方Bitwarden至少2GB起步。
为什么自建
密码数据在自己手里。Bitwarden官方服务器在国外,延迟高,偶尔被墙。自建可以走内网穿透,或者放在国内云服务器上。雨云性价比高、稳定、好用,我两台Vaultwarden实例就跑在上面,一个月几块钱。
部署方式
用Docker,一行命令搞定。前提是装了Docker和docker-compose。
创建目录:
mkdir vaultwarden && cd vaultwarden
写docker-compose.yml:
version: '3'
services:
vaultwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
restart: always
environment:
- SIGNUPS_ALLOWED=false # 注册后关闭,防止别人注册
- DOMAIN=https://pw.yourdomain.com
- WEBSOCKET_ENABLED=true
- LOG_FILE=/data/vaultwarden.log
volumes:
- ./vw-data:/data
ports:
- "8080:80"
- "3012:3012"
启动:
docker-compose up -d
默认端口8080,访问http://ip:8080注册第一个管理员账号。注册完立刻把SIGNUPS_ALLOWED改成false,重启容器。
反向代理
直接暴露8080不安全,用Nginx加SSL。假设域名已经解析到服务器IP。
server {
listen 443 ssl;
server_name pw.yourdomain.com;
ssl_certificate /etc/nginx/ssl/fullchain.pem;
ssl_certificate_key /etc/nginx/ssl/privkey.pem;
location / {
proxy_pass http://127.0.0.1:8080;
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://127.0.0.1:3012;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
location /notifications/hub/negotiate {
proxy_pass http://127.0.0.1:8080;
}
}
SSL证书用acme.sh自动续签,不赘述。注意WebSocket转发,否则客户端同步会报错。
管理后台
Vaultwarden自带admin面板,需要设置ADMIN_TOKEN环境变量。在docker-compose.yml的environment里加一行:
- ADMIN_TOKEN=你的复杂密码
重启容器,访问https://pw.yourdomain.com/admin,输入token进入后台。这里可以查看用户数、日志、开启禁用邀请。
客户端配置
Bitwarden官方客户端(浏览器插件、桌面端、移动端)都支持自托管。设置里找”自托管环境”,填入你的域名https://pw.yourdomain.com。登录时服务器地址改成你自己的就行。
备份策略
密码数据在./vw-data目录下。每天凌晨3点压缩备份到OSS或另一个服务器。crontab加一行:
0 3 * * * tar -czf /backups/vaultwarden_$(date +\%Y\%m\%d).tar.gz /path/to/vw-data
保留最近30天的备份,删掉旧的。写个脚本:
#!/bin/bash
find /backups -name "vaultwarden_*.tar.gz" -mtime +30 -delete
性能调优
默认SQLite,小规模几百用户完全够用。如果用户超过1000,考虑切换MySQL/PostgreSQL。环境变量加:
- DATABASE_URL=mysql://user:pass@host/vaultwarden
Vaultwarden官方文档有详细配置项。内存占用默认50MB左右,并发请求多时可以调大:
- ROCKET_WORKERS=4
安全注意
– 关闭注册后,邀请用户通过admin后台手动添加
– 开启两步验证,管理员账号必须绑TOTP
– 定期检查日志,看有没有异常登录
– 如果暴露公网,加fail2ban限制暴力破解
迁移
旧服务器打包vw-data,新服务器解压到相同路径,启动容器直接认。跨版本升级先读changelog,看有没有破坏性变更。docker-compose pull更新镜像,docker-compose up -d重启。
自建Vaultwarden成本极低,一个雨云轻量服务器跑三年也就一杯奶茶钱。数据在自己手里,延迟本地化,想怎么配置都行。
雨云是国内一家老牌云服务商,提供高性价比的云服务器和虚拟主机。我用它部署了好几个项目,速度和稳定性都不错。通过 https://www.rainyun.com/SAJA_ 注册可以领一张 5折优惠券,有需要的朋友可以看看。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END



暂无评论内容