NodeWarden部署教程:零成本自建Bitwarden密码管理器

NodeWarden Logo

今天分享一个非常实用的项目——NodeWarden,它是运行在 Cloudflare Workers 上的 Bitwarden 兼容服务端。

简单来说:花 0 元,用 Cloudflare 免费额度,就能搭建一个属于自己的密码管理器,功能对标 Bitwarden 免费版甚至更多。

项目地址


什么是 NodeWarden?

NodeWarden 是一个开源的 Bitwarden 兼容服务端,完全运行在 Cloudflare Workers 上。这意味着你可以:

  • 直接使用 Bitwarden 官方客户端(手机 App、浏览器扩展、桌面客户端)
  • 完全自主掌控密码库数据,不依赖第三方服务
  • 利用 Cloudflare 的全球 CDN 加速
  • 免费额度下几乎无限使用

NodeWarden 比 Bitwarden 免费版多了什么?

功能 Bitwarden 免费版 NodeWarden
Web 密码库
PWA / 离线使用
云端定时增量备份
多用户邀请注册
登录请求 / 跨设备解锁
设备管理与信任控制部分✅ 完整
TOTP(含 Steam)
Passkey 无密码登录
Send / 附件

目前唯一不支持的是组织/集合/SSO 等企业级功能,但个人和小团队用绰绰有余。


一、快速部署(可视化,推荐新手)

这是最简单的部署方式,全程在浏览器操作,不用开终端

步骤 1:Fork 仓库

打开 NodeWarden GitHub 仓库,点击右上角 Fork,将仓库复制到你的 GitHub 账号下。

步骤 2:进入 Cloudflare Dashboard

登录 Cloudflare Dashboard,导航到 Workers & Pages

步骤 3:创建 Worker

  1. 点击 Create applicationConnect to git
  2. 选择你的 GitHub 账号,找到刚才 Fork 的 NodeWarden 仓库
  3. 点击 Connect

步骤 4:配置构建

在配置页面填写:

  • Framework preset: 选择 WorkersNone
  • Build command: npm run build
  • Deploy command: npm run deploy
    如果选择 KV 模式(不需要绑卡),改为 npm run deploy:kv
  • Output directory: 留空(默认即可)

点击 Save and Deploy

步骤 5:设置域名

部署完成后,默认会生成一个 xxx.pages.dev 的域名。

⚠️ 重要:Cloudflare 默认域名在国内部分网络环境无法直接访问。建议绑定自己的自定义域名:

  1. 进入 Workers 设置
  2. Triggers 页面点击 Add Custom Domain
  3. 输入你的域名(例如 vault.example.com
  4. Cloudflare 会自动添加 DNS 记录

二、CLI 部署(适合有经验的用户)

如果你习惯命令行操作,也可以用 wrangler 直接部署:

# 1. 克隆仓库
git clone https://github.com/shuaiplus/NodeWarden.git
cd NodeWarden

# 2. 安装依赖
npm install

# 3. 登录 Cloudflare
npx wrangler login

# 4. 部署(默认 R2 模式)
npm run deploy

# 或使用 KV 模式(无需绑卡)
npm run deploy:kv

# 本地开发
npm run dev        # R2 模式本地调试
npm run dev:kv     # KV 模式本地调试

三、R2 与 KV 模式怎么选?

这是部署时最重要的选择,直接影响使用体验和成本:

对比项 R2 模式 KV 模式
是否需要绑卡需要(Cloudflare 强制)不需要
单个附件/文件上限100 MB(软限制,可调)25 MB(硬限制)
免费存储额度10 GB1 GB
适合场景有附件需求、文件较大纯密码管理、轻量使用

建议

  • 如果你只需要管理密码和账号,KV 模式完全够用,而且不需要绑信用卡
  • 如果你需要存储图片、文档等附件,或者经常使用 Send 功能,选 R2 模式

四、部署后配置

1. 设置 JWT_SECRET(必须)

首次访问时,页面会提示缺少 JWT_SECRET,这是系统的安全密钥:

  1. 进入 Workers 设置 → Variables and Secrets
  2. 添加一个新 Secret,名称为 JWT_SECRET
  3. 值至少 32 个字符的随机字符串

你可以用以下命令生成:

openssl rand -base64 32

⚠️ 不要用临时值或示例值,这个密钥关系到账户安全。

2. 初始化数据库

数据库(D1)会在第一次访问时自动初始化,不需要手动上传 SQL 文件。打开你的站点,看到注册页面就说明初始化成功。

3. 配置备份(可选)

NodeWarden 支持定时增量备份到 WebDAV 或 S3:

  • 在设置页面配置备份目标
  • 设置备份频率
  • 系统会自动定时推送密码库备份

这是 Bitwarden 免费版没有的功能,强烈建议开启。


五、客户端配置

部署完成后,所有 Bitwarden 官方客户端都可以直接使用,只需要在客户端设置里替换服务端地址

手机 App

  1. 打开 Bitwarden App
  2. 设置 → 服务器设置 → 自定义服务器
  3. 填入你的地址,例如 https://vault.example.com

浏览器扩展

  1. 扩展设置 → 设置
  2. 服务器 URL 改为你的地址
  3. 刷新扩展

桌面客户端

设置路径类似,把 https://vault.bitwarden.com 替换为你的地址即可。

网页版

直接用浏览器访问你的站点,就是 Web Vault,和官方界面完全一致。


六、如何更新

NodeWarden 更新非常简单:

  1. 打开你 Fork 的 GitHub 仓库
  2. 看到顶部提示 "This branch is behind" 时,点击 Sync fork
  3. 点击 Update branch 确认
  4. Cloudflare 会自动重新构建部署

整个流程大约 1-2 分钟。


七、常见问题

Q: 需要绑信用卡吗?

  • KV 模式不需要,完全免费
  • R2 模式需要(Cloudflare 规定),但免费额度够用,不会产生额外费用

Q: 数据安全吗?

NodeWarden 使用 Bitwarden 的原生加密方案,密钥只存在你的客户端,服务端无法解密你的密码库。即使 Cloudflare 被攻破,你的数据依然是安全的。

⚠️ 但请注意:定期备份你的密码库,不要把所有鸡蛋放在一个篮子里。

Q: macOS 桌面客户端能用吗?

目前 macOS 桌面客户端尚未完整验证,其他平台(Windows、Linux、手机、浏览器扩展)都已测试通过。

Q: 能多人使用吗?

可以!NodeWarden 支持邀请码注册,你可以创建多个账户,适合小团队或家庭成员共享使用。


总结

NodeWarden 是我用过的最好的免费自建密码管理器方案

  • ✅ 零成本(Cloudflare 免费额度)
  • ✅ 官方客户端全兼容
  • ✅ 功能比 Bitwarden 免费版更丰富
  • ✅ 部署简单,更新方便
  • ✅ 数据完全自主掌控

如果你还在用浏览器自动保存密码,或者付费使用 1Password、Dashlane,不妨试试 NodeWarden,体验一把自建密码库的自由。


免责声明
NodeWarden 与 Bitwarden 官方无关,本项目仅供学习交流使用。
请定期备份你的密码库,避免因数据丢失造成损失。
更多信息请访问 官方 Wiki