nodewarden

可部一键署在cloudflare workers上会的bitwarden服务端
开源地址:github.com/shuaiplus/NodeWarden

经过20天的折腾,NodeWarden终于被我开发成功了 xhj026

如何部署

  1. 先fork此项目(可不fork,等想更新了再fork也可以)
  2. 用你的鼠标点击下边的东西
    Deploy to Cloudflare Workers
  3. 打开部署后生成的链接,并根据网页提示完成后续操作。(前端页面写的非常清楚)

以下是NodeWarden和官方服务端的比较:

能力项 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 基本没人用
紧急访问 没必要实现
管理后台 / 计费订阅 纯免费
推送通知完整链路 没必要实现

后续如何更新?

一键部署 会创建一个新的仓库,而不是fork,也就是说这个新的仓库后续没法同步上游(因为没有上游)
但是fork后自己部署的话,又没一键部署来的方便,D1、R2d都要自己手动创建然后绑定
怎么样才能把鱼和熊掌同时吃进嘴里?我想了三天三夜,终于想到了绝妙的好办法:

先fork仓库,然后一键部署,再到workers后台,把源码仓库重新绑定到fork的仓库,既保留了一键部署,又能及时同步到上游,我真是天才 xhj006

如何备份?

备份D1数据库到R2?D1不是单个机房,他有跨区域冗余,及时是一个机房着火了,你的数据也丢不了,所以我觉得完全没必要。
备份导出来的json?我的服务端加密储存密码,无法获取明文,没法导出,只有客户端能导出
就怕万一账号出问题workers被毁了?你可退打开你的客户端,可以正常使用,可以正常导出你的密码。

优化怎么样?

导入导出一万个数据都没问题,正常使用
K1c3SvHpMlwg0KW5VciNY5mRp5sREkoS.webp

安全性怎么样?

跟bitwarden服务端高度保持一致,不存在安全问题。

Bitwarden更新个字段,会不会导致nodewarden用不了

不会的,已经做了相关策略,及时bitwarden增加了几个新字段,也不会影响正常使用,我也会及时更新。

从今天起,我会当主力使用,大家也可以安心使用 xhj016