feat: WmailHub v1.0.0 —— Cloudflare Email Workers 邮件接收与转发平台(本地可用版本)
- Console:React 19 + antd 6.6.5 前端(登录 admin/admin)+ Hono 管理 API (Nodes/Domains/Mailboxes/Emails/Webhooks/Keys/OAuth/Admin) - Node:Bun 转发节点(HMAC 签名、有限重试、心跳、结构化日志、优雅退出) - Email Worker:Cloudflare email handler + 本地联调入口 - shared:HMAC 协议(docs/04)、wmh_ Key(32 位)、AES-GCM 加密、SSRF 防护 - 邮件管线:postal-mime 解析、附件、catch-all、限额、malformed 降级、TTL 1 天 - Webhook:签名投递、指数退避重试、SSRF 校验、投递日志 - API v1 + MCP(JSON-RPC,六工具,凭据 kind 隔离) - Cloudflare OAuth:真实 + 本地 sim 模式,自动安装管线(幂等,无需手工命令) - 测试:bun test 41 例(协议安全/管线/TTL/Webhook/SSRF/MCP/OAuth/鉴权)+ Playwright UI 冒烟 - LOGO/favicon 由 codex CLI 生成
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
// WmailHub Console —— Cloudflare Workers 部署配置(生产)
|
||||
// 本地开发不需要 wrangler:直接 `bun run dev`。首次部署前:
|
||||
// 1. `bunx wrangler d1 create wmailhub` -> 填 database_id
|
||||
// 2. `bunx wrangler r2 bucket create wmailhub`
|
||||
// 3. `bunx wrangler d1 execute wmailhub --remote --file=./migrations/0001_init.sql`
|
||||
// 4. `bunx wrangler secret put SESSION_SECRET` (>=32 位随机串)
|
||||
// 5. 配置 CF_OAUTH_CLIENT_ID/SECRET/REDIRECT_URI vars(真实 OAuth;缺省走 sim)
|
||||
{
|
||||
"$schema": "node_modules/wrangler/config-schema.json",
|
||||
"name": "wmailhub-console",
|
||||
"main": "src/worker.ts",
|
||||
"compatibility_date": "2026-09-01",
|
||||
"assets": {
|
||||
"directory": "./public",
|
||||
"binding": "ASSETS",
|
||||
"not_found_handling": "single-page-application"
|
||||
},
|
||||
"d1_databases": [
|
||||
{
|
||||
"binding": "DB",
|
||||
"database_name": "wmailhub",
|
||||
"database_id": "REPLACE_AFTER_D1_CREATE"
|
||||
}
|
||||
],
|
||||
"r2_buckets": [
|
||||
{
|
||||
"binding": "R2",
|
||||
"bucket_name": "wmailhub"
|
||||
}
|
||||
],
|
||||
"triggers": {
|
||||
// TTL 清理每 15 分钟(docs/09 建议);Webhook 重试每 1 分钟
|
||||
"crons": ["*/1 * * * *"]
|
||||
},
|
||||
"vars": {
|
||||
// PUBLIC_BASE_URL 改为你的 Console 域名;OAuth redirect 需要在 Cloudflare Dashboard 登记
|
||||
"PUBLIC_BASE_URL": "https://wmailhub-console.<your-subdomain>.workers.dev"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user