Dawvia 的整体架构:Cursor 扩展、后端守护进程、统一 Portal 与开发者 Console,以及让营销、应用与管理面彼此物理隔离的设计不变量。
架构总览
Dawvia 由若干职责清晰、边界稳定的部件组成。每个部件只做一件事,彼此通过版本化接口通信, 因此可以各自独立部署、扩容与排障。
核心部件
- Cursor 扩展 — IDE 内的操作面。负责账号切换、发起任务与 worktree,并把编辑器接入账号池。
从快速开始上手。
- 后端守护进程 — 单一 Go 进程,对外暴露
/api/*,托管账号池并执行
额度均衡。它是纯后端,自身不服务站点。
- 统一 Portal — 部署在你自有域名上的对外站点。一次部署即按路径前缀串联营销、认证、个人区、
企业管理与平台管理。
- 开发者 Console — 以
/console前缀提供的运维操作面,采用 hash 路由,构建物与 Portal
物理分离。
- 移动端 App — iOS/Android 客户端,复用同一身份与 API,随时处理任务、连接与通知。
隔离不变量
一组不变量由代码与构建强制,而非仅靠约定:
- Portal 绝不注册任何
/console下的路由;两者是独立产物,由反向代理在边缘拼接。 - Portal 只依赖身份会话,绝不依赖 Console 内部令牌。
- 个人、企业与平台区均需有效身份会话;匿名访问会被重定向到登录。
- 营销与文档可被索引;应用与管理面为
noindex,敏感页永不进入搜索引擎。完整边界模型见
请求路径
浏览器 -> 反向代理 -> Portal (静态:营销、认证、/app、/org、/platform)
-> Console (/console 下的运维 SPA)
-> 后端守护进程 (/api/*)
只有反向代理能看到全部前缀;其后的每个部件都能按自己的节奏构建、发布与回滚。
部署拓扑
- 本地一键 — 安装脚本构建站点、守护进程与扩展,再用本地反向代理统一托管,首页即刻可达。
- 独立站点 — Portal 产出纯静态文件,可托管于任意静态服务器或 CDN,独立于后端发布。
- 服务器 — 部署脚本同时构建静态站点与守护进程并一起发布,并提供仅前端模式实现零停机更新。