4.2 KiB
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 |
|
false |
原理
项目参考开源的 dani-garcia/vaultwarden: Unofficial Bitwarden compatible server written in Rust, formerly known as bitwarden_rs 将Rust源码编译为WASM以支持在Cloudflare Worker上运行。其中Worker负责REST API,D1负责存储加密后的数据
实战
打开Cloudflare https://dash.cloudflare.com/
登录后复制这里的 账户ID (CLOUDFLARE_ACCOUNT_ID)

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

创建完成后,进入,复制 D1 数据库 ID(D1_DATABASE_ID)
由于原项目坑点太多(如:依赖不固定版本导致编译报错,必须设置的环境变量不写白,SQL初始化遇到问题直接跳过)
这里我Fork并二改了一个我的版本,跟着我的步骤走,包你成功!
Fork我的仓库(别忘了点个 Star ) afoim/warden-worker: A Bitwarden-compatible server for Cloudflare Workers
在仓库设置中添加上述三个机密环境变量
查看这个文件 warden-worker/sql/schema.sql at main · afoim/warden-worker
依次将这3个SQL块进行执行(一定要依次,不能一把梭)。每执行一次你应该都能看到新表的出现


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

再添加机密环境变量 (注意不要有空格)
ALLOWED_EMAILSyour-email@example.comJWT_SECRET随机的长字符串JWT_REFRESH_SECRET随机的长字符串
Caution
必须使用Wrangler CLI命令添加机密环境变量,如:
wrangler secret put JWT_SECRET这样添加的环境变量不会在新的部署中被覆盖
此时打开手机上的 BitWarden 软件,在你的自托管上创建账号即可(注意:密码一经设置将无法更改)




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














