又少了一个折腾 VPS、NAS 的理由...但是多了一个使用 Cloudflare 的理由。
Bitwarden 是少数客户端与服务器端都开源的密码管理系统,支持完整自托管部署。但有人更进一步:直接把服务器端运行在 Cloudflare Workers 上——也就是说,你连 VPS 都可以省了。

部署 NodeWarden 之后的效果,就是在无服务器的情况下,也能在手机、电脑上使用 Bitwarden 客户端来保存密码了,支持自动登陆、二次验证之类的功能。这无疑是 Serverless 架构在个人应用场景中的一个有趣实践。
目录
- NodeWarden 与 Bitwarden 区别
- 必要条件
- 具体部署步骤
- 在客户端登录
- 关于密码安全
NodeWarden 与 Bitwarden 区别
| 能力项 |
Bitwarden |
NodeWarden |
说明 |
| 单用户保管库(登录/笔记/卡片/身份) |
✅ |
✅ |
基于Cloudflare D1 |
| 文件夹 / 收藏 |
✅ |
✅ |
常用管理能力可用 |
全量同步 /api/sync |
✅ |
✅ |
已做兼容与性能优化 |
| 附件上传/下载 |
✅ |
✅ |
基于 Cloudflare R2 |
| 导入功能 |
✅ |
✅ |
覆盖常见导入路径 |
| 网站图标代理 |
✅ |
✅ |
通过 /icons/{hostname}/icon.png |
| passkey、TOTP |
❌ |
✅ |
官方需要会员,NodeWarden 不需要 |
| 多用户 |
✅ |
❌ |
NodeWarden 定位单用户 |
| 组织/集合/成员权限 |
✅ |
❌ |
没必要实现 |
| 登录 2FA(TOTP/WebAuthn/Duo/Email) |
✅ |
⚠️ 部分支持 |
仅支持 TOTP(通过 TOTP_SECRET) |
| SSO / SCIM / 企业目录 |
✅ |
❌ |
没必要实现 |
| Send |
✅ |
❌ |
基本没人用 |
| 紧急访问 |
✅ |
❌ |
没必要实现 |
| 管理后台 / 计费订阅 |
✅ |
❌ |
纯免费 |
| 推送通知完整链路 |
✅ |
❌ |
没必要实现 |
必要条件
- 你需要有一个 Cloudflare 账号(必须有一个域名和信用卡)。
- 一个 GitHub 账号。
具体部署步骤
fork
首先,你需要 fork 这个项目到自己的 GitHub 仓库。

一键部署
在你 fork 后的 GitHub 仓库页面上,会看到一个“Deploy to Cloudflare”的按钮。

这个步骤需要在 Cloudflare 中授权绑定你的 GitHub 账号,根据页面提示操作即可。整个过程属于典型的 DevOps 自动化部署流程。
设置 NodeWarden
部署成功之后,Cloudflare 会提供一个临时地址,类似 1nodewarden.apipnn.workers.dev。用浏览器打开它,如果无法访问,可以绑定一个你自己的二级域名。

根据页面提示,一步一步进行即可。这个步骤主要有:
- 设置 JWT_SECRET
- 设置自动更新 GitHub(可选)
- 设置主账号与密码
- 设置启用主账号的二次验证(TOTP)

最后一步成功之后,还能选择彻底隐藏这个设置页面,增强安全性。

至此,自托管 的密码管理服务端就设置完成了。请注意:设置完成之后,如果忘了用户名密码,只能全部删除重新部署一次。
在客户端登录
打开你的 Bitwarden 官方客户端,在登录的地方选择“自托管”,并输入上一步获得的服务器 URL。


之后,使用在设置页面创建的用户名和密码登录(如果设置了二次验证,还会要求输入 TOTP 验证码),就可以正常使用了。

关于密码安全
Bitwarden 的安全设计核心是:密码在本地加密,服务器只存储加密后的密文,主密码和用于解密的数据密钥本身不会上传到服务器(服务器只保存验证值)。
所以,理论上服务器无法解密你的数据。而将服务端部署在 Cloudflare Workers 上,其安全前提与自建 VPS 相同——只要项目最初的代码没有恶意,就没有问题。这也是开源的重要性所在,如果有恶意代码,会很快被社区发现。对于追求数据自主控制权的开发者而言,这无疑是一个值得尝试的 后端 架构方案。你可以在 云栈社区 找到更多关于无服务器架构和自托管应用的讨论与实践。
原文:https://www.appinn.com/nodewarden/
|