# admin_client **Repository Path**: seantone/admin_client ## Basic Information - **Project Name**: admin_client - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-27 - **Last Updated**: 2026-08-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Seantone Admin Client 基于 [vue-vben-admin](https://github.com/vbenjs/vue-vben-admin) 的管理后台前端,对接 `mrico_server/admin_server`(Kratos + Fiber)。 **服务名:** `admin_client` **镜像:** `registry.seantone.cn/seantone/admin_client:` **访问域名:** `admin.seantone.com` **运行时:** [static-web-server](https://static-web-server.net/) 2.42-alpine(容器内监听 `:8080` 提供静态资源;`/api` 由 Traefik 反代到 `admin_server:9082`) ## 开发 ```bash cd admin_client corepack enable pnpm install pnpm dev ``` 默认开发地址:`http://localhost:5666` Vite 已将 `/api` 代理到 `http://127.0.0.1:9082`(`admin_server`)。 也可使用 `pnpm dev:antd`(与 `pnpm dev` 相同)。 ## 默认账号 首次启动 `admin_server` 且数据库无用户时,会自动创建: - 用户名:`admin` - 密码:`admin123` 也可在 `admin_server` 配置 `admin.accounts` 使用 bcrypt 哈希账号。 ## 主要功能 - JWT 登录(兼容 vue-vben-admin `/api/auth/*`) - 动态菜单 `/api/menu/all` - 系统菜单管理 `/api/system/menu/*` - 客户端 Consul 配置管理 `/api/admin/config/modules/*` ## 本地构建 ```bash pnpm build:antd ``` 本地 Docker: ```bash docker build -f scripts/deploy/Dockerfile -t admin_client:local . docker run --rm -p 8080:8080 admin_client:local # 浏览器打开 http://localhost:8080(仅静态页;/api 请用 pnpm dev 或经 Traefik 访问) ``` ## Nomad 部署 Job 文件:[`admin_client.hcl`](admin_client.hcl) - 通过 Traefik 暴露:`admin.seantone.com` - 容器内 static-web-server 提供 SPA 静态资源 - Traefik 将同域 `/api` 反代到 `admin_server`(默认 `http://host.docker.internal:9082`,可用 `-var api_upstream=...` 覆盖) - 资源:`cpu=200` / `memory=128` 手动提交示例: ```bash export NOMAD_ADDR=http://8.134.214.199:4646 export NOMAD_TOKEN= nomad job run \ -var='image=registry.seantone.cn/seantone/admin_client:' \ admin_client.hcl ``` 常用运维命令: ```bash nomad job status admin_client nomad alloc logs -f nomad job stop admin_client ``` ## Jenkins 流水线 入口:仓库根目录 [`Jenkinsfile`](Jenkinsfile)。 ### 流水线步骤 1. Checkout,生成镜像标签:`--` 2. 构建并推送镜像到 `registry.seantone.cn/seantone/admin_client:` 3. `nomad job run -var=image=...` 提交 Job 4. 通过飞书 Webhook 通知构建结果 ### Jenkins 凭据(与 homepage / mrico_server 共用) | Credentials ID | 类型 | 用途 | |----------------|------|------| | `nexus-docker-credentials` | Username/Password | 登录 Nexus 镜像仓库 | | `nomad_token` | Secret text | Nomad API Token | | `feishu-webhook-url` | Secret text | 飞书机器人 Webhook | ### 新建 Job 建议 - 类型:Pipeline - Definition:Pipeline script from SCM - Script Path:`Jenkinsfile` - 触发:按需手动构建,或绑定 Git webhook ## 推荐操作顺序 ### 首次上线 1. 确认 DNS:`admin.seantone.com` 指向 Traefik 入口 2. 确认 `admin_server` 已在 Nomad 运行(静态端口 `9082`) 3. 用 Jenkins 构建并部署 4. 检查 `nomad job status admin_client` 与站点访问 ### 日常更新 提交代码后跑 Jenkins 流水线即可(自动换新镜像 tag 并滚动部署)。