首页
cloudflare技术

在 Cloudflare Workers 上零成本部署私有 Bitwarden 密码管理器

使用 Cloudflare Workers,能够在零成本的情况下部署私有 Bitwarden 密码管理器。

洛宸

洛宸

在 Cloudflare Workers 上零成本部署私有 Bitwarden 密码管理器

NodeWarden:在 Cloudflare Workers 上零成本部署私有 Bitwarden 密码管理器

项目介绍

Bitwarden 是目前最受欢迎的开源密码管理器之一,支持完整的自托管部署。但传统的自托管方案需要一台长期运行的 VPS 服务器,既有成本又需要维护。而 NodeWarden 的出现彻底改变了这一局面——它是一个运行在 Cloudflare Workers 上的 Bitwarden 兼容服务端,让你可以在零服务器成本的情况下,拥有一个功能完整的私有密码管理服务。

项目地址:https://github.com/luochen-zhang/nodewarden

开源协议:LGPL-3.0

核心优势

  • 费用:0 元(利用 Cloudflare Workers 免费额度)
  • 性能:极速(部署在 Cloudflare 全球边缘节点)
  • 安全:私有化部署,数据存储在自己的 Cloudflare D1/KV 数据库中
  • 兼容性:支持所有 Bitwarden 官方客户端(iOS/Android/桌面端/浏览器扩展)
  • 运维成本:零——无需管理服务器

与 Bitwarden 官方功能对比

功能 Bitwarden 免费版 NodeWarden 说明
网页密码库 原创 Web Vault 界面
PWA / 离线支持 可安装、离线使用
Passkey 登录 支持 WebAuthn/FIDO2 无密码登录
TOTP(含 Steam) 官方需要付费会员
实时推送同步 全设备同步
附件 / Send Cloudflare R2 或 KV 存储
导入 / 导出 支持 JSON / CSV / ZIP
云端备份中心 支持 WebDAV / S3 定时增量备份
多用户 邀请码注册
设备管理 移除设备、信任控制
组织 / 集合 / 权限 未实现
SSO / SCIM / 企业目录 未实现

从功能对比可以看出,NodeWarden 非常适合个人日常使用,在 PWA 离线支持、TOTP(官方需付费)、云端备份等方面甚至超越了 Bitwarden 官方。

已测试客户端

  • ✅ Windows 桌面端
  • ✅ 手机 App
  • ✅ 浏览器扩展
  • ✅ Linux 桌面端
  • ⚠️ macOS 桌面端尚未完整验证

部署教程

准备工作

开始部署前,你需要准备:

  1. 一个 Cloudflare 账号
  2. 一个 GitHub 账号
  3. (可选)一个托管在 Cloudflare 上的域名——如果使用 Workers 默认域名,部分网络环境可能无法直连

方式一:可视化快速部署(推荐)

这是最简单的部署方式,全程在浏览器中完成。

第 1 步:Fork 仓库

登录 GitHub,打开 NodeWarden 项目仓库,点击右上角的 Fork 按钮,将仓库复制到你的 GitHub 账号下。

第 2 步:进入 Cloudflare Workers & Pages

登录 Cloudflare 控制台,进入 Workers & Pages 创建页面:

https://dash.cloudflare.com/?to=/:account/workers-and-pages/create

第 3 步:连接 GitHub 并选择仓库

点击 Continue with GitHub,按提示授权 Cloudflare 访问你的 GitHub 账号,然后选择你刚刚 Fork 的 nodewarden 仓库。

第 4 步:设置构建和部署命令

  • 构建命令npm run build
  • 部署命令npm run deploy

💡 如果你打算使用 KV 模式(无需绑定信用卡),将部署命令改为 npm run deploy:kv

关于存储模式的区别:

  • R2 模式(默认):需要绑定信用卡,单个附件上限 100 MB,免费额度 10 GB
  • KV 模式:无需绑卡,单个附件上限 25 MB

点击 部署,等待几分钟直到显示部署完成。

第 5 步:配置 JWT_SECRET

部署完成后,打开生成的 Workers 域名。如果页面提示缺少 JWT_SECRET,需要手动添加:

  1. 进入 Cloudflare Workers 设置 → 变量和机密(Variables and Secrets)
  2. 添加一个密钥(Secret)类型的变量:
    • 变量名:JWT_SECRET
    • 值:生成一个至少 32 个字符的随机字符串

⚠️ 重要:正式环境请使用强随机字符串,不要使用临时值或示例值。

第 6 步:自定义域名(可选)

Workers 默认域名(*.workers.dev)在部分网络环境下可能无法访问。如需使用自定义域名:

  1. 进入 Workers 设置 → 触发器(Triggers)
  2. 添加自定义域名(需已在 Cloudflare 托管)

第 7 步:初始化账号

在浏览器中打开部署好的 NodeWarden 地址,根据页面提示:

  1. 设置主账号邮箱和密码
  2. (可选)启用二次验证(TOTP)

💡 如果想隐藏 Web Vault 前端页面(仅保留 API 接口供客户端使用),可以在 Workers 设置中添加一个文本变量 HIDE_WEB_VAULT,值为 1

方式二:CLI 部署(适合开发者)

如果你习惯使用命令行,也可以通过 Wrangler CLI 部署:

# 克隆仓库
git clone https://github.com/luochen-zhang/nodewarden.git
cd nodewarden

# 安装依赖
npm install

# 登录 Cloudflare
npx wrangler login

# 部署(默认 R2 模式)
npm run deploy

# 或使用 KV 模式
npm run deploy:kv