cloudflare部署vaultwarden
发表于|更新于|个人diy
|浏览量:
终极生产力:基于 Cloudflare Workers + D1 数据库搭建私人密码库 (Vaultwarden)
在追求数字主权的道路上,密码管理是第一站。传统的 VPS 部署 Vaultwarden 虽然强大,但仍需面对系统维护、安全补丁和服务器成本。今天,我们将利用 Cloudflare Workers 结合其原生的 D1 关系型数据库,实现一个真正的“零成本、零维护、高可用”的行业级密码管理方案。
本教程基于开源项目 warden-worker,旨在为你提供最细致的落地指南。
1. 为什么选择 Warden-Worker?
相比于传统的 Docker 部署或基于 KV 存储的 Worker 版本,此方案具备以下优势:
- 原生关系型数据库:使用 Cloudflare D1 (基于 SQLite),数据结构更严谨,查询效率更高。
- 全边缘运行:全球节点响应,无论你在哪,同步速度都是毫秒级。
- 极致白嫖:完全运行在 Cloudflare 的免费额度内(Workers + D1 + Pages)。
- 简单易用:无需安装复杂的开发环境,通过网页端和简单的 CLI 即可完成。
2. 适用人群
- 极简主义者:不想维护 Linux 服务器和 Docker 环境。
- 多端同步需求者:需要在 iOS/Android/Chrome/Windows 等多端无缝同步密码。
- 技术进阶用户:对 Serverless 架构感兴趣,希望拥有一个私密且受控的 API 服务。
3. 具体搭建教程
第一步:克隆项目与环境准备
- Fork 项目:前往 qaz741wsd856/warden-worker 点击 Fork 到你的账户。
- 准备 Cloudflare 账号:登录控制台,获取你的
Account ID。
第二步:创建 D1 数据库
- 在 Cloudflare 控制台导航至 Workers & Pages -> D1。
- 点击 Create database -> Dashboard。
- 数据库名称建议填写
warden,点击创建。 - 记下该数据库的
ID。
第三步:修改配置文件
在你的 GitHub Fork 项目根目录下,找到 wrangler.toml,修改以下部分:
1 | [[d1_databases]] |
第四步:部署 Worker
你可以选择使用 GitHub Actions 自动部署(推荐),也可以在本地使用 wrangler 部署。
使用 GitHub Actions:
- 在 GitHub 仓库设置中,进入 Settings -> Secrets and variables -> Actions。
- 添加
CLOUDFLARE_API_TOKEN(在 Cloudflare 个人资料中生成,需具备 Workers 编辑权限)。 - 添加
CLOUDFLARE_ACCOUNT_ID。 - 运行 Actions,代码将自动部署至 Cloudflare Workers。
第五步:初始化数据库
部署成功后,你需要初始化数据库表结构。你可以通过 Cloudflare 控制台的 D1 控制台执行项目中的 schema.sql,或者利用项目的初始化接口(如果存在)。
第六步:配置前端 UI
- 你可以使用项目提供的预编译前端,通过 Cloudflare Pages 进行托管。
- 将 Pages 的环境变量
BASE_URL指向你 Worker 的域名。 - 访问域名,你将看到熟悉的 Bitwarden 登录界面。
4. 风险评估:数据存在 Cloudflare 上安全吗?
这是每一个极客都会问的问题。
4.1 核心防护:端到端加密 (E2EE)
Vaultwarden/Bitwarden 的安全性不依赖于服务器的安全性。
- 加解密位置:所有加解密操作均在你的浏览器插件或手机 App 中完成。
- 数据状态:发送到 Cloudflare D1 数据库的数据是经过你“主密码”派生的密钥加密后的密文。
- 主密码:你的主密码永远不会发送给 Cloudflare。
结论:即便 Cloudflare 的数据库被攻破,黑客拿到的也只是 AES-256 加密的数据库文件,在没有你主密码的情况下,破解几乎是不可能的。
4.2 平台风险
- 服务停摆:如果 Cloudflare 账号被封禁,你可能无法访问服务。
- 应对方案:定期通过 Bitwarden 客户端导出
.json加密备份文件,存放在本地 U 盘。
5. 行业级安全加固建议
- 限制注册:
第一个账号注册完成后,立即在 Worker 的环境变量中设置SIGNUPS_ALLOWED = false,防止他人注册。 - 强制 2FA:
在 Cloudflare 账号上开启硬件密钥(Yubikey)保护。 - WAF 防护:
在 Cloudflare 规则中,禁止特定国家以外的 IP 访问你的密码库域名。 - 管理后台保护:
如果启用了管理页面,务必设置复杂的ADMIN_TOKEN,并利用 Cloudflare Access 增加一层邮箱验证。
结语
基于 warden-worker 的方案,标志着私人密码管理进入了 “无服务器时代”。它不仅极大降低了门槛,更利用云巨头的边缘网络实现了商业级的稳定性。只要你守护好自己的主密码,这就是目前最安全、最优雅的密码管理方式。
文章作者: diaopanda
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 diaopanda!
