Skip to content

DOMAINS — Agentaily 域名体系(真相源)

2026-06-19 老板定:全线收敛到这一个 monorepo。 域名按三层职责切清:官网 / 平台应用 / 用户发布的制品。 所有历史子域(interviewer / xiaoxi / discovery / cast / xhs / sso / xiaojian / xiaoxiu / akong / xq … 及其阿里云 OSS/FC 后端)、form-design 独立产品(域 + CF 项目 + worker + D1)全部退役删除。 域名注册留阿里云,DNS 迁 Cloudflare;托管一律 Cloudflare;CF 资源命名一律 agentaily-* 前缀。

三层(每层一个清晰职责)

域名是什么托管 / CF 项目
① 官网www.agentaily.commarketing 落地页(apex agentaily.com → 跳 www)Cloudflare Pages agentaily-website
② 平台应用chat.agentaily.com聊天 × 万物 工作台(authoring)+ 同源 /api/*Cloudflare Pages agentaily①(live)
用户发布的制品(UGC)**<slug>.form.agentaily.com**②③陌生人访问的成品页;服务用户写的 HTML(UGC)Worker agentaily-publish(*.form wildcard + for SaaS)

① 主应用现 live 为 CF Pages 项目 agentaily(agentaily.pages.dev)。CF Pages 不支持改名(改名=重建+重配 secret), 故保留项目名 agentaily,只给它加自定义域 chat.agentaily.com;agentaily-* 前缀这条落到要动的官网(official-website → agentaily-website)。 ② 发布制品按垂直分组:<slug>.<vertical>.agentaily.com(x.form.agentaily.comdeck.slides.agentaily.com…);每个垂直一条 wildcard *.form.agentaily.com / *.slides.agentaily.com。 ③ UGC 也支持用户自带域名(Cloudflare for SaaS)—— 见下。

③ 发布制品 = UGC(用户自带域名 + <slug>.form.agentaily.com)

发布的成品是 UGC —— 地址归用户。两条:

(主)用户自带域名 —— Cloudflare for SaaS(custom hostnames): 用户把自己的域名(如 form.acme.com)CNAME 过来 → 我们按请求的 Host 查到对应发布 app、自动签发证书、服务它。 后端一张 custom_hostnames 表(hostname → projectId)。

(默认)<slug>.<vertical>.agentaily.com:x.form.agentaily.com(projects.slug + 项目 type);wildcard 每个垂直一条(*.form.agentaily.com …)。www/chat/mail 在 apex 一层、与 UGC 命名空间不冲突。

安全(UGC 挂 agentaily.com 子域下,必须守住这条): 平台会话用 Bearer + localStorage(per-origin),UGC 子域读不到 chat 的 localStorage;铁律:平台绝不设 Domain=.agentaily.com 的 cookie (只 host-only / Bearer)—— 否则 *.agentaily.com 下的 UGC 能读/注入平台会话。守住即隔离。

前置:把 agentaily.com 的 DNS 从阿里云迁到 Cloudflare(nameserver 切 CF;注册仍留阿里云)—— 才能原生支持 *.form.agentaily.com wildcard + Cloudflare for SaaS;也契合「托管一律 Cloudflare、退役阿里云」。

✅ 运行时已建(apps/publish/ → Worker agentaily-publish):按 Host 路由 —— <slug>.<vertical>.agentaily.com(projects.slug,且 vertical 须匹配项目 type)与用户自带域名(custom_hostnames 表);自含 page、submit、query,全部同源(桥的相对 URL 直接可用,无 CORS);独立 Worker 即独立源即隔离。本地 e2e 全绿:<slug>.form.agentaily.com 与自带域名服务、apex/www/chat 404、同源提交 201。⏳ 待基础设施:*.form.agentaily.com wildcard 路由、Cloudflare for SaaS 绑定、(产品侧)发布 UI 设 slug / 加自带域名。

配套

用途域名落到
数据库D1 agentaily-dbCloudflare(应用 + 发布 Worker 共享)
发件mail.agentaily.comResend —— 迁到 agentaily 自有账号(现借用 form-design 账号),重验 SPF/DKIM
组件库 Storybookstorybook.agentaily.comCloudflare Pages agentaily-storybook.github/workflows/deploy-storybook.yml 自动部署,与官网/应用同平台,不用 GitHub Pages)。绑域两步:① CF Pages 加自定义域 storybook.agentaily.com;② DNS 在阿里云(非 CF,CF 自动建不了)→ 阿里云加 CNAME storybook → agentaily-storybook.pages.dev。流程见 skill agentaily-deploy-cf-pages-subdomain

一句话规约: 官网 www.agentaily.com · 应用 chat.agentaily.com(含 /api)· 用户制品 <slug>.form.agentaily.com + 自带域名(per-origin 隔离);历史子域与 form-design 全删;CF 新建/改名一律 agentaily-*

现状(vault 台账盘出,2026-06-19)

  • apex agentaily.com —— 阿里云注册 + 阿里云 DNS,曾是整个「聊天 × 万物」组合的共享根域。
    • root 新旧两条记录:旧 → agentaily-www(阿里云 OSS);新 → official-website-bcm.pages.dev(CF Pages)。迁移未收尾。
    • 大量历史子域(api.* → 阿里云 FC;m./admin./chat.* → 阿里云 OSS;含 staging.*)+ form-design.agentaily.com → form-design-cnw.pages.dev全部待删。
  • 主应用 —— 已 live:CF Pages 项目 agentaily(agentaily.pages.dev)+ D1 agentaily-db + Pages secrets + Google OAuth 回调 agentaily.pages.dev/api/auth/google/callback(yarnbcoder CF 账号)。
  • 其他注册域(独立品牌/备用,不挂 agentaily.com,本次不动):阿里云 aiwanna.chat clawchat.cloud guixin.chat;CF DNS agentalk.cc aigushi.cc coursegen.online jishu.fun sliro.cc vifro.cc;新网 akongtech.cn
  • 示例污染(非真域名,勿当配置):studio.agentaily.comagentaily.chat 仅是代码/文档里的占位示例。

Cutover 跑法(顺序很重要 —— 提前翻活配置会打断线上)

基础设施(账号侧:Cloudflare(DNS + Pages + Workers + for SaaS) + Google + Resend;boss 控制台,或授权我用 vault token 走 CLI/API)

  1. agentaily.com DNS 迁到 Cloudflare(nameserver 切 CF;注册留阿里云)—— 解锁 wildcard + Cloudflare for SaaS,后面全靠它。
  2. CF:给 Pages 项目 agentaily 加自定义域 chat.agentaily.com;等证书。
  3. Google OAuth:生产回调改/加 https://chat.agentaily.com/api/auth/google/callback
  4. 官网:CF 建 agentaily-website(替 official-website)→ 部署 → www.agentaily.com 指它,apex agentaily.com → 跳 www;删旧 OSS root 记录
  5. ③ 发布制品(UGC):部署 Worker agentaily-publish → 绑 *.form.agentaily.com(每垂直一条)+ Cloudflare for SaaS(自带域名)→ /f/:id 旧路径退场。
  6. Resend:mail.agentaily.com 迁 agentaily 自有账号,重验 SPF/DKIM。
  7. 删除退役资源(破坏性,逐项确认):所有历史 *.agentaily.com DNS + 对应阿里云 OSS/FC + form-design(域/CF 项目/worker/D1)。
    • form-design 退役执行进度(2026-06-20):✅ 已删 CF D1 form-design-db、CF Worker form-design-api、本地仓;✅ GH 仓 agentaily/form-design 已归档(可逆)。⏳ 未完:form-designform-design-website 两个 CF Pages 项目 —— CF 要求先在面板移除自定义域(form-design.studio.agentaily.com / form-design.agentaily.com)才能删项目(wrangler 无删 Pages 域的命令);移除域后 wrangler pages project delete <name> --yes 即可删。对应 DNS 两条一并清。
  8. vault 台账:同步删退役条目、补 www / chat / agentaily-website / agentaily-publish 记录。

仓库配置(在 1–2 步就绪后再翻,翻完一推即生效)

  1. apps/web/wrangler.toml:APP_BASE_URL = "https://chat.agentaily.com"(EMAIL_FROM 不变)。
  2. .github/workflows/deploy-website.yml:--project-name=agentaily-website(deploy.ymlagentaily 不动)。

真实 DNS/CF/Resend/Google 变更在各自控制台/API(账号侧,部分破坏性);本仓库 config/docs 以本文件为目标对齐。