2026-07-22 10:13:57 +08:00
|
|
|
|
<div align="center">
|
2026-07-14 14:34:10 +08:00
|
|
|
|
|
2026-07-22 10:13:57 +08:00
|
|
|
|
# XINFRA
|
2026-07-14 14:34:10 +08:00
|
|
|
|
|
2026-07-22 10:13:57 +08:00
|
|
|
|
**统一运维入口平台**
|
2026-07-14 14:34:10 +08:00
|
|
|
|
|
2026-07-22 10:13:57 +08:00
|
|
|
|
一站式资源纳管、基础服务部署与业务交付平台,整合多个运维子系统,为团队提供统一的认证、权限、审计和运维操作入口。
|
2026-07-14 14:34:10 +08:00
|
|
|
|
|
2026-07-22 10:13:57 +08:00
|
|
|
|
[](LICENSE)
|
|
|
|
|
|
[](https://go.dev/)
|
|
|
|
|
|
[](https://vuejs.org/)
|
|
|
|
|
|
[](https://element-plus.org/)
|
|
|
|
|
|
[](http://makeapullrequest.com)
|
2026-07-14 14:34:10 +08:00
|
|
|
|
|
2026-07-22 10:13:57 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## ✨ 核心能力
|
|
|
|
|
|
|
|
|
|
|
|
### 📦 资源纳管
|
|
|
|
|
|
|
|
|
|
|
|
- **多集群管理** — 统一接入和管理多个 K8s 集群,集群状态实时可见
|
|
|
|
|
|
- **资源全景** — 纳管集群内的 Namespace、工作负载、配置等核心资源,提供统一视图
|
|
|
|
|
|
- **租户管理** — 基于业务线的多租户资源隔离与配额管理
|
|
|
|
|
|
|
|
|
|
|
|
### 🚀 基础服务部署
|
|
|
|
|
|
|
|
|
|
|
|
- **服务目录** — 标准化的服务目录管理,定义和维护可部署的服务清单
|
|
|
|
|
|
- **服务发布** — 基于 Wayne 平台的 K8s 服务部署与发布,支持多环境发布
|
|
|
|
|
|
- **运维驾驶舱** — 服务状态总览,实时掌握部署进度与运行状况
|
|
|
|
|
|
|
|
|
|
|
|
### 🎯 业务交付
|
|
|
|
|
|
|
|
|
|
|
|
- **业务线管理** — 按业务线组织资源与权限,清晰的组织架构映射
|
|
|
|
|
|
- **子系统授权** — 基于业务线的细粒度子系统访问控制与角色绑定
|
|
|
|
|
|
- **任务调度** — 统一的任务中心,编排和执行运维操作流程
|
2026-07-14 14:34:10 +08:00
|
|
|
|
|
2026-07-22 10:13:57 +08:00
|
|
|
|
### 🔐 统一认证与审计
|
|
|
|
|
|
|
|
|
|
|
|
- **多协议认证** — LDAP + SAML + OAuth 2.0,对接企业统一身份认证
|
|
|
|
|
|
- **SSO 单点登录** — 一次登录,无缝跳转各子系统
|
|
|
|
|
|
- **全链路审计** — 登录审计 + 操作审计,完整记录每一次运维操作
|
|
|
|
|
|
|
|
|
|
|
|
## 🛠️ 技术栈
|
|
|
|
|
|
|
|
|
|
|
|
| 层级 | 技术 | 说明 |
|
|
|
|
|
|
|:---:|------|------|
|
|
|
|
|
|
| **前端** | Vue 3 + TypeScript + Vite | Composition API + Element Plus UI |
|
|
|
|
|
|
| **后端** | Go + Gin + GORM | RESTful API + Swagger 文档 |
|
|
|
|
|
|
| **数据库** | MySQL 8.0 | GORM AutoMigrate 迁移管理 |
|
|
|
|
|
|
| **认证** | JWT + LDAP/SAML/OAuth 2.0 | 多协议统一认证网关 |
|
|
|
|
|
|
| **部署** | Docker + Kubernetes + Wayne | Nginx 反向代理 + K8s 编排 |
|
|
|
|
|
|
|
|
|
|
|
|
## 📁 项目结构
|
2026-07-14 14:34:10 +08:00
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
xinfra/
|
2026-07-22 10:13:57 +08:00
|
|
|
|
├── frontend/ # 前端 Vue 3 项目
|
|
|
|
|
|
│ └── src/
|
|
|
|
|
|
│ ├── api/ # API 请求封装
|
|
|
|
|
|
│ ├── components/ # 可复用组件
|
|
|
|
|
|
│ ├── composables/ # 组合式函数
|
|
|
|
|
|
│ ├── layouts/ # 页面布局
|
|
|
|
|
|
│ ├── router/ # 路由配置
|
|
|
|
|
|
│ ├── stores/ # Pinia 状态管理
|
|
|
|
|
|
│ ├── views/ # 页面视图
|
|
|
|
|
|
│ │ ├── dashboard/ # 运维驾驶舱
|
|
|
|
|
|
│ │ ├── cluster/ # 集群管理
|
|
|
|
|
|
│ │ ├── resource/ # 资源纳管(Namespace/租户/状态看板)
|
|
|
|
|
|
│ │ ├── service/ # 服务部署(目录/发布管理)
|
|
|
|
|
|
│ │ ├── task/ # 任务调度中心
|
|
|
|
|
|
│ │ ├── businessLine/ # 业务线管理
|
|
|
|
|
|
│ │ ├── subsystem/ # 子系统管理与授权
|
|
|
|
|
|
│ │ ├── config/ # 配置管理
|
|
|
|
|
|
│ │ ├── monitor/ # 监控告警
|
|
|
|
|
|
│ │ ├── audit/ # 审计日志
|
|
|
|
|
|
│ │ └── auth/ # 登录认证
|
|
|
|
|
|
│ └── utils/ # 工具函数
|
|
|
|
|
|
├── server/ # 后端 Go 项目
|
|
|
|
|
|
│ ├── cmd/server/ # 程序入口
|
|
|
|
|
|
│ ├── internal/ # 内部包(分层架构)
|
|
|
|
|
|
│ │ ├── auth/ # 认证模块
|
|
|
|
|
|
│ │ ├── config/ # 配置管理
|
|
|
|
|
|
│ │ ├── database/ # 数据库连接
|
|
|
|
|
|
│ │ ├── handler/ # HTTP 处理器
|
|
|
|
|
|
│ │ ├── model/ # 数据模型
|
|
|
|
|
|
│ │ ├── router/ # 路由注册
|
|
|
|
|
|
│ │ ├── service/ # 业务逻辑
|
|
|
|
|
|
│ │ ├── sso/ # SSO 单点登录
|
|
|
|
|
|
│ │ └── wayne/ # Wayne 子系统集成
|
|
|
|
|
|
│ └── migrations/ # 数据库迁移
|
|
|
|
|
|
├── deploy/ # 部署配置
|
|
|
|
|
|
│ ├── docker/ # Docker 构建配置
|
|
|
|
|
|
│ └── k8s/ # Kubernetes 配置
|
|
|
|
|
|
├── Makefile # 构建脚本
|
|
|
|
|
|
└── LICENSE # Apache 2.0 License
|
2026-07-14 14:34:10 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
2026-07-22 10:13:57 +08:00
|
|
|
|
## 🚀 快速开始
|
2026-07-14 14:34:10 +08:00
|
|
|
|
|
|
|
|
|
|
### 环境要求
|
|
|
|
|
|
|
2026-07-22 10:13:57 +08:00
|
|
|
|
| 依赖 | 版本 |
|
|
|
|
|
|
|------|------|
|
|
|
|
|
|
| Go | >= 1.21 |
|
|
|
|
|
|
| Node.js | >= 18 |
|
|
|
|
|
|
| MySQL | >= 8.0 |
|
|
|
|
|
|
| Redis | >= 7.0 |
|
|
|
|
|
|
|
|
|
|
|
|
### 安装与运行
|
2026-07-14 14:34:10 +08:00
|
|
|
|
|
2026-07-22 10:13:57 +08:00
|
|
|
|
```bash
|
|
|
|
|
|
# 1. 克隆项目
|
|
|
|
|
|
git clone https://github.com/2311719626/xinfra.git
|
|
|
|
|
|
cd xinfra
|
2026-07-14 14:34:10 +08:00
|
|
|
|
|
2026-07-22 10:13:57 +08:00
|
|
|
|
# 2. 启动本地开发环境(MySQL + Redis)
|
|
|
|
|
|
make dev-up
|
2026-07-14 14:34:10 +08:00
|
|
|
|
|
2026-07-22 10:13:57 +08:00
|
|
|
|
# 3. 启动前后端开发服务器
|
|
|
|
|
|
make run
|
|
|
|
|
|
```
|
2026-07-14 14:34:10 +08:00
|
|
|
|
|
2026-07-22 10:13:57 +08:00
|
|
|
|
> 💡 也可以分别启动前后端:
|
|
|
|
|
|
> ```bash
|
|
|
|
|
|
> make run-frontend # 启动前端 dev server
|
|
|
|
|
|
> make run-server # 启动后端 server
|
|
|
|
|
|
> ```
|
2026-07-14 14:34:10 +08:00
|
|
|
|
|
2026-07-22 10:13:57 +08:00
|
|
|
|
### 构建与部署
|
2026-07-14 14:34:10 +08:00
|
|
|
|
|
2026-07-22 10:13:57 +08:00
|
|
|
|
```bash
|
|
|
|
|
|
# 构建前后端
|
|
|
|
|
|
make build
|
2026-07-14 14:34:10 +08:00
|
|
|
|
|
2026-07-22 10:13:57 +08:00
|
|
|
|
# 构建 Docker 镜像
|
|
|
|
|
|
make docker
|
2026-07-14 14:34:10 +08:00
|
|
|
|
|
2026-07-22 10:13:57 +08:00
|
|
|
|
# 部署到 Kubernetes
|
|
|
|
|
|
kubectl apply -f deploy/k8s/
|
|
|
|
|
|
```
|
2026-07-14 14:34:10 +08:00
|
|
|
|
|
2026-07-22 10:13:57 +08:00
|
|
|
|
## 📖 API 文档
|
2026-07-14 14:34:10 +08:00
|
|
|
|
|
2026-07-22 10:13:57 +08:00
|
|
|
|
Swagger 文档通过 [swaggo](https://github.com/swaggo/swag) 自动生成:
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
make swagger
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
生成后访问:`http://localhost:8080/swagger/index.html`
|
|
|
|
|
|
|
|
|
|
|
|
## 🔧 开发指南
|
|
|
|
|
|
|
|
|
|
|
|
### 可用命令
|
|
|
|
|
|
|
|
|
|
|
|
| 命令 | 说明 |
|
|
|
|
|
|
|------|------|
|
|
|
|
|
|
| `make help` | 显示帮助信息 |
|
|
|
|
|
|
| `make build` | 构建前后端项目 |
|
|
|
|
|
|
| `make run` | 启动开发服务器 |
|
|
|
|
|
|
| `make test` | 运行测试 |
|
|
|
|
|
|
| `make docker` | 构建 Docker 镜像 |
|
|
|
|
|
|
| `make swagger` | 生成 API 文档 |
|
|
|
|
|
|
| `make migrate-up` | 执行数据库迁移 |
|
|
|
|
|
|
| `make migrate-down` | 回滚数据库迁移 |
|
|
|
|
|
|
| `make clean` | 清理构建产物 |
|
2026-07-14 14:34:10 +08:00
|
|
|
|
|
|
|
|
|
|
### Git 提交规范
|
|
|
|
|
|
|
2026-07-22 10:13:57 +08:00
|
|
|
|
本项目遵循 [Conventional Commits](https://www.conventionalcommits.org/) 规范:
|
|
|
|
|
|
|
|
|
|
|
|
| 前缀 | 说明 |
|
|
|
|
|
|
|------|------|
|
|
|
|
|
|
| `feat:` | ✨ 新功能 |
|
|
|
|
|
|
| `fix:` | 🐛 修复 Bug |
|
|
|
|
|
|
| `docs:` | 📝 文档更新 |
|
|
|
|
|
|
| `style:` | 💄 代码格式(不影响逻辑) |
|
|
|
|
|
|
| `refactor:` | ♻️ 重构 |
|
|
|
|
|
|
| `perf:` | ⚡ 性能优化 |
|
|
|
|
|
|
| `test:` | ✅ 测试相关 |
|
|
|
|
|
|
| `chore:` | 🔧 构建/工具链 |
|
|
|
|
|
|
| `ci:` | 🎡 CI/CD 配置 |
|
2026-07-14 14:34:10 +08:00
|
|
|
|
|
|
|
|
|
|
### 代码规范
|
|
|
|
|
|
|
2026-07-22 10:13:57 +08:00
|
|
|
|
- **Go** — 遵循 `gofmt` 格式,提交前运行 `go vet ./...`
|
|
|
|
|
|
- **Vue/TypeScript** — 遵循 ESLint 规范,提交前运行 `npm run lint`
|
|
|
|
|
|
- 提交前请确保代码通过所有测试:`make test`
|
|
|
|
|
|
|
|
|
|
|
|
## 🤝 参与贡献
|
|
|
|
|
|
|
|
|
|
|
|
欢迎参与贡献!请遵循以下步骤:
|
|
|
|
|
|
|
|
|
|
|
|
1. Fork 本仓库
|
|
|
|
|
|
2. 创建特性分支:`git checkout -b feat/amazing-feature`
|
|
|
|
|
|
3. 提交更改:`git commit -m 'feat: add amazing feature'`
|
|
|
|
|
|
4. 推送分支:`git push origin feat/amazing-feature`
|
|
|
|
|
|
5. 提交 Pull Request
|
|
|
|
|
|
|
|
|
|
|
|
## 📋 路线图
|
|
|
|
|
|
|
|
|
|
|
|
- [ ] 完善 Ansible Playbook 调度与实时日志推送
|
|
|
|
|
|
- [ ] 补充完整 API 接口文档
|
|
|
|
|
|
- [ ] 添加单元测试与集成测试
|
|
|
|
|
|
- [ ] 多集群跨集群操作支持
|
|
|
|
|
|
- [ ] 操作回放与审计录像
|
|
|
|
|
|
|
|
|
|
|
|
## 📜 许可证
|
|
|
|
|
|
|
|
|
|
|
|
本项目采用 [Apache License 2.0](LICENSE) 开源协议。
|
2026-07-14 14:34:10 +08:00
|
|
|
|
|
2026-07-22 10:13:57 +08:00
|
|
|
|
---
|
2026-07-14 14:34:10 +08:00
|
|
|
|
|
2026-07-22 10:13:57 +08:00
|
|
|
|
<div align="center">
|
2026-07-14 14:34:10 +08:00
|
|
|
|
|
2026-07-22 10:13:57 +08:00
|
|
|
|
**如果觉得有用,请点个 ⭐ Star 支持一下!**
|
2026-07-14 14:34:10 +08:00
|
|
|
|
|
2026-07-22 10:13:57 +08:00
|
|
|
|
</div>
|