又少了一个折腾 VPS、NAS 的理由…
但是多了一个使用 Cloudflare 的理由
Bitwarden 是少数客户端与服务器端都开源的密码管理系统,支持完整自托管部署。@Appinn
但有人更进一步:直接把服务器端运行在 Cloudflare Workers 上——也就是说,你连 VPS 都可以省了。
部署 NodeWarden 之后的效果,就是在无服务器的情况下,也能在手机、电脑上使用 Bitwarden 客户端来保存密码了,支持自动登陆、二次验证之类的功能。
目录
- NodeWarden 与 Bitwarden 区别
- 必要条件
- 具体部署步骤
- Fork 仓库
- 一键部署
- 设置 NodeWarden
- 在客户端登录
- 关于密码安全
NodeWarden 与 Bitwarden 区别
| 能力项 | Bitwarden | NodeWarden | 说明 |
|——–|———–|————|——|
| 单用户保管库(登录/笔记/卡片/身份) | ✅ | ✅ | 基于 Cloudflare D1 |
| 文件夹 / 收藏 | ✅ | ✅ | 常用管理能力可用 |
| 全量同步 /api/sync | ✅ | ✅ | 已做兼容与性能优化 |
| 附件上传/下载 | ✅ | ✅ | 基于 Cloudflare R2 |
| 导入功能 | ✅ | ✅ | 覆盖常见导入路径 |
| 网站图标代理 | ✅ | ✅ | 通过 /icons/{hostname}/icon.png |
| Passkey、TOTP | ❌ | ✅ | 官方需要会员,我们的不需要 |
| 多用户 | ✅ | ❌ | NodeWarden 定位单用户 |
| 组织/集合/成员权限 | ✅ | ❌ | 没必要实现 |
| 登录 2FA(TOTP/WebAuthn/Duo/Email) | ✅ | ⚠️ 部分支持 | 仅支持 TOTP(通过 TOTP_SECRET) |
| SSO / SCIM / 企业目录 | ✅ | ❌ | 没必要实现 |
| Send | ✅ | ❌ | 基本没人用 |
| 紧急访问 | ✅ | ❌ | 没必要实现 |
| 管理后台 / 计费订阅 | ✅ | ❌ | 纯免费 |
| 推送通知完整链路 | ✅ | ❌ | 没必要实现 |
必要条件
- 你需要有一个 Cloudflare 账号(必须有一个域名和信用卡)
- 一个 GitHub 账号
具体部署步骤
Fork 仓库
首先,访问 GitHub 仓库并 Fork 到你的账号下:
- GitHub:https://github.com/shuaiplus/NodeWarden
一键部署
在你自己的 GitHub 页面上,找到 Deploy to Cloudflare 按钮并点击:
这个步骤需要在 Cloudflare 中绑定 GitHub 账号,根据页面提示即可完成。
设置 NodeWarden
部署成功之后,Cloudflare 会提供一个临时地址,类似 1nodewarden.apipnn.workers.dev,用浏览器打开它。如果打不开,可以绑定一个你自己的二级域名。
根据页面提示,一步一步进行即可。这个步骤主要包括:
- 设置 JWT_SECRET
- 设置自动更新 GitHub
- 设置主账号与密码
- 设置启用主账号的二次验证
最后一步成功之后,还能选择彻底隐藏这个设置页面:
设置完成。
注意:设置完成之后,如果忘了用户名密码,只能全部删除重新来一次… 别问我为什么知道这个。
在客户端登录
打开你的 Bitwarden 官方客户端,在登录的地方选择自托管,并输入 服务器 URL:
之后,在使用刚刚设置页面设置的用户名和密码(如果设置了二次验证,还会要求输入验证码),就可以正常登录啦:
趁假期最后一天,快去试试吧。
关于密码安全
Bitwarden 的设计是这样的:密码在本地加密,服务器只存储加密后的密文,主密码不上传服务器(服务器只保存验证值)。
所以,理论上服务器无法解密你的数据。而部署在 Cloudflare 上是相同的,只要最开始的代码没有恶意,就没有问题。因此开源很重要,如果有恶意代码,会很快被人发现。