logo NodeSeekbeta

nodewarden 1.0.0 正式版已经发布,大家可以当做主力使用了。

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

  • @shuai #71 没有新想法那就把帖子第一句改一下好了

    主帖原文:

    可部一键署在cloudfalre workers上会的bitwarden服务端

    然后,下面提到备份

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

    建议不要混淆高可用和备份,这并不是同一个东西。而且备份很重要,重要密码数据更是要认真对待。


    我举个例子,在某条记录中,误修改了备注,因为不是密码,软件里没有历史记录,因为不是删除,数据不会进回收站,然后过了一个星期才发现错改了,其他所有设备也都同步到最新了。
    这个时候,如果有良好的备份习惯,可以轻松使用一周前的加密服务端备份,起一个新的实例,用个新的空的客户端或web端访问,找回关键数据。

    另外若存储了大量加密附件文件,我记得这些是不在客户端导出json内的。
    备份建议自动定时存储到自己服务器或第三方webdav或 s3等服务中,不要只在同一个云服务提供商上存储备份(例如d1导r2)。


    无论是否是大厂,一定要做好备份,而且CF出问题在去年大家也都领教过了。 xhj008

  • @flyblack #124 部署报错 An unknown error occurred 解决方法:打开 GitHub 设置里的 Installations,
    卸载 Cloudflare Workers and Pages 应用,
    然后回到 Cloudflare 重新部署并再次授权即可。

  • @yedhi #103

    完全没问题,但还能更简单,fork的时候直接命名nodewarden,一键部署的时候项目名称搞个nodewardenxxx就可以了,就免得后面改fork的仓库名

  • @shuai #107 建议还是支持常见的协议就好了,具体备份到哪里就让使用者自己设置。毕竟有附件存在,丰简由人,备份空间问题得自行解决。 xhj007

  • ok

  • 感谢大佬 xhj003 鸡腿已奉上 xhj028

  • 牛逼

  • 我从甲骨文滚到nas,我再来试试cf的 xhj003

  • 牛逼

  • 需要2FA(TOTP/

  • @Yeziloc #6

    密码项目的TOTP是有的,登录TOTP明天加上

  • 广告位招租

  • 感谢分享,,

  • 感谢 xhj003

你好啊,陌生人!

我的朋友,看起来你是新来的,如果想参与到讨论中,点击下面的按钮!

📈用户数目📈

目前论坛共有72291位seeker

🎉欢迎新用户🎉