feat(gui): dockerized Windows cross-build (win-builder image + one-shot dist script) + GUI/backend scenario docs

This commit is contained in:
2026-08-16 12:49:55 +08:00
parent 47f3b44d92
commit 8843b8cca5
6 changed files with 213 additions and 8 deletions

View File

@ -307,6 +307,18 @@ zen 按 User-Agent 指纹识别官方客户端并分流——非官方 UA 的请
一键启停、系统托盘常驻、开机自启、静默启动,内容区一比一内嵌完整 WebUI
(状态/对话/密钥/优先级/源/适配器 六个页面,免登录)。服务器用户继续使用纯 Go 二进制。
### 选择 GUI 还是纯后端
| 场景 | 推荐 | 理由 |
| ------ | ------ | ------ |
| 服务器 / 内网网关 / Docker 部署 / 无人值守常驻 | **纯后端**(单二进制) | 极轻量(~10MB、~15MB RSS零 GUI 依赖,适合 systemd/容器托管、远程管理 |
| 个人桌面日常使用 / 多设备内网共享 | **GUI**Electron | 免登录内嵌 WebUI、系统托盘一键启停、开机自启、静默后台适合不懂命令行的使用者 |
| Windows 桌面 | **GUI** | 纯后端在 Windows 上需自行注册服务GUI 提供原生托盘/自启体验 |
| CI 一键出三平台安装包 | **GUI 打包脚本** | `make gui-*` 系列出 deb/AppImage/NSIS可进发行流水线 |
两者完全同源GUI 内嵌的就是纯后端的同一份 `llmsproxy` 核心LuaJIT 版),
配置/适配器格式完全一致,可随时互换。
### 构建与运行
```bash
@ -314,12 +326,32 @@ cd cmd/gui
npm install
make gui # 或 npm run dev —— 开发运行(需先 make build 生成 bin/llmsproxy
make gui-deb # 本机构建 deb分享给其它 Linux 用户)
make gui-dist # 构建 deb + AppImage
make gui-win # 构建 Windows nsis 安装包(需先 apt install gcc-mingw-w64-x86-64electron-builder 用 wine
make gui-dist # 构建 deb + AppImagelinux
make gui-win # 构建 Windows nsis 安装包(本机 mingw + wine
make gui-win-docker # 构建 Windows nsis 安装包(全 docker 自足,无需本机 mingw
make gui-dist-dir # 仅解包产物(调试用,不产安装包)
```
产物在 `cmd/build/gui-dist/``ModelRouter-1.0.0.AppImage``modelrouter-gui_1.0.0_amd64.deb`
`modelrouter-gui Setup 1.0.0.exe`win,需 mingw 交叉编译核心后。rpm 需系统 `rpmbuild`
产物在 `cmd/build/gui-dist/``ModelRouter-1.0.0.AppImage`
`modelrouter-gui_1.0.0_amd64.deb``ModelRouter Setup 1.0.0.exe`win。rpm 需系统 `rpmbuild`
#### Windows 打包docker 固化方案,推荐)
`make gui-win-docker` 一步完成:交叉编译核心 + NSIS 打包,宿主机**无需安装 mingw**。
- 构建镜像:`cmd/gui/docker/win-builder/Dockerfile``golang:1.25` + mingw-w64 +
预编译 LuaJIT windows 版 `lua51.dll` 与 import lib。LuaJIT 源码取自 gitcode
镜像国内可达github 兜底Go 依赖走 `https://goproxy.cn`
- 核心编译:`cmd/gui/scripts/win-core-docker.sh` —— 在容器内产出
`cmd/gui/bin/{llmsproxy.exe,lua51.dll}`
- 一键发布:`cmd/gui/scripts/dist-win-docker.sh` —— 核心编译后调用
electron-builder宿主需有 `wine` 用于 NSIS
- 首次运行自动构建 `modelrouter/win-builder` 镜像;已存在则直接复用。
```bash
# 全 Windows 发布(核心重编 + NSIS
make gui-win-docker
```
### 特性