Files
sub2api-cn-relay-manager/deploy
phamnazage-jpg 3a9061e11d style(portal): add design system + shared layer (portal.css/portal.js/admin-common.css shim)
- portal.css: 777-line real design system (Linear/Vercel 信息建筑派)
  * tokens: spacing 4/8/12/16/24/32/48, type 12/13/14/15/17/20/24/32/44
  * colors: ink/paper/accent/success/warn/danger × 50/100/500/900
  * teal #14b8a6 1:1 aligned with host sub2api Vue/Tailwind
  * dark-first; light override for public portal
  * components: page-hero, stat-card, card, status, pill, btn-primary,
    toast-host, empty, skeleton, drawer, tabs
- portal.js: window.Sub2ApiPortal — toast, lucide 1.75px stroke SVG
  icon registry (shield/group/activity/route/health/account/provider/
  import/check/x/alert/info/copy/edit/trash/plus/refresh/...),
  copyToClipboard, theme auto/dark/light, drawer, renderModernAdminNav
- admin-common.css: 4KB legacy shim — maps old class names
  (.topnav/.primary/.secondary/.ghost/.danger/.metric/.statusbar/.stat/
  .eyebrow/.hero-points/.page-hero__eyebrow/.shell/.fade-in/.topline/
  .chip/.tag/.mono/.meta-card/.meta-label/.status-pill/.inline-code/
  .tone-*) onto new tokens without breaking admin-common.js nav contract

Evidence:
- bash scripts/test/test_tksea_portal_assets.sh → PASS (70+ string assertions)
- bash scripts/test/verify_frontend_smoke.sh → PASS (chromium headless 7 pages)
2026-06-03 09:10:45 +08:00
..

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/runsGET /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