Files
fuwari/src/content/posts/warden-worker.md
二叉树树 cd0baf41ed docs: 更新warden-worker文档中的注意事项
更新了文档中的注意事项部分,添加了关于电脑端浏览器插件支持的说明,并修正了格式问题
2026-01-09 19:23:45 +08:00

4.2 KiB
Raw Blame History

title, published, description, image, tags, draft, lang
title published description image tags draft lang
你可曾想过直接将BitWarden部署到Cloudflare Worker 2026-01-09T17:00:52 warden-worker就是这样一个项目它将Rust编译为WASM然后部署到Cloudflare Worker无需VPS无需家里云只需点点鼠标就可免费用上自己的密码托管 ../assets/images/warden-worker.png
Cloudflare
Bitwarden
false

原理

项目参考开源的 dani-garcia/vaultwarden: Unofficial Bitwarden compatible server written in Rust, formerly known as bitwarden_rs 将Rust源码编译为WASM以支持在Cloudflare Worker上运行。其中Worker负责REST APID1负责存储加密后的数据

实战

打开Cloudflare https://dash.cloudflare.com/

登录后复制这里的 账户ID CLOUDFLARE_ACCOUNT_ID

右上角进入配置文件

左上角选择API令牌

点击创建令牌

选择 编辑Cloudflare Workers

创建后 复制API 令牌 只会展示一次CLOUDFLARE_API_TOKEN

回到主页进入D1数据库

选择 创建数据库

创建完成后,进入,复制 D1 数据库 IDD1_DATABASE_ID

由于原项目坑点太多依赖不固定版本导致编译报错必须设置的环境变量不写白SQL初始化遇到问题直接跳过

这里我Fork并二改了一个我的版本跟着我的步骤走包你成功

Fork我的仓库别忘了点个 Star afoim/warden-worker: A Bitwarden-compatible server for Cloudflare Workers

在仓库设置中添加上述三个机密环境变量

  • CLOUDFLARE_ACCOUNT_ID
  • CLOUDFLARE_API_TOKEN
  • D1_DATABASE_ID

点击 Action运行Build工作流

Build结束全绿

打开Cloudflare D1查看数据库表

如果这里是空的,我们就手动建表

查看这个文件 warden-worker/sql/schema.sql at main · afoim/warden-worker

依次将这3个SQL块进行执行一定要依次不能一把梭。每执行一次你应该都能看到新表的出现

进入Workers

进入 warden-worker

先添加 自定义域 ,填你的域名,因为 Worker 默认给的域名国内无法访问

再添加机密环境变量 (注意不要有空格)

  • ALLOWED_EMAILS your-email@example.com
  • JWT_SECRET 随机的长字符串
  • JWT_REFRESH_SECRET 随机的长字符串

Caution

必须使用Wrangler CLI命令添加机密环境变量 wrangler secret put JWT_SECRET 这样添加的环境变量不会在新的部署中被覆盖

此时打开手机上的 BitWarden 软件,在你的自托管上创建账号即可(注意:密码一经设置将无法更改)

Caution

值得注意的是该项目似乎仅实现了手机端的大部分API而针对于电脑浏览器插件使用的API暂未支持我们目前正在尝试用AI补全... Just a moment...

更多注意事项请参阅仓库README

已支持电脑端浏览器插件