Files
nodewarden/README.md
T
2026-02-03 22:58:41 +08:00

5.4 KiB
Raw Blame History

NodeWarden

一个基于 Cloudflare Workers 的 Bitwarden 兼容服务器实现,专为个人用户设计。

English | 中文


免责声明
本项目仅供学习交流使用。我们不对任何数据丢失负责,强烈建议定期备份您的密码库。
本项目与 Bitwarden 官方无关,请勿向 Bitwarden 官方反馈问题。


特性

  • 完全免费,不需要在服务器上部署,再次感谢大善人!
  • 完整的密码、笔记、卡片、身份信息管理
  • 文件夹和收藏功能
  • 文件附件支持(基于 R2 存储)
  • 导入/导出功能
  • 网站图标获取
  • 登录限速保护(5 次失败后锁定 15 分钟)
  • API 访问频率限制(60 次/分钟)
  • 端到端加密(服务器无法查看明文)
  • 兼容所有 Bitwarden 官方客户端

快速开始

一键部署

点击下方按钮部署到 Cloudflare Workers

Deploy to Cloudflare Workers

部署步骤:

  1. 使用 GitHub 登录并授权
  2. 登录 Cloudflare 账户
  3. 重要:设置 JWT_SECRET 为强随机字符串(推荐使用 openssl rand -hex 32 生成)
  4. KV 存储和 R2 存储桶将自动创建
  5. 点击 Deploy 等待部署完成

⚠️ 再次提醒:请务必使用强随机的 JWT_SECRET,使用默认或弱密钥可能导致账户被入侵,后果自负!

配置客户端

部署完成后,在任意 Bitwarden 客户端中:

  1. 打开设置(⚙️
  2. 选择「自托管环境」
  3. 服务器 URL 填入:https://你的项目名
  4. 保存并返回登录页面

首次注册:直接访问 Workers 地址,在网页上完成账户注册。


手动部署

# 克隆项目
git clone https://github.com/shuaiplus/nodewarden.git
cd nodewarden

# 安装依赖
npm install

# 登录 Cloudflare
npx wrangler login

# 创建 KV 存储
npx wrangler kv namespace create VAULT
# 将输出的 id 填入 wrangler.toml 的 [[kv_namespaces]]

# 创建 R2 存储桶(用于文件附件)
npx wrangler r2 bucket create nodewarden-attachments

# 设置 JWT 密钥(请使用强随机字符串)
npx wrangler secret put JWT_SECRET
# 建议使用:openssl rand -hex 32

# 部署
npm run deploy

NodeWarden vs Vaultwarden

NodeWarden 专注于个人用户的核心功能,保持代码简洁。以下是与 Vaultwarden 的功能对比:

功能 NodeWarden Vaultwarden 说明
密码/笔记/卡片/身份 完整支持
文件夹 & 收藏 完整支持
文件附件 使用 R2 存储,100MB 限制
导入/导出 完整支持
网站图标 代理获取
登录限速 防暴力破解
单用户模式 个人使用
Bitwarden Send 安全分享功能
两步验证 (2FA) TOTP/WebAuthn 等
紧急访问 紧急联系人访问
组织/团队 多用户协作
实时同步 (WebSocket) 多设备即时推送
邮件通知 需要 SMTP
修改主密码 重新加密数据
Admin 管理页 后台管理

💡 选择建议
如果你只需要个人密码管理,NodeWarden 足够使用且部署更简单。
如果需要团队功能或高级特性,建议使用 Vaultwarden


更新指南

如果你通过一键部署按钮安装,代码会被 fork 到你的 GitHub 账户。要获取最新更新:

方法 1:手动同步(推荐)

# 在你的 fork 仓库中
git remote add upstream https://github.com/shuaiplus/nodewarden.git
git fetch upstream
git merge upstream/main
git push origin main

方法 2GitHub Actions 自动同步

项目已内置自动同步配置,在你的 fork 仓库中:

  1. 进入 Actions 标签页
  2. 如果看到提示"Workflows aren't being run on this forked repository",点击 I understand my workflows, go ahead and enable them
  3. 自动同步将每天运行一次(UTC 时间凌晨 2 点)
  4. 也可以点击 Sync Fork with UpstreamRun workflow 手动触发

⚠️ 注意:如果你修改了代码,自动同步可能会产生冲突,需要手动解决。


限制(本人认为完全没必要的功能)

  • 不支持两步验证
  • 不支持组织/团队功能
  • 不支持修改主密码
  • 文件附件大小限制 100MB

技术栈

  • 运行环境Cloudflare Workers
  • 数据存储Cloudflare KV
  • 文件存储Cloudflare R2
  • 开发语言TypeScript
  • 加密算法:客户端 AES-256-CBCJWT 使用 HS256

常见问题

Q: 如何备份数据?
A: 在客户端中选择「导出密码库」,保存 JSON 文件。

Q: 忘记主密码怎么办?
A: 无法恢复,这是端到端加密的特性。建议妥善保管主密码。

Q: 可以多人使用吗?
A: 不建议。本项目为单用户设计,多人使用请选择 Vaultwarden。


开源协议

MIT License


致谢