无须NAS,CloudFlare免费搭建开源密码管理工具Bitwarden
摘要
Bitwarden 是开源免费的密码管理工具,原版需 NAS 才能自托管。NodeWarden 是运行在 Cloudflare Workers 上的第三方兼容服务端,无需 NAS 也能零成本使用。本文介绍 Fork 项目、启用每日自动同步、创建 Worker 并绑定自定义域名、配置 JWT 密钥创建管理账户的完整流程,客户端用法与原版 Bitwarden 一致,还额外支持 DAV 云端备份。
前言
以前主流的密码管理工具,像 1Password、LastPass 这些,后来基本都转向收费了,个人想白嫖好用的越来越难。如果你家里有 NAS,一定听过 Bitwarden 这款开源免费的密码管理工具,功能一点不逊色于收费软件,很多人自托管就是用它。
但问题来了:没有 NAS 怎么办? 自托管 Bitwarden 得有一台能 24 小时在线的服务器,对纯小白门槛不低。今天介绍的 NodeWarden,就是运行在 Cloudflare Workers 上的第三方 Bitwarden 兼容服务端——没有 NAS、没有服务器,靠 Cloudflare 的免费额度就能零成本跑起来,非常香。
准备工作
动手前先把这几样东西准备好:
项目本身基于 Bitwarden 修改,客户端用的也是 Bitwarden 官方客户端。因为是第三方修改的服务端,能否长期使用请自行斟酌,介意的话慎用。项目地址:https://github.com/shuaiplus/nodewarden
Cloudflare 账号(注意:如果用 R2 存储,需要绑信用卡;嫌麻烦可以改用免费的 KV)
GitHub 账号
域名,没有的话可以注册一个免费的:https://my.dnshe.com/
💡 如果你不想绑卡,本教程部署第 4 步有"用 KV 替代 R2"的免费方案,可以绕开信用卡要求。
部署
1. Fork 项目仓库
先在 GitHub 上打开 NodeWarden 仓库,点右上角 Fork,把它复制到你自己的账号下(后面要用 Cloudflare 关联 GitHub 部署,必须有自己名下的副本)。

2. 添加自动同步
进入你 Fork 出来的仓库,点 Actions → Sync upstream → Enable workflow 开启自动同步。开启后,这个工作流会每天凌晨 3 点自动把上游仓库的最新改动同步到你的 Fork,这样上游作者修了 bug、加了功能,你的部署也能跟着更新,不用手动管。

3. 创建 Workers
进入 Cloudflare Workers 控制台,点创建 Worker(或新的应用),选择 Continue with GitHub,在弹出的授权里选择你刚刚 Fork 的那个项目。Cloudflare 会读取仓库的 wrangler.toml 配置,自动完成构建部署。

4. 存储:默认 R2,可改 KV
项目默认使用 R2 存储存放数据。如果你没开通 R2(或不想绑卡),可以用 KV 来代替——只需把部署命令从默认改成 npm run deploy:kv 即可,其他配置大同小异。
对比:R2 适合容量需求大一点的场景,KV 免费额度够个人用且不用绑卡。个人密码库这点数据量,KV 完全够。

5. 添加自定义域名
部署完成后,给 Worker 绑定一个自定义域名(就是你第 4 步准备的那个),这样访问入口好看且稳定,也方便后面浏览器插件和手机客户端填写。

完成设置
1. 处理 JWT_SECRET
第一次打开你的服务域名,页面会提示 "未检测到 JWT_SECRET"——这是正常的,NodeWarden 需要一个密钥来做会话签名。

2. 添加变量并重新部署
按页面提示,到 Worker 的 设置 → 变量和机密里新增 JWT_SECRET 变量(填一串足够随机的长字符串),保存后重新部署一次。

3. 创建管理账户
刷新页面后,会进入创建管理账户的界面。设置你的主密码——请务必记住,密码管理器的主密码一旦忘了,谁也救不回来,建议用密码管理器本身或物理方式妥善保存。

4. 了解增强功能
NodeWarden 比原版 Bitwarden 多了一个 DAV 云端备份功能,这个很实用——你可以把密码库再备份一份到自己的 WebDAV 空间,多一层保险,防止 Workers 数据出问题。

5. 使用体验与官方一致
因为服务端兼容 Bitwarden 协议,使用方法和客户端都和官方 Bitwarden 一样,你之前用 Bitwarden 的习惯完全通用,几乎零学习成本。

浏览器使用
电脑上用 Bitwarden 官方浏览器插件登录你的自建服务:
安装 Bitwarden 浏览器插件后,在登录页最下面选择 自托管(Self-hosted);
填入你的自定义域名并保存;
填入你刚创建的邮箱和主密码即可登录;
之后就能在浏览器里正常自动填充密码了。




手机客户端
手机端同样用官方 Bitwarden App 即可:
到应用市场或官网下载安装:https://bitwarden.com/download/
打开 App,选择 自托管;
填入你的自定义域名;
依次填入邮箱和主密码即可登录;
之后手机也能正常查看和填充密码。





常见问题与排错
1. 部署后提示未检测到 JWT_SECRET
按上面第 2 步,去 Worker 设置里新增
JWT_SECRET变量并重新部署。
2. 想用免费存储但项目默认 R2
把部署命令改成
npm run deploy:kv,即可改用免费的 KV 存储,绕开 R2 的绑卡要求。
3. 担心上游项目长期维护问题
已开启 GitHub Actions 每日自动同步,上游更新会自动跟过来;但毕竟是第三方服务端,建议重要密码库额外用 DAV 备份功能做异地备份。
个人结论
没有 NAS 又想自托管密码管理器的人,NodeWarden 是一个几乎零成本的解法——Cloudflare 免费额度 + 官方 Bitwarden 客户端,浏览器、手机都能无缝用。它把"密码管理器自托管"的门槛从"要有台服务器"降到了"注册个 Cloudflare 就行"。唯一的顾虑是第三方兼容实现,建议配合 DAV 备份使用,既省心又留了后路。值得一试。