# deploy 目录说明

日期：2026-05-27

`deploy/` 用来存放**部署目标会直接消费**的静态资产或配置模板。

当前内容：

- `tksea-portal/index.html`
  - `https://sub.tksea.top/portal/` 的静态页面源码
- `tksea-portal/admin/index.html`
  - `https://sub.tksea.top/portal/admin/` 的管理首页
  - 统一收纳“逻辑分组 / 路由”“新增模型 / 供应商目录”和“导入供应商帐号”入口
- `tksea-portal/admin/logical-groups.html`
  - `https://sub.tksea.top/portal/admin/logical-groups.html`
  - 维护 `logical_group / public_model / route / shadow_group` 的最小运营页
- `tksea-portal/admin/providers.html`
  - `https://sub.tksea.top/portal/admin/providers.html`
  - 用现有 CRM API 做 pack/provider 浏览、preview-import、import，以及 provider manifest 草稿生成
  - 当前也可直接调用服务端 `provider_drafts` API，把 manifest 草稿持久化到 CRM SQLite，并支持更新 / 删除 / 发布到 pack 仓库
- `tksea-portal/admin/batch-import.html`
  - `https://sub.tksea.top/portal/admin/batch-import.html`
  - 结构化入口地址，当前跳转到 legacy `admin-batch-import.html`
- `tksea-portal/admin-batch-import.html`
  - `https://sub.tksea.top/portal/admin-batch-import.html` 的最小管理页
  - 直接消费 `POST /api/batch-import/runs` 与 `GET /api/batch-import/runs/*`
- `tksea-portal/nginx.sub.tksea.top.conf.example`
  - `sub.tksea.top` 上 portal 路由与代理示例
  - 当前同时包含 `/portal-proxy/` 宿主用户态代理与 `/portal-admin-api/` CRM 管理态代理

它和 `scripts/` 的边界如下：

- `deploy/`
  - 放静态页、Nginx/Caddy/Env 模板、会被复制到目标机上的文件
- `scripts/`
  - 放执行复制、部署、reload、验收的脚本

当前对应关系：

- 资产：`deploy/tksea-portal/*`
- 部署脚本：`scripts/deploy/deploy_tksea_portal.sh`
- 资产回归：`scripts/test/test_tksea_portal_assets.sh`
