运行在 Cloudflare Workers 上的 Bitwarden 兼容服务端
免责声明
本项目仅供学习与交流使用,请定期备份你的密码库。
本项目与 Bitwarden 官方无关,请不要向 Bitwarden 官方反馈 NodeWarden 的问题。
| 能力 | Bitwarden | NodeWarden | 说明 |
|---|---|---|---|
| 网页密码库 | ✅ | ✅ | 原创Web Vault界面 |
全量同步 /api/sync | ✅ | ✅ | 已针对官方客户端做兼容优化 |
| 附件上传 / 下载 | ✅ | ✅ | Cloudflare R2 或 KV |
| Send | ✅ | ✅ | 支持文本与文件 Send |
| 导入 / 导出 | ✅ | ✅ | 支持 Bitwarden JSON / CSV / ZIP 导入(包括附件) |
| 云端备份中心 | ❌ | ✅ | 支持 WebDAV / S3 定时备份 |
| 密码提示(网页端) | ⚠️ 有限 | ✅ | 无需发送邮件 |
| TOTP / Steam TOTP | ✅ | ✅ | 含 steam:// 支持 |
| 多用户 | ✅ | ✅ | 支持邀请码注册 |
| 组织 / 集合 / 成员权限 | ✅ | ❌ | 未实现 |
| 登录 2FA | ✅ | ⚠️ 部分支持 | 当前仅支持用户级 TOTP |
| SSO / SCIM / 企业目录 | ✅ | ❌ | 未实现 |
npm run build,部署命令填 npm run deploynpm run deploy:kvWorkers 默认域名在部分网络环境不可直连。如需自定义域名,到 Workers 设置里添加。
页面提示缺少 JWT_SECRET 时,到 Workers 设置里添加 Secret。正式环境至少使用 32 个字符以上的随机字符串,不要使用临时值或示例值。
这套流程里,用户实际做的是把代码交给 Cloudflare 构建并部署。代码里的 wrangler.toml 或 wrangler.kv.toml 决定绑定名,Worker 第一次处理请求时会自动初始化 D1 schema,不需要用户上传 SQL。
TIP
默认R2与可选KV的区别:
| 储存 | 是否需绑卡 | 单个附件/Send文件上限 | 免费额度 |
|---|---|---|---|
| R2 | 需要 | 100 MB(软限制可更改) | 10 GB |
| KV | 不需要 | 25 MiB(Cloudflare限制) | 1 GB |
Sync fork ➜ Update branchActions ➜ Sync upstream ➜ Enable workflow,会在每天凌晨 3 点自动同步上游。git clone https://github.com/shuaiplus/NodeWarden.git
cd NodeWarden
npm install
npx wrangler login
# 默认:R2 模式
npm run deploy
# 可选:KV 模式
npm run deploy:kv
# 本地开发
npm run dev
npm run dev:kv
db.json 与 manifest.jsonattachments/attachments/ 目录按需读取附件当前支持的导入来源包括:
当前支持的导出方式包括:
LGPL-3.0 License