feat: unify service port and add GitHub packages workflow
Build Packages / Test (push) Has been cancelled
Build Packages / Build macOS package (push) Has been cancelled
Build Packages / Build Linux package (push) Has been cancelled
Build Packages / Build Windows package (push) Has been cancelled
Build Packages / Publish GitHub Release (push) Has been cancelled

This commit is contained in:
2026-08-05 15:13:29 +08:00
parent 56db1cc642
commit 6f07849a53
7 changed files with 318 additions and 367 deletions
+31 -57
View File
@@ -1,8 +1,6 @@
# 构建说明
本项目支持打包为**单一可执行文件**,包含前后端启动后同时提供:
- **1551端口**:后端API服务
- **1552端口**:前端界面服务(自动代理API请求到1551)
本项目支持打包为**单一可执行文件**,包含前后端启动后通过一个端口同时提供前端、API和上传文件,默认端口为 **1552**
所有前端文件已嵌入到二进制文件中,无需额外文件。
@@ -123,18 +121,13 @@ cd dist
## 访问地址
启动后,服务器会同时提供两个服务:
- **后端API**: http://localhost:1551
- API接口http://localhost:1551/api
- 管理接口http://localhost:1551/api/admin
- **前端界面**: http://localhost:1552
- 主页:http://localhost:1552
- 管理界面:http://localhost:1552/admin
- 登录页面:http://localhost:1552/login
**注意**:前端会自动将 `/api` 请求代理到 `http://localhost:1551`,无需额外配置。
启动后,服务器通过统一端点提供完整服务:
- **访问端点**: http://localhost:1552
- 主页http://localhost:1552
- 管理界面http://localhost:1552/admin
- 登录页面:http://localhost:1552/login
- API接口:http://localhost:1552/api
## 1Panel 配置
@@ -142,9 +135,7 @@ cd dist
1. **上传文件**:将 `home-vue-go`Linux版本)上传到服务器
2. **配置端口**
- 后端API端口:`1551`
- 前端服务端口:`1552`
2. **配置端口**只需放行统一服务端口 `1552`
3. **运行命令**
```bash
@@ -155,8 +146,7 @@ cd dist
## 配置说明
- **后端API端口**:默认 `1551`,可通过环境变量 `API_PORT` 修改
- **前端服务端口**:默认 `1552`,可通过环境变量 `FRONTEND_PORT` 修改
- **统一服务端口**:默认 `1552`,可通过环境变量 `PORT` 修改
- **数据目录**:运行时会自动在二进制文件同目录下创建 `data` 目录
- **默认管理员账号**`admin` / `admin123`(首次启动时显示)
@@ -164,16 +154,14 @@ cd dist
**Windows:**
```bash
set API_PORT=8080
set FRONTEND_PORT=8081
home-vue-go.exe
set PORT=8080
home-vue-go.exe
```
**Linux/macOS:**
```bash
export API_PORT=8080
export FRONTEND_PORT=8081
./home-vue-go
export PORT=8080
./home-vue-go
```
## 注意事项
@@ -181,7 +169,7 @@ export FRONTEND_PORT=8081
1. **SQLite驱动**:使用纯 Go SQLite 驱动,构建无需 CGO 或 GCC
2. **前端构建**:构建时必须先运行 `npm run build` 生成dist目录,Go编译时会嵌入这些文件
3. **Go版本**:需要Go 1.23或更高版本(支持embed功能)
4. **端口占用**:确保1551和1552端口未被占用
4. **端口占用**:确保统一服务端口(默认1552未被占用
5. **单一文件**:构建完成后,只需一个可执行文件即可运行,无需其他依赖
6. **Make工具**Windows用户需要安装make工具(Git for Windows自带,或使用Chocolatey安装)
7. **跨平台编译**Windows、Linux 和 macOS amd64 目标均可直接交叉编译
@@ -222,24 +210,13 @@ choco install make
│ 包含: 后端代码 + 前端文件(嵌入) │
├─────────────────────────────────┤
│ │
┌──────────────┐ ┌──────────┐
│ 后端API服务 │ │ 前端服务 │
│ 端口: 1551 │ │ 端口:1552│
└─────────────┘ └────┬─────┘
│ │ │ │
│ │ │ │
│ └───────┬───────┘ │
│ │ │
│ API代理 │
│ (前端/api/* → 后端1551) │
└─────────────────────────────────┘
```
- **后端服务(1551)**:提供所有API接口
- **前端服务(1552**
- 从嵌入的文件系统提供前端静态文件(HTML、CSS、JS)
- 自动代理 `/api/*` 请求到后端1551端口
- 支持SPA路由
统一 HTTP 服务 :1552
/api /uploads /assets SPA
└─────────────────────────────────┘
```
- **统一服务(1552)**:直接提供 API、上传文件、嵌入的前端静态文件和 SPA 路由
## 完整构建流程示例
@@ -331,7 +308,7 @@ make build-linux
**1Panel配置:**
- 运行命令:`./home-vue-go`(或完整路径)
- 端口映射:1551(后端API)、1552(前端界面
- 端口映射:1552(统一服务端口
- 工作目录:可执行文件所在目录
**注意**SQLite 使用纯 Go 驱动,因此从 Windows 交叉构建 Linux 版本不需要额外的 C 工具链。
@@ -365,26 +342,23 @@ make clean
开发时,可以分别运行前后端:
**终端1 - 后端**
```bash
make run
#
go run main.go
# 后端运行在 http://localhost:1551
**终端1 - 统一服务**
```bash
make run
# 前端和 API 均运行在 http://localhost:1552
```
**终端2 - 前端:**
```bash
npm run dev
# 前端运行在 http://localhost:1552,自动代理API到1551
npm run dev
# 热更新页面运行在 http://localhost:5173API代理到统一服务端口
```
## 部署优势
**单一可执行文件**:前后端一体化,所有文件嵌入在二进制中
**无需依赖**:不需要Node.js、npm或其他运行时
**端口分离**API和前端服务分离,便于管理和扩展
**自动代理**:前端自动代理API请求,无需额外配置
**1Panel友好**:只需配置两个端口,运行一个命令即可
**端口服务**前端、API和上传文件共用一个端口
**1Panel友好**:只需配置一个端口,运行一个命令即可
**部署简单**:上传一个文件,配置端口,即可运行
**跨平台构建**:使用make统一构建流程,支持多平台