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
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:
@@ -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:5173,API代理到统一服务端口
|
||||
```
|
||||
|
||||
## 部署优势
|
||||
|
||||
✅ **单一可执行文件**:前后端一体化,所有文件嵌入在二进制中
|
||||
✅ **无需依赖**:不需要Node.js、npm或其他运行时
|
||||
✅ **端口分离**:API和前端服务分离,便于管理和扩展
|
||||
✅ **自动代理**:前端自动代理API请求,无需额外配置
|
||||
✅ **1Panel友好**:只需配置两个端口,运行一个命令即可
|
||||
✅ **单端口服务**:前端、API和上传文件共用一个端口
|
||||
✅ **1Panel友好**:只需配置一个端口,运行一个命令即可
|
||||
✅ **部署简单**:上传一个文件,配置端口,即可运行
|
||||
✅ **跨平台构建**:使用make统一构建流程,支持多平台
|
||||
|
||||
Reference in New Issue
Block a user