简体中文 | 繁體中文 | English |
用一块树莓派跑准Bitwarden:Vaultwarden 深度对比与指南

用一块树莓派跑准Bitwarden:Vaultwarden 深度对比与指南

xiaopao
2026-06-29 / 0 评论 / 1 阅读 / 正在检测是否收录... ===> PDD优惠福利券,千万好物,不要错过 <===

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、2FADocker 镜像 + 每月检查更新
KeePassXC + Syncthing极低(本地程序)手动导入导出,移动端需额外 App无内建组织功能同步冲突排查
Passbolt≈200 MiB + 多容器Web UI 主导,移动端体验差PGP 共享,适合安全审计需要 SSL + 邮件服务器
官方 Bitwarden self‑host4 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,或者在装的过程中遇到奇怪的报错,欢迎在评论区聊聊你的经验或吐槽,让大家一起把这套方案打磨得更完美!

项目地址:https://github.com/dani-garcia/vaultwarden

0

评论 (0)

取消