Emdream 8b15541a15
CI / Prepare CI context (push) Has been cancelled
CI / Prepare Go module cache (push) Has been cancelled
CI / Backend unit tests (push) Has been cancelled
CI / Frontend typecheck and build (push) Has been cancelled
CI / Backend integration smoke test (push) Has been cancelled
Merge pull request #140 from Hungerdream/feat/mysql-primary-replica-delivery
feat: MySQL 交付支持一主多从(primary_replica)拓扑 (#108)
2026-07-31 21:48:47 +08:00
2026-07-14 14:34:10 +08:00
2026-07-06 23:22:51 +08:00
2026-07-29 11:53:27 +08:00

XINFRA

统一运维入口平台

一站式资源纳管、基础服务部署与业务交付平台,整合多个运维子系统,为团队提供统一的认证、权限、审计和运维操作入口。

License Go Version Vue Version Element Plus PRs Welcome


✨ 核心能力

📦 资源纳管

  • 多集群管理 — 统一接入和管理多个 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

安装与运行

# 1. 克隆项目
git clone https://github.com/2311719626/xinfra.git
cd xinfra

# 2. 启动本地开发环境(MySQL + Redis)
make dev-up

# 3. 启动前后端开发服务器
make run

💡 也可以分别启动前后端:

make run-frontend   # 启动前端 dev server
make run-server     # 启动后端 server

构建与部署

# 构建前后端
make build

# 构建 Docker 镜像
make docker

# 部署到 Kubernetes
kubectl apply -f deploy/k8s/

📖 API 文档

Swagger 文档通过 swaggo 自动生成:

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 规范:

前缀 说明
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 开源协议。


如果觉得有用,请点个 ⭐ Star 支持一下!

S
Description
No description provided
Readme 1,003 KiB
Languages
Go 56.4%
Vue 31.9%
TypeScript 6.3%
Shell 2.6%
CSS 1.5%
Other 1.2%