fix(admin-frontend): 补齐独立前端容器的 api 代理
为 Caddy 增加 /api 到后端 web 服务的反向代理, 避免独立静态前端容器无法直连 Laravel API。 同时同步知识库上下文,记录 compose 分支使用 XBOARD_BACKEND_UPSTREAM=http://web:7001 的默认约定。
This commit is contained in:
@@ -7,6 +7,11 @@
|
||||
- 方案: [202604242245_admin-frontend-node-pagination-batch-edit](archive/2026-04/202604242245_admin-frontend-node-pagination-batch-edit/)
|
||||
- 决策: admin-frontend-node-pagination-batch-edit#D001(节点分页采用前端本地分页), admin-frontend-node-pagination-batch-edit#D002(批量修改范围固定为已勾选节点), admin-frontend-node-pagination-batch-edit#D003(置顶节点复用 server/manage/sort)
|
||||
|
||||
### 快速修改
|
||||
- **[admin-frontend]**: 为独立 `xboard-admin-frontend` 容器补齐 `/api` 反向代理到后端 `web` 服务的链路,并在 compose 分支 `admin` 服务中显式声明 `XBOARD_BACKEND_UPSTREAM=http://web:7001`;同时把镜像名对齐到当前 fork `ghcr.io/micah123321/*` — by yinjianm
|
||||
- 类型: 快速修改(无方案包)
|
||||
- 文件: admin-frontend/Caddyfile:1-17, E:/code/php/Xboard-new-compose/compose.yaml:1-26
|
||||
|
||||
## [0.5.8] - 2026-04-24
|
||||
|
||||
### 新增
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
- 管理端前端位于 `admin-frontend/`
|
||||
- `admin-frontend` 现支持通过 `ADMIN_BUILD_OUT_DIR` 覆写构建输出目录:仓内默认仍写到 `../public/assets/admin`,容器构建可切到独立 `dist`
|
||||
- 前端容器化运行采用 `admin-frontend/Dockerfile`(`Node 20 + Caddy` 多阶段构建),静态站点入口重定向到 `/assets/admin/`
|
||||
- 前端容器会通过 `XBOARD_BACKEND_UPSTREAM` 把 `/api` 反向代理到后端 `web` 服务;compose 分支当前默认值为 `http://web:7001`
|
||||
- GHCR 前端镜像发布工作流位于 `.github/workflows/admin-frontend-docker-publish.yml`,镜像名为 `ghcr.io/<owner>/xboard-admin-frontend`
|
||||
- 管理端 API 通过 `window.settings.secure_path` 或 `VITE_ADMIN_PATH` 解析 `/api/v2/{secure_path}` 前缀
|
||||
- 登录接口复用 `/api/v2/passport/auth/login`
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
|
||||
- 默认构建输出仍为主仓 `public/assets/admin`;当 `ADMIN_BUILD_OUT_DIR` 存在时,构建输出需切换到外部指定目录,供容器镜像独立打包
|
||||
- 独立容器运行时通过 `Caddyfile` 把根路径重定向到 `/assets/admin/`,避免当前 `base: '/assets/admin/'` 资源前缀失效
|
||||
- 独立容器运行时会把 `/api` 反向代理到 `XBOARD_BACKEND_UPSTREAM`,compose 分支默认指向 `http://web:7001`,确保前端静态容器仍能直连 Laravel 后端
|
||||
- 前端 GHCR 发布链路与 Laravel 主应用发布链路分离,避免把静态前端构建耦合进现有 PHP 镜像工作流
|
||||
- 登录成功后优先跳转 `redirect` 指定路由,否则回到 `/dashboard`
|
||||
- 受保护路由在未登录时会自动附加 `redirect` 查询参数
|
||||
|
||||
@@ -1,26 +1,25 @@
|
||||
# 恢复快照
|
||||
|
||||
## 主线目标
|
||||
完成 `admin-frontend` 节点管理页的分页、单节点置顶、仅对已勾选节点生效的批量修改,以及父/子节点筛选。
|
||||
完成 `admin-frontend` 独立 Docker 镜像、GHCR 自动发布、compose 分支 `admin` 服务接入,以及 `admin -> web` 的 `/api` 反向代理链路。
|
||||
|
||||
## 正在做什么
|
||||
当前任务已完成,已完成代码修改、构建验证、知识库同步与方案包归档。
|
||||
当前任务已完成,已补齐 `xboard-admin-frontend` 到后端 `web` 服务的 `/api` 反向代理,并整理最终变更与验证证据。
|
||||
|
||||
## 关键上下文
|
||||
- 用户在确认阶段选择了“1”,确认批量修改范围仅限已勾选节点,不扩展到当前筛选结果。
|
||||
- 节点页已补齐本地分页、父/子节点筛选、跨分页勾选恢复、行级“置顶节点”和批量修改弹窗。
|
||||
- 批量修改只会更新 `host / group_ids / rate`,不会改动端口、显隐状态和协议配置。
|
||||
- Laravel `ManageController::batchUpdate` 已扩展支持 `host / rate / group_ids` 三个字段。
|
||||
- 本轮方案包已归档到 `.helloagents/archive/2026-04/202604242245_admin-frontend-node-pagination-batch-edit/`。
|
||||
- 用户指出此前方案遗漏了 `xboard-admin-frontend` 访问后端 API 的回源链路,需要补齐到后端 `web` 服务。
|
||||
- `admin-frontend/Caddyfile` 现已增加 `/api` 反向代理,回源地址由 `XBOARD_BACKEND_UPSTREAM` 控制,默认值为 `http://web:7001`。
|
||||
- 独立 worktree `E:\code\php\Xboard-new-compose` 的 `compose.yaml` 已补充 `admin` 服务环境变量 `XBOARD_BACKEND_UPSTREAM=http://web:7001`,并把镜像名对齐到当前 fork `ghcr.io/micah123321/*`。
|
||||
- 本轮已同步知识库:`.helloagents/CHANGELOG.md`、`.helloagents/context.md`、`.helloagents/modules/admin-frontend.md`。
|
||||
|
||||
## 下一步
|
||||
当前任务已完成;如继续同一业务域,可在节点管理基础上补批量显隐、批量启停、批量重置流量或后端真实分页。
|
||||
当前任务已完成;如要继续,可下一步提交/推送 `master` 与 `compose` 两个工作树中的改动,或继续把 `ws-server`、命名卷和最终部署文档一并对齐到你的实际 compose 模板。
|
||||
|
||||
## 阻塞项
|
||||
(无)
|
||||
- 本地缺少 `docker` 与 `caddy` 可执行文件,因此本轮未执行 `docker build` / `caddy validate`,仅完成了 compose YAML 语法验证与代码级自检。
|
||||
|
||||
## 方案
|
||||
archive/2026-04/202604242245_admin-frontend-node-pagination-batch-edit
|
||||
无(R1 快速修正)
|
||||
|
||||
## 已标记技能
|
||||
frontend-design, hello-ui, hello-verify
|
||||
hello-verify
|
||||
|
||||
Reference in New Issue
Block a user