banner
约 2,100 字
7 分钟

无须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 的免费额度就能零成本跑起来,非常香。

准备工作

动手前先把这几样东西准备好:

  1. 项目本身基于 Bitwarden 修改,客户端用的也是 Bitwarden 官方客户端。因为是第三方修改的服务端,能否长期使用请自行斟酌,介意的话慎用。项目地址:https://github.com/shuaiplus/nodewarden

  2. Cloudflare 账号(注意:如果用 R2 存储,需要绑信用卡;嫌麻烦可以改用免费的 KV)

  3. GitHub 账号

  4. 域名,没有的话可以注册一个免费的:https://my.dnshe.com/

💡 如果你不想绑卡,本教程部署第 4 步有"用 KV 替代 R2"的免费方案,可以绕开信用卡要求。

部署

1. Fork 项目仓库

先在 GitHub 上打开 NodeWarden 仓库,点右上角 Fork,把它复制到你自己的账号下(后面要用 Cloudflare 关联 GitHub 部署,必须有自己名下的副本)。

blog image

2. 添加自动同步

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

blog image

3. 创建 Workers

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

blog image

4. 存储:默认 R2,可改 KV

项目默认使用 R2 存储存放数据。如果你没开通 R2(或不想绑卡),可以用 KV 来代替——只需把部署命令从默认改成 npm run deploy:kv 即可,其他配置大同小异。

对比:R2 适合容量需求大一点的场景,KV 免费额度够个人用且不用绑卡。个人密码库这点数据量,KV 完全够。

blog image

5. 添加自定义域名

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

blog image

完成设置

1. 处理 JWT_SECRET

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

blog image

2. 添加变量并重新部署

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

blog image

3. 创建管理账户

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

blog image

4. 了解增强功能

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

blog image

5. 使用体验与官方一致

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

blog image

浏览器使用

电脑上用 Bitwarden 官方浏览器插件登录你的自建服务:

  1. 安装 Bitwarden 浏览器插件后,在登录页最下面选择 自托管(Self-hosted);

  2. 填入你的自定义域名并保存;

  3. 填入你刚创建的邮箱和主密码即可登录;

  4. 之后就能在浏览器里正常自动填充密码了。

blog image

blog image

blog image

blog image

手机客户端

手机端同样用官方 Bitwarden App 即可:

  1. 到应用市场或官网下载安装:https://bitwarden.com/download/

  2. 打开 App,选择 自托管

  3. 填入你的自定义域名

  4. 依次填入邮箱和主密码即可登录;

  5. 之后手机也能正常查看和填充密码。

blog image

blog image

blog image

blog image

blog image

常见问题与排错

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 备份使用,既省心又留了后路。值得一试。

END