init: EZOps AIOps 智能运维平台

- 前端: React 18 + TypeScript + Vite + Tailwind CSS + shadcn/ui
- 后端: Go + Gin + GORM + JWT (golang-jwt/jwt/v5)
- 功能: 服务器管理、K8s集群、监控告警、CI/CD、自动化运维、审批流程、审计日志
- 文档: 设计文档(ROADMAP/PDD/架构/模块)
This commit is contained in:
attacker committed 2026-06-13 23:09:47 +08:00
commit 7d6674bddd
156 files changed
+45704

No files matched your search

+136
View File
@@ -0,0 +1,136 @@
.PHONY: all build run test clean docker swagger lint fmt vet
# 应用名称
APP_NAME=ezops
MAIN_FILE=cmd/main.go
BUILD_DIR=build
# Go 参数
GOCMD=go
GOBUILD=$(GOCMD) build
GOCLEAN=$(GOCMD) clean
GOTEST=$(GOCMD) test
GOGET=$(GOCMD) get
GOMOD=$(GOCMD) mod
# 版本信息
VERSION=$(shell git describe --tags --always --dirty 2>/dev/null || echo "dev")
BUILD_TIME=$(shell date +%Y-%m-%d_%H:%M:%S)
GIT_COMMIT=$(shell git rev-parse --short HEAD 2>/dev/null || echo "unknown")
LDFLAGS=-ldflags "-X main.Version=$(VERSION) -X main.BuildTime=$(BUILD_TIME) -X main.GitCommit=$(GIT_COMMIT)"
all: test build
# 构建应用
build:
@echo "Building $(APP_NAME)..."
@mkdir -p $(BUILD_DIR)
$(GOBUILD) $(LDFLAGS) -o $(BUILD_DIR)/$(APP_NAME) $(MAIN_FILE)
@echo "Build complete: $(BUILD_DIR)/$(APP_NAME)"
# 运行应用
run:
$(GOCMD) run $(MAIN_FILE)
# 开发模式运行(带热重载)
dev:
@which air > /dev/null || go install github.com/cosmtrek/air@latest
air
# 运行测试
test:
$(GOTEST) -v ./...
# 运行测试并生成覆盖率报告
test-coverage:
$(GOTEST) -v -coverprofile=coverage.out ./...
$(GOCMD) tool cover -html=coverage.out -o coverage.html
@echo "Coverage report generated: coverage.html"
# 清理构建产物
clean:
$(GOCLEAN)
@rm -rf $(BUILD_DIR)
@rm -f coverage.out coverage.html
@echo "Clean complete"
# 下载依赖
deps:
$(GOMOD) download
$(GOMOD) tidy
# 更新依赖
update-deps:
$(GOGET) -u ./...
$(GOMOD) tidy
# 生成 Swagger 文档
swagger:
@which swag > /dev/null || go install github.com/swaggo/swag/cmd/swag@latest
swag init -g $(MAIN_FILE)
@echo "Swagger docs generated"
# 代码格式化
fmt:
$(GOCMD) fmt ./...
# 代码检查
vet:
$(GOCMD) vet ./...
# 运行 linter
lint:
@which golangci-lint > /dev/null || go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest
golangci-lint run
# 安全检查
security:
@which gosec > /dev/null || go install github.com/securego/gosec/v2/cmd/gosec@latest
gosec ./...
# 构建 Docker 镜像
docker-build:
docker build -t $(APP_NAME):$(VERSION) -t $(APP_NAME):latest .
# 运行 Docker 容器
docker-run:
docker run -p 8080:8080 -v $(PWD)/config.yaml:/root/config.yaml $(APP_NAME):latest
# 停止 Docker 容器
docker-stop:
docker stop $(shell docker ps -q --filter ancestor=$(APP_NAME))
# 数据库迁移
migrate:
$(GOCMD) run $(MAIN_FILE) migrate
# 初始化数据库
init-db:
@echo "Initializing database..."
@mysql -u root -p -e "CREATE DATABASE IF NOT EXISTS ezops CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;" 2>/dev/null || true
@echo "Database initialized"
# 生成 Mock 数据
mock:
$(GOCMD) run scripts/mock.go
# 查看帮助
help:
@echo "Available targets:"
@echo " make build - Build the application"
@echo " make run - Run the application"
@echo " make dev - Run with hot reload"
@echo " make test - Run tests"
@echo " make test-coverage - Run tests with coverage"
@echo " make clean - Clean build artifacts"
@echo " make deps - Download dependencies"
@echo " make update-deps - Update dependencies"
@echo " make swagger - Generate Swagger docs"
@echo " make fmt - Format code"
@echo " make vet - Run go vet"
@echo " make lint - Run linter"
@echo " make security - Run security check"
@echo " make docker-build - Build Docker image"
@echo " make docker-run - Run Docker container"
@echo " make init-db - Initialize database"
@echo " make help - Show this help"