# XINFRA **统一运维入口平台** 一站式资源纳管、基础服务部署与业务交付平台,整合多个运维子系统,为团队提供统一的认证、权限、审计和运维操作入口。 [![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](LICENSE) [![Go Version](https://img.shields.io/badge/go-1.21+-00ADD8.svg?logo=go)](https://go.dev/) [![Vue Version](https://img.shields.io/badge/vue-3.3+-42b883.svg?logo=vue.js)](https://vuejs.org/) [![Element Plus](https://img.shields.io/badge/element--plus-2.3+-409EFF.svg)](https://element-plus.org/) [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](http://makeapullrequest.com)
--- ## ✨ 核心能力 ### 📦 资源纳管 - **多集群管理** — 统一接入和管理多个 K8s 集群,集群状态实时可见 - **资源全景** — 纳管集群内的 Namespace、工作负载、配置等核心资源,提供统一视图 - **租户管理** — 基于业务线的多租户资源隔离与配额管理 ### 🚀 基础服务部署 - **服务目录** — 标准化的服务目录管理,定义和维护可部署的服务清单 - **服务发布** — 基于 Wayne 平台的 K8s 服务部署与发布,支持多环境发布 - **运维驾驶舱** — 服务状态总览,实时掌握部署进度与运行状况 ### 🎯 业务交付 - **业务线管理** — 按业务线组织资源与权限,清晰的组织架构映射 - **子系统授权** — 基于业务线的细粒度子系统访问控制与角色绑定 - **任务调度** — 统一的任务中心,编排和执行运维操作流程 ### 🔐 统一认证与审计 - **多协议认证** — 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 编排 | ## 📁 项目结构 ``` xinfra/ ├── 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 ``` ## 🚀 快速开始 ### 环境要求 | 依赖 | 版本 | |------|------| | Go | >= 1.21 | | Node.js | >= 18 | | MySQL | >= 8.0 | | Redis | >= 7.0 | ### 安装与运行 ```bash # 1. 克隆项目 git clone https://github.com/2311719626/xinfra.git cd xinfra # 2. 启动本地开发环境(MySQL + Redis) make dev-up # 3. 启动前后端开发服务器 make run ``` > 💡 也可以分别启动前后端: > ```bash > make run-frontend # 启动前端 dev server > make run-server # 启动后端 server > ``` ### 构建与部署 ```bash # 构建前后端 make build # 构建 Docker 镜像 make docker # 部署到 Kubernetes kubectl apply -f deploy/k8s/ ``` ## 📖 API 文档 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` | 清理构建产物 | ### Git 提交规范 本项目遵循 [Conventional Commits](https://www.conventionalcommits.org/) 规范: | 前缀 | 说明 | |------|------| | `feat:` | ✨ 新功能 | | `fix:` | 🐛 修复 Bug | | `docs:` | 📝 文档更新 | | `style:` | 💄 代码格式(不影响逻辑) | | `refactor:` | ♻️ 重构 | | `perf:` | ⚡ 性能优化 | | `test:` | ✅ 测试相关 | | `chore:` | 🔧 构建/工具链 | | `ci:` | 🎡 CI/CD 配置 | ### 代码规范 - **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) 开源协议。 ---
**如果觉得有用,请点个 ⭐ Star 支持一下!**