服务器模块
src/serve/。职责:docdoc serve 进程的全部网络行为,基于 node:http,零 Web 框架依赖。
| 职责 | 说明 |
|---|---|
| 站点路由 | Host 域名精确匹配 → 路径前缀 /:name/ 回退 |
| 静态托管 | 从 DataDir 读取站点产物,长缓存头 |
| 内容查询 | 目录树与全文搜索,数据源为产物内的静态 JSON |
| 管理 API | /api/v1/sites 子树,Bearer Token 校验;/api/v1 其余路径留给站点内容接口(/api/v1/tree、/api/v1/document)。git 源注册的构建在独立子进程执行(docdoc build),管线为同步实现,进程内构建会阻塞事件循环导致全部站点失联,子进程方式保证构建进行时服务保持在线 |
| TLS / ACME | HTTPS 终结、HTTP-01 质询、证书热加载、HTTP 端口跳转 |
| git 轮询 | 定时对 git 部署站点执行 git ls-remote(间隔 service.gitPollSeconds,缺省 60 秒),ref 指向的提交与构建时提交(条目 sha)不同即自动重新克隆构建,产物目录经暂存构建后换入(毫秒级窗口);构建失败保留旧版本,按指数退避重试;轮询重建经注册表条目更新生效并刷新路由缓存 |
| 健康检查 | 存活与就绪探针 |
路由表缓存在进程内存,注册变更后同步刷新,启动时从注册表文件加载。
