Vaultwarden 能让你在一块树莓派上跑完整的 Bitwarden 客户端,同步、组织、双因素全都有,省去官方那几 GB 内存的大锅饭。
如果你正为自托管密码管理苦恼,或者想省下几百块服务器费,却又不想放弃官方客户端的体验,这篇文章就是为你准备的,一看就懂、一步就能装好。

官方镜像必须要 4 GB RAM、SQL Server、Nginx 多容器才算完整?
- 大多数人第一反应是直接复制官方文档,装一堆容器,结果机器卡到爆。
- 实际上,Bitwarden 核心只是一套 REST API,数据本身可以用 SQLite 存,甚至直接放在本地磁盘。
- Vaultwarden 用 Rust 重写,二进制只有 50 MB,运行时 30 MB 左右的内存。
Vaultwarden 的底层是如何做到轻量的?
1️⃣ 单二进制 + Diesel ORM:所有数据库操作统一走 Diesel,支持 SQLite、MySQL、PostgreSQL,内部用 r2d2 连接池限制并发,避免资源抢占。
2️⃣ Rocket 框架 + 请求守卫:每个路由在进入前都会检查 JWT、数据库连接、速率限制,安全又高效。
3️⃣ OpenDAL 抽象存储:附件和 Send 文件可以存本地,也可以直接挂 S3,代码里只调用同一套 API,换存储不改业务。
4️⃣ 配置懒加载:`CONFIG` 用全局 `LazyLock` 实现,只在第一次访问时解析 env 或 `config.json`,启动几乎是瞬间完成。
用它跑了三种场景,踩了哪些坑?
- 家庭 NAS(Synology):直接把 `vaultwarden/server:latest` 挂 `/volume1/docker/vw-data`,打开
WEBSOCKET_ENABLED=true,WebSocket 推送成功。但第一次部署时忘记给容器加 `--cap-add=NET_ADMIN`,导致通知端口被防火墙拦住,后补上就好。 - Raspberry Pi Zero W:使用 `latest-arm32v6` 镜像,最初 Docker 20.09 报错找不到对应架构,升级到 Docker 20.10 解决。内存仅 256 MB,开启
--memory=128m限制,实际运行 20 MB。 - 小型 VPS(DigitalOcean 1 GB):改用 PostgreSQL 远程实例,防止本地 SQLite 文件被 IO 限速。连接池从默认 10 降到 2,CPU 使用率保持在 5% 以下。
与其他方案的对比:为什么不选 KeePassXC、Passbolt 或官方 Bitwarden?
| 方案 | 资源占用 | 跨平台客户端 | 组织/共享功能 | 维护成本 |
|---|---|---|---|---|
| Vaultwarden | ≈30 MiB RAM + 50 MB 二进制 | 官方 Bitwarden 所有客户端全兼容 | 完整 Org、Collections、Groups、2FA | Docker 镜像 + 每月检查更新 |
| KeePassXC + Syncthing | 极低(本地程序) | 手动导入导出,移动端需额外 App | 无内建组织功能 | 同步冲突排查 |
| Passbolt | ≈200 MiB + 多容器 | Web UI 主导,移动端体验差 | PGP 共享,适合安全审计 | 需要 SSL + 邮件服务器 |
| 官方 Bitwarden self‑host | 4 GB+ RAM,SQL Server + Nginx | 全部官方客户端 | 完整企业版功能 | 运维成本最高 |
从上面可以看到,Vaultwarden 在资源、功能、客户端兼容性上是最均衡的选择,除非你必须符合 SOC2 等合规要求。
怎么做到不被“官方更新”砸坏?
- 每次官方 Bitwarden 客户端升级后,先在测试环境拉最新的
vaultwarden/server:latest,检查/api/ciphers接口返回是否正常。 - 开启 GitHub Security Advisory 自动通知,项目的每次 CVE 修复都会在 Release Note 里标明。
- 建议使用定时任务每日拉镜像,并在容器重启前做数据库快照。(我通常用
rsync -a /data /backup/$(date +%F))
进阶小技巧
想把附件直接存到阿里云 OSS?只要在 config.json 里加一段 storage = { type = "s3", endpoint = "oss-cn-hangzhou.aliyuncs.com", bucket = "my-vw-attach" },重启后自动生效。
如果需要自定义登录页颜色,直接编辑 /data/templates/login.hbs,Vaultwarden 会在下次请求时自动加载。
结语
总的来说,Vaultwarden 把官方 Bitwarden 那套重量级架构压缩成了一个可以在树莓派上跑的轻量级服务,几乎不需要额外的运维技能。只要按照本文的步骤装好 Docker 镜像、挂上数据卷、打开 HTTPS,整个家庭甚至小团队的密码管理就可以安全、随时同步了。
如果你已经在使用 Vaultwarden,或者在装的过程中遇到奇怪的报错,欢迎在评论区聊聊你的经验或吐槽,让大家一起把这套方案打磨得更完美!
评论 (0)