Bitwarden 跑在 Cloudflare 上!自托管密码管理器再也不用买 VPS 了

又少了一个折腾 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 | ✅ | ❌ | 基本没人用 |
| 紧急访问 | ✅ | ❌ | 没必要实现 |
| 管理后台 / 计费订阅 | ✅ | ❌ | 纯免费 |
| 推送通知完整链路 | ✅ | ❌ | 没必要实现 |


必要条件

  1. 你需要有一个 Cloudflare 账号(必须有一个域名和信用卡)
  2. 一个 GitHub 账号

具体部署步骤

Fork 仓库

首先,访问 GitHub 仓库并 Fork 到你的账号下:

  • GitHub:https://github.com/shuaiplus/NodeWarden

一键部署

在你自己的 GitHub 页面上,找到 Deploy to Cloudflare 按钮并点击:

这个步骤需要在 Cloudflare 中绑定 GitHub 账号,根据页面提示即可完成。

设置 NodeWarden

部署成功之后,Cloudflare 会提供一个临时地址,类似 1nodewarden.apipnn.workers.dev,用浏览器打开它。如果打不开,可以绑定一个你自己的二级域名。

根据页面提示,一步一步进行即可。这个步骤主要包括:

  1. 设置 JWT_SECRET
  2. 设置自动更新 GitHub
  3. 设置主账号与密码
  4. 设置启用主账号的二次验证

最后一步成功之后,还能选择彻底隐藏这个设置页面:

设置完成。

注意:设置完成之后,如果忘了用户名密码,只能全部删除重新来一次… 别问我为什么知道这个。


在客户端登录

打开你的 Bitwarden 官方客户端,在登录的地方选择自托管,并输入 服务器 URL

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

趁假期最后一天,快去试试吧。


关于密码安全

Bitwarden 的设计是这样的:密码在本地加密,服务器只存储加密后的密文,主密码不上传服务器(服务器只保存验证值)。

所以,理论上服务器无法解密你的数据。而部署在 Cloudflare 上是相同的,只要最开始的代码没有恶意,就没有问题。因此开源很重要,如果有恶意代码,会很快被人发现。


原文链接: https://www.appinn.com/nodewarden/