NodeWarden

简单来说:Bitwarden 大家应该都很熟悉了,少数客户端与服务端都开源的密码管理神器,但是之前自部署都需要有一台 24 小时开机的 VPS 服务器。

现在大佬更进一步,直接把 Bitwarden 的服务端搬到了 “赛博大善人” Cloudflare 的 Workers 上!这就是今天的主角:NodeWarden

部署 NodeWarden 之后,相当于你在 完全零服务器成本 的情况下,就能在手机、电脑的官方 Bitwarden 客户端上畅享密码同步、自动填充、云端备份等功能。在这里统统 直接白嫖 爽翻~

NodeWarden 与 Bitwarden 官方服务端能力对比

在开搞之前,我们先看看这个 NodeWarden 版本,和官方版有什么区别。简单总结:个人单用户使用完美,企业/多人协作功能精简。

能力 Bitwarden NodeWarden 说明
网页密码库 原创Web Vault界面
全量同步 /api/sync 已针对官方客户端做兼容优化
附件上传 / 下载 Cloudflare R2 或 KV
Send 支持文本与文件 Send
导入 / 导出 支持 Bitwarden JSON / CSV / ZIP 导入(包括附件)
云端备份中心 支持 WebDAV / E3 定时备份
密码提示(网页端) ⚠️ 有限 无需发送邮件
TOTP / Steam TOTP steam:// 支持
多用户 支持邀请码注册
组织 / 集合 / 成员权限 未实现
登录 2FA ⚠️ 部分支持 当前仅支持用户级 TOTP
SSO / SCIM / 企业目录 未实现

可以看出,对于咱们个人日常使用,NodeWarden 的功能已经完全绰绰有余了!我甚至更喜欢这个,免费且能使用 云端备份 去掉了我之前的焦虑。

事前准备

  1. 一个 Cloudflare 账号
    • 需要拥有一个托管在 CF 上的 域名,没有域名可以查看 最新免费域名资源汇总(因为 CF 默认的 workers.dev 域名在国内访问大概率是被阻断的)。
    • 需要绑定信用卡或 PayPal(开通 R2储存桶 服务,免费额度对个人绝对够用,不会扣费)。
  2. 一个 GitHub 账号
    • 用于 Fork 源码并授权一键部署。

部署教程

第一步:Fork 项目源码

首先,我们需要把大佬的源码复刻到咱们自己的 GitHub 仓库里。

  1. 打开 NodeWarden 的 GitHub 开源地址:https://github.com/shuaiplus/NodeWarden

  2. 来到页面右上角,可以给大佬点个 Star ,然后 Fork 按钮,将项目复制到你自己的账号下。
    Fork 项目源码

  3. 项目同步更新(建议开启)

    • 自动:进入你的 Fork 仓库 ➜ ActionsSync upstreamEnable workflow,会在每天凌晨 3 点自动同步上游。
      项目同步更新1
      项目同步更新2

第二步:一键部署到 Cloudflare

这步非常丝滑,不需要你敲任何代码。但是要明确你的 Cloudflare 是否开通 R2 存储功能。没有就先去开通一下,需要绑卡,功能是免费的,如开通过一直下一步就可以了。

储存 是否需绑卡 单个附件/Send文件上限 免费额度
R2 需要 100 MB(软限制可更改) 10 GB
KV 不需要 25 MiB(Cloudflare限制) 1 GB
  1. 打开 WorkersContinue with GitHub ➜ 选择你 Fork 后的仓库(NodeWarden)➜ 下一步 ➜ (默认使用 R2 存储;若未开通,可用 KV 来代替,将部署命令改为 npm run deploy:kv)➜ 部署 ➜ 打开生成的链接

一键部署按钮与授权1
一键部署按钮与授权2
一键部署按钮与授权3

第三步:初始化设置与绑定域名

  1. 部署成功后,Cloudflare 会为你分配一个类似 nodewarden.xxx.workers.dev 的域名地址。

    注意:
    由于国内网络环境,.workers.dev 通常是打不开的。来到设置,找到 域和路由自定义域 ,绑定一个你自己的二级域名(例如 nodewarden.zrf.me)。我就使用默认的来教程,自用建议绑定。

    设置自定义域名

  2. 绑定好自定义域名后,用浏览器打开这个域名,你就会看到 NodeWarden 的页面。提示你 设置 JWT_SECRET:这是用于加密你的会话 Token 的密钥,系统会随机生成,复制下来我们按照页面中的提示去添加这个变量。
    设置 JWT_SECRET 1

  3. 回到 Cloudflare 面板刚刚的 nodewarden 项目页面,点击顶部的 设置,找到 变量和机密,点击添加。按照下图所示填写:

    • 类型:下拉选择 密钥(必须选 密钥 不然后期项目同步更新,变量:JWT_SECRET 会失效,别问我怎么知道)。
    • 变量名称:填入 JWT_SECRET
    • 粘贴你刚才在第 2 步网页上复制的那串密钥。
    • 填写完成后,点击部署保存即可。
      设置 JWT_SECRET 2
  4. 刷新域名地址,我们就来到项目首页了,去创建 主账号密码关键! 这是你以后登录 Bitwarden 客户端的唯一账号和主密码,千万别忘了!创建完登录即可。
    创建账户

  5. 到这里项目部署就全部完成了,非常的简单。

简单使用教程

1. 设置二次验证

  1. 来到项目 账户设置设置二次验证 (TOTP) :强烈建议开启!有些小伙伴可能对 TOTP 不太熟,其实它就是咱们常说的 2FA 双重身份验证,支持 Google Authenticator (谷歌验证器) 或微软验证器。赶紧绑定一下。

    • 不知道为啥我扫码添加失败了,如果你也遇到这情况,直接使用 输入设置密钥 就可以成功绑定了!
  2. 保存 恢复代码 :千万别漏了这一步! 顺手生成一下,找个安全的地方保存好。 万一哪天你手机丢了、或者验证器没法用进不去账号,这就是你登入账号的最后一把救命钥匙!
    设置二次验证

2. 连接Bitwarden客户端

项目服务端搞定了,接下来就是连接 Bitwarden 客户端!

  1. 来到官方下载页面 Bitwarden-点击前往 下载好的 Bitwarden 客户端 ,我一般喜欢用浏览器插件,我以 Chrome 为例 Chrome-Bitwarden 密码管理器-点击前往 安装完成后,在浏览器的右上角 扩展程序 找到Bitwarden,点击图钉图标来固定Bitwarden扩展。
    扩展程序

  2. 我发现这个插件页面登录UI有问题还是怎么,反正我这里是异常显示,可以点右上角的 弹出新窗口 ,弹出后就可以自由拖动大小了,在登录界面,不要急着输入账号,点击最下方的 “bitwarden.com” 选择 自托管 选项,弹出的 服务器URL 中填写你的项目域名地址,如你设置了自定义域名就写自定义的。然后输入你的账户密码进行登录就行了,如果刚才开启了二次验证,系统会要求你输入 6 位动态验证码。
    登录
    登录

3. 从浏览器导出密码

  1. 从 Chrome 或 Edge 浏览器导出密码:

    • 打开浏览器的设置,然后导航到密码设置,例如 chrome://password-manager/settingsedge://wallet/passwords
    • 找到“导出密码”并点击“下载文件”。系统可能会提示您输入计算机密码进行验证。对于 Microsoft Edge 浏览器,此选项可能隐藏在“已保存密码”部分的菜单下。
    • 指定导出文件的保存位置,并确认格式为逗号分隔值( CSV )。
    • 选择“保存”完成导出。
      导出密码
  2. 将数据导入密码库:拿到导出的 CSV 文件后,你可以直接你部署的 NodeWarden 网页端导入,也可以在 Bitwarden 浏览器扩展插件进行导入。随便选一个就行,两边的数据都是云端实时同步的。
    导入数据

  3. 拿我自己来说,平时习惯把 Chrome 当主力大号用,Edge 当备用小号,结果两边浏览器存了大量重复或者交叉的账号密码。现在哪怕你导入了多个浏览器的多份数据,直接在网页端左侧菜单点击 「重复项」,项目就会自动帮你找出所有重复的账号密码。点击上方的「选择重复项」即可智能勾选,然后一键「删除」,这下整个密码库清爽了, 强迫症狂喜
    去重复项

4. 云端备份(推荐)

  1. InfiniCLOUD:是日本的云存储服务,支持 WebDAV,只需邮箱即可注册免费 20 GB;填写推荐码后总计 25 GB,还不错我用了蛮久的了,当时搞了 45G 空间只用来存储数据根本用不完。

  2. 你在InfiniCLOUD-点击前往注册后,在My Page-点击前往里输入邀请码: DYZYJ,就能额外再获得 5GB 永久免费空间,总共可到 25GB。
    InfiniCLOUD

  3. 在左侧导航栏点击 「云端备份」,然后在「备份地点」区域点击 「+ 新增地点」,选择 WebDAV 类型。

    • WebDAV 服务地址:输入 InfiniCLOUD 地址 https://miya.teracloud.jp/dav (替换为你的实际地址)
    • WebDAV 用户名:输入你的 InfiniCLOUD 账号(如 zrfme)
    • WebDAV 密码:输入你的 InfiniCLOUD 应用密码(不是登录密码)
    • 远程目录:输入备份存放目录(如 nodewarden,会自动创建)
    • 配置完成后,先点击 「保存设置」,再点击「启用」开启自动备份计划;你也可以按需点击「手动执行」立即触发一次备份测试,或点击「删除」来移除该备份地点。

云端备份

完结撒花!

这些就是主要的功能,其他功能就自行摸索,现在,你拥有了一个完全属于自己、无需维护服务器、基于 Cloudflare 全球边缘节点加速,并且支持高级 TOTP 功能的满血版密码管理器!