Vaultwarden自建密码管理器

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
喜欢就支持一下吧
点赞5 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容