* docs: improve deployment troubleshooting docs * docs: fix GitHub casing in FAQ * docs: clarify subdomain address creation
6.2 KiB
Cloudflare workers 后端
[!warning] 注意
worker.dev域名在中国无法访问,请自定义域名
-
点击
Compute (Workers)->Workers & Pages->Create -
选择
Worker,点击Create Worker, 修改名称然后点击Deploy -
回到
Workers & Pages,找到刚刚创建的 worker,点击Settings->Runtime, 修改Compatibility flags, 手动输入增加nodejs_compat, 兼容日期也需要大于图片中的日期。Important
nodejs_compat必须添加成功后再部署worker.js。如果缺少该兼容标记,常见错误是No such module "path"、No such module "node:stream",前端也可能只显示Network Error。 -
下载 worker.js
-
回到
Overview,找到刚刚创建的 worker,点击Edit Code, 删除原来的文件,上传worker.js, 点击DeployNote
上传需要先点击左侧菜单的 Explorer, 在文件列表的窗口里点击鼠标右键,在右键菜单里找到
Upload, 请参考下面的截图。不要在编辑器中手动创建\worker.js这类带反斜杠的路径;如果保存时报No file system handle registered (\worker.js),请回到 Explorer 文件列表右键上传根目录的worker.js,然后再点击Deploy。参考: issues156
-
点击
Settings->Variables and Secrets, 如图所示添加变量[!NOTE] 注意 更多变量的配置请查看 worker变量说明
注意字符串格式的变量的最外层的引号是不需要的
对于
USER_ROLES请配置为此格式[{"domains":["awsl.uk","dreamhunter2333.xyz"],"role":"vip","prefix":"vip"},{"domains":["awsl.uk","dreamhunter2333.xyz"],"role":"admin","prefix":""}]建议配置的变量列表
变量名 类型 说明 示例 PREFIX文本 新建邮箱名称默认前缀,不需要前缀可不配置 tmpDOMAINSJSON 用于临时邮箱的所有域名, 支持多个域名 ["awsl.uk", "dreamhunter2333.xyz"]JWT_SECRET文本/Secret 用于生成 jwt 的密钥, jwt 用于登录以及鉴权 xxxADMIN_PASSWORDSJSON admin 控制台密码, 不配置则不允许访问控制台 ["123", "456"]ENABLE_USER_CREATE_EMAIL文本/JSON 是否允许用户创建邮箱, 不配置则不允许 trueENABLE_USER_DELETE_EMAIL文本/JSON 是否允许用户删除邮件, 不配置则不允许 true -
点击
Settings->Bindings, 点击Add Binding, 名称如图,选择刚刚创建的 D1 数据库,点击Add Binding[!NOTE] 重要 注意此处
D1 Database的绑定名称必须为DB,必须是大写。绑定名写成db、DATABASE或其他值时,/open_api/settings、/admin/*等接口会异常,前端常见表现是页面初始化报map错误或Network Error。 -
点击
Settings->Triggers, 这里可以添加自己的域名,你也可以使用自动生成的*.workers.dev的域名。记录下这个域名,后面部署前端会用到。Note
打开
worker的url,如果显示OK说明部署成功打开
/health_check,如果显示OK说明部署成功打开
/open_api/settings,如果返回 JSON,说明前端初始化依赖的公开配置接口可用。部署 Pages 前建议先确认这个地址正常。 -
如果你要启用注册用户功能,并需要发送邮件验证,则需要创建
KV缓存, 不需要可跳过此步骤[!NOTE] 重要 如果你要启用注册用户功能,并需要发送邮件验证,则需要创建
KV缓存, 不需要可跳过此步骤注意此处
KV的绑定名称必须为KV点击
Storage & Databases->KV->Create Namespace, 如图,点击Create Namespace然后点击
Settings->Bindings, 点击Add Binding, 名称如图,选择刚刚创建的 KV,点击Add Binding -
Telegram Bot 配置
Note
如果不需要 Telegram Bot, 可跳过此步骤
请先创建一个 Telegram Bot,然后获取
token,将token添加到Variables and Secrets中, 变量名称:TELEGRAM_BOT_TOKEN -
如果你想要使用 admin 页面中的定时任务清理邮件,需要到
Settings->Trigger Events->Cron Triggers中添加定时任务.Note
选择
cron表达式,输入0 0 * * *(此表达式表示每天午夜运行),点击Add增加。请根据您的需求调整此表达式。只在 admin 页面开启自动清理配置还不够,必须添加 Cron Trigger 后 Worker 的
scheduled事件才会运行。D1 到达容量上限后会出现D1_ERROR: Exceeded maximum DB size,新邮件无法继续写入,表现为“突然收不到邮件;删除几封后恢复”。













