Files
server/README_zh.md
2026-01-16 15:49:34 +08:00

329 lines
8.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<p align="center"><img src="https://www.goravel.dev/logo.png?v=1.14.x" width="300"></p>
[English](./README.md) | 中文
## 关于 Goravel
Goravel 是一个功能完整、可扩展性良好的 Web 应用框架。作为起始脚手架,帮助 Gopher 快速构建自己的应用程序。
框架风格与 [Laravel](https://github.com/laravel/laravel) 保持一致,让 Phper 无需学习新框架,也能愉快地使用 Golang!致敬 Laravel
欢迎 Star、PR 和 Issues
## 后台管理系统
本项目包含一个基于 Goravel 框架构建的完整后台管理系统。
```bash
git clone https://github.com/1768177868/goravel-admin.git
```
> 演示站 https://admin.xuancheng888.top
账号: demo
密码: demo123
### 截图展示
<p align="center">
<img src="./images/login.png" alt="登录页面" width="800">
<p align="center">登录页面</p>
</p>
<p align="center">
<img src="./images/admin.png" alt="后台管理界面" width="800">
<p align="center">后台管理界面</p>
</p>
<p align="center">
<img src="./images/monitor.png" alt="系统监控" width="800">
<p align="center">系统监控</p>
</p>
<p align="center">
<img src="./images/pages.png" alt="cloudflare" width="800">
<p align="center">cloudflare</p>
</p>
### 功能特性
#### 核心模块
- **认证与授权**
- 基于角色的访问控制(RBAC
- 权限管理
- 多令牌管理
- 在线用户监控与踢出
- **管理员管理**
- 管理员用户管理
- 部门管理
- 角色管理
- 权限分配
- 密码重置
- **系统配置**
- 菜单管理(动态菜单)
- 字典管理
- 系统配置
- 黑名单管理
- **日志与监控**
- 操作日志(自动记录)
- 登录日志
- 系统日志(带追踪 ID
- 服务监控
- **附加功能**
- 数据统计仪表盘
- 通知中心(WebSocket 实时通知)
- 数据导出管理
- 多语言支持(中文/英文)
- 响应式 UI 设计
### 技术栈
**后端:**
- Goravel 框架(Go
- JWT 认证
- RBAC 权限系统
- WebSocket 支持
- 数据库迁移与填充
**前端:**
- Vue 3
- Element Plus
- vxe-table(高级表格组件)
- Vue Router
- Pinia(状态管理)
- Axios
- ECharts(数据可视化)
- vue-i18n(国际化)
### 快速开始
1. **后端配置:**
```bash
# 安装依赖
go mod tidy
# 在 .env 中配置数据库
# 运行数据库迁移和填充
go run . artisan migrate
go run . artisan db:seed
# 启动服务
go run . --no-ansi
# 或使用 air 进行热重载
air
```
2. **前端配置:**
```bash
cd html
# 安装依赖
npm install
# 在 .env 中配置 API 地址
# VITE_API_BASE_URL=http://127.0.0.1:3000
# VITE_API_PREFIX=/api/admin
# 启动开发服务器
npm run dev
```
3. **默认登录:**
- 用户名:`admin`
- 密码:`admin123`
- (首次登录后请修改默认密码)
### 构建与部署
详细的编译打包和部署说明,包括跨平台编译、Docker 部署、systemd 服务配置等,请参考 [BUILD.md](./docs/BUILD.md)。
### API 文档
后台管理 API 接口前缀为 `/api/admin`。除登录和验证码接口外,所有接口都需要 JWT 认证。
详细的 API 文档请查看 [routes/admin.go](./routes/admin.go)
#### Swagger API 文档
项目包含 Swagger API 文档,支持交互式 API 探索。
**访问 Swagger 文档:**
Swagger JSON 文档访问地址:
- 本地开发:`http://localhost:3000/swagger/index.html`
- 生产环境:`https://your-domain.com/swagger/index.html`
**重新生成 Swagger 文档:**
修改 API 路由或添加新接口后,需要重新生成 Swagger 文档:
```bash
# 生成 Swagger 文档
swag init
```
这将根据代码中的 Swagger 注解(示例见 `main.go`)重新生成 `docs/docs.go`、`docs/swagger.json` 和 `docs/swagger.yaml` 文件。
### 项目结构
```
.
├── app/
│ ├── http/
│ │ ├── controllers/admin/ # 后台控制器
│ │ ├── middleware/ # 自定义中间件(JWT、权限、操作日志)
│ │ └── helpers/ # 辅助函数
│ ├── models/ # 数据库模型
│ └── services/ # 业务逻辑服务
├── routes/
│ └── admin.go # 后台路由
├── database/
│ ├── migrations/ # 数据库迁移
│ └── seeders/ # 数据库填充
├── html/ # 前端 Vue 应用
│ └── src/
│ ├── views/ # 页面组件
│ ├── components/ # 可复用组件
│ ├── api/ # API 客户端
│ └── store/ # Pinia 状态管理
├── config/ # 配置文件
├── docs/ # 文档目录
│ ├── API.md # API 接口文档
│ ├── ARCHITECTURE.md # 架构设计文档
│ ├── BUILD.md # 编译打包与部署
│ ├── SHARDING_MIGRATION.md # 数据库分表指南
│ └── ... # 其他文档
├── CONTRIBUTING.md # 贡献指南
├── CHANGELOG.md # 版本变更记录
└── images/ # 截图文件
```
### 数据库分表
项目支持按月分表策略,已实现订单表的按月分表功能。关于如何创建、使用和修改分表的详细文档,请参考 [docs/SHARDING_MIGRATION.md](./docs/SHARDING_MIGRATION.md)。
### 安全特性
- 基于 JWT 令牌的认证
- 权限中间件保护路由
- 自动操作日志记录
- 日志中敏感数据过滤
- 登录接口限流
- IP/管理员黑名单管理
- 令牌撤销支持
## 快速入门
### 启动服务
`go run . --no-ansi` 或 `air`
[关于 air]https://www.goravel.dev/getting-started/installation.html#live-reload
### Cloudflare Workers 部署
将前端应用部署到 Cloudflare Workers
```bash
# 构建前端应用
cd html
# 注意:Cloudflare Workers 构建环境会自动运行 npm ci
# 如果遇到 Rollup 可选依赖问题,请使用以下构建命令:
npm install --include=optional @rollup/rollup-linux-x64-gnu && npm run build
# 或者使用项目提供的 CI 构建脚本:
npm run build:ci
# 部署到 Cloudflare Workers
npx wrangler deploy --assets ./dist --compatibility-date 2025-11-29 --name admin
```
**配置说明:**
- **根目录:** `html`
- **环境变量(变量和机密):**
- `VITE_API_BASE_URL`: `https://api.xuancheng888.top`
- `VITE_API_PREFIX`: `/api/admin`
- **自定义域名:** `admin.xuancheng888.top`
**注意:** `worker.js` 文件会自动处理 SPA 路由,当文件不存在时返回 `index.html`。
### 性能分析
pprof 性能分析工具地址:http://localhost:3000/debug/pprof/
### 二进制压缩
为了减小二进制文件大小,可以使用 UPXUltimate Packer for eXecutables)压缩编译后的可执行文件:
**Windows**
1. 下载 UPXWindows 64 位版本):
- 官网下载:https://github.com/upx/upx/releases/latest
- 选择 `upx-5.0.2-win64.zip`(或最新版本)
- 解压到无中文或空格的路径(例如:`F:\tools\upx`
- 确保 `upx.exe` 可访问
2. 压缩二进制文件(PowerShell):
```powershell
# 方式1:临时添加 UPX 到环境变量(推荐)
$env:PATH += ";F:\tools\upx"
# 进入项目目录
cd F:\www\go\admin\goravel-admin
# 最高级别压缩(-9
upx -9 main
```
**Linux/macOS**
```bash
# 安装 UPX(如果尚未安装)
# Ubuntu/Debian: sudo apt-get install upx
# macOS: brew install upx
# 压缩二进制文件
upx -9 main
```
## 文档
### 项目文档
| 文档 | 说明 |
|------|------|
| [API.md](./docs/API.md) | 完整 API 接口文档 |
| [ARCHITECTURE.md](./docs/ARCHITECTURE.md) | 系统架构设计 |
| [DEVELOPMENT_GUIDE.md](./docs/DEVELOPMENT_GUIDE.md) | 开发指南:CRUD 模块完整开发示例(以留言板模块为例,包含后端接口和前端页面) |
| [SHARDING_MIGRATION.md](./docs/SHARDING_MIGRATION.md) | 数据库分表指南(创建、使用和修改分表) |
| [BUILD.md](./docs/BUILD.md) | 编译打包与部署 |
| [TESTING.md](./docs/TESTING.md) | 测试指南(单元测试 & 集成测试) |
| [CONTRIBUTING.md](./CONTRIBUTING.md) | 贡献指南 |
| [CHANGELOG.md](./CHANGELOG.md) | 版本变更记录 |
| [前端开发指南](./html/DEVELOPMENT.md) | 前端开发文档 |
### Goravel 框架文档
在线文档 [https://www.goravel.dev](https://www.goravel.dev)
> 要优化文档,请向文档仓库提交 PR
> [https://github.com/goravel/docs](https://github.com/goravel/docs)
## 社区
欢迎在 Discord 中讨论。
[https://discord.gg/cFc5csczzS](https://discord.gg/cFc5csczzS)
## 许可证
Goravel 框架是在 [MIT 许可证](https://opensource.org/licenses/MIT) 下发布的开源软件。