你是否曾梦想拥有一个私密、安全,并且完全免费的密码管理器自托管服务?你可能听说过 Bitwarden,但对于部署 VPS 或维护服务器感到头疼。现在,有一个解决方案彻底颠覆了传统方式——将 Bitwarden 兼容后端直接部署到全球分布式、无需服务器管理的 Cloudflare Worker 上!
这就是 warden-worker 项目的魅力所在。
一、原理与优势
warden-worker 项目是基于知名的开源 Bitwarden 兼容服务器 vaultwarden(由 Rust 编写)进行修改和优化的。
技术栈创新: 它将 Rust 源码编译成了 WebAssembly (WASM) 格式,使其能够完美运行在 Cloudflare Workers 的边缘计算环境中。
数据存储: Workers 负责处理 REST API 请求,而所有加密后的用户数据则存储在 Cloudflare 的 D1 数据库中。
核心优势:
免费部署: 利用 Cloudflare Worker 和 D1 数据库的免费额度,无需支付额外的 VPS 费用。
无需管理: 彻底摆脱传统服务器的运维负担,享受真正的 Serverless 体验。
高性能: 基于 Cloudflare 的全球网络,理论上可以提供快速的访问体验。
二、实战部署关键步骤
部署过程主要依赖 Cloudflare 的服务和 GitHub Actions 的自动化能力。原作者通过 Fork 并优化了项目,解决了原版中编译依赖版本不固定、环境变量设置不明确等一系列“坑点”,使得部署过程更加顺畅。
1. 准备 Cloudflare 密钥和 ID
你需要从 Cloudflare 仪表板中获取并记录以下三个关键信息:
账户 ID (
CLOUDFLARE_ACCOUNT_ID)API 令牌 (
CLOUDFLARE_API_TOKEN):创建时确保它拥有**“编辑 Cloudflare Workers”**的权限。D1 数据库 ID (
D1_DATABASE_ID):首先在 Cloudflare 中创建一个 D1 数据库。
2. 代码库配置与构建
Fork 优化后的仓库: 推荐 Fork 原作者二改后的优化版本(例如:
afoim/warden-worker)。添加机密环境变量: 在你 Fork 的 GitHub 仓库设置中,将上述三个 ID 以 Secret 变量的形式添加进去。
运行构建: 进入 GitHub Actions,运行
Build工作流,等待其自动编译 Rust 代码并部署到你的 Worker。
3. 数据库和 Worker 配置
如果构建完成后 D1 数据库中的表是空的,需要手动初始化:
找到仓库中
warden-worker/sql/schema.sql文件。在 Cloudflare D1 界面中,依次执行 SQL 块内容进行建表操作。
最后,进入你的 Worker 配置界面:
添加自定义域: 由于 Cloudflare Worker 默认域名在国内访问可能受限,强烈建议绑定一个自定义域名。
添加变量与机密: 设置以下三个环境变量(注意不要有空格):
ALLOWED_EMAILS:你允许注册的邮箱地址。JWT_SECRET:一个随机生成的长字符串作为密钥。JWT_REFRESH_SECRET:另一个随机生成的长字符串作为刷新密钥。
4. 开始使用
配置完成后,打开你手机或电脑上的 Bitwarden 客户端软件:
选择自托管选项。
输入你绑定的自定义域名。
创建你的账号,即可开始使用你的私有密码服务!
重要提示: 请注意,一旦设置了密码,根据项目的特性,将无法更改。
总结
warden-worker 项目为密码管理爱好者提供了一条极具吸引力的自托管新路径。它充分利用了边缘计算的优势,在保证服务私密性的同时,几乎实现了零成本部署。如果你对 Serverless 和个人数据安全感兴趣,不妨依照原页面的详细教程,亲自尝试部署你的专属密码保管员吧!