# pipeloom **Repository Path**: Adnois/pipeloom ## Basic Information - **Project Name**: pipeloom - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-09-24 - **Last Updated**: 2026-10-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # pipeloom DevOps/CI-CD 平台 — 流水线编排、代码扫描、部署发布、通知投递一体化。 ## 技术栈 | 层 | 技术 | |---|---| | 后端 | Kotlin 2.3 + Spring Boot 4.1 + MyBatis-Plus + MySQL + Flyway | | 前端 | Vue 3.5 + TypeScript + Naive UI + Vite | | 构建 | Gradle (Kotlin DSL) + npm | | Java | 25 (toolchain) | ## 快速开始 ### 前置条件 - JDK 17+(编译)/ JDK 25+(运行,Gradle toolchain 自动下载) - MySQL 8.0+ - Node.js 20+ ### 1. 准备数据库 ```sql CREATE DATABASE pipeloom CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER 'pipeloom'@'localhost' IDENTIFIED BY 'your-password'; GRANT ALL PRIVILEGES ON pipeloom.* TO 'pipeloom'@'localhost'; ``` ### 2. 配置环境变量 ```bash export PIPELOOM_DB_HOST=localhost export PIPELOOM_DB_USERNAME=pipeloom export PIPELOOM_DB_PASSWORD=your-password export PIPELOOM_ADMIN_PASSWORD=initial-admin-password # 仅首次启动需要 export PIPELOOM_VAULT_MASTER_KEY=$(openssl rand -hex 32) # 凭据加密主密钥 ``` ### 3. 启动后端 ```bash cd server ./gradlew bootRun ``` 后端启动在 `http://localhost:8888`,Flyway 自动执行数据库迁移。 ### 4. 启动前端 ```bash cd web npm install npm run dev ``` 前端启动在 `http://localhost:5173`,自动代理 API 请求到后端。 ### 5. 首次登录 - 用户名:`admin` - 密码:`PIPELOOM_ADMIN_PASSWORD` 设置的值 ## 项目结构 ``` pipeloom/ ├── server/ # 后端 (Kotlin/Spring Boot) │ ├── src/main/kotlin/com/pipeloom/server/ │ │ ├── controller/ # HTTP 路由层 (32 个 Controller) │ │ ├── service/ # 业务逻辑层 (100+ 个 Service) │ │ ├── handler/ # Job 执行器 SPI (40+ 个 Handler) │ │ ├── entity/ # MyBatis-Plus 实体 │ │ ├── mapper/ # MyBatis-Plus Mapper 接口 │ │ ├── model/ # DTO / PipelineSpec │ │ ├── config/ # 配置类 │ │ ├── schedule/ # 定时任务 │ │ ├── websocket/ # WebSocket 端点 │ │ └── exception/ # 统一异常体系 │ └── src/main/resources/ │ ├── application.yml # 主配置 │ └── db/migration/ # Flyway 迁移脚本 (V0002~V0086) ├── web/ # 前端 (Vue 3/TypeScript) │ └── src/ │ ├── views/ # 页面视图 │ ├── components/ # 可复用组件 │ ├── api/ # API 调用层 │ ├── composables/ # 组合式函数 │ └── i18n/ # 国际化 (zh-CN/en) └── docs/ # 架构文档 ├── system_design.md # 系统设计 ├── p0-closure-prd.md # P0 需求文档 └── bkci-gap-analysis.md # BKCI 对标分析 ``` ## 核心功能 - **流水线编排**:Stage→Job 两层模型,拓扑并行执行,DAG 可视化 - **触发方式**:手动、Webhook (GitHub/GitLab/Gitea)、定时调度、失败重跑 - **代码扫描**:Semgrep、Gitleaks、SpotBugs、PMD、detekt、ESLint、Pylint 等 15+ 工具 - **部署发布**:SSH、K8s (蓝绿)、Docker Compose - **通知投递**:企业微信、钉钉、飞书、Generic Webhook,事件订阅过滤 - **凭据管理**:AES-256-GCM 加密,过期提醒 - **并发控制**:Pipeline 级互斥组 + Stage 级资源槽位 - **审计日志**:@Audit AOP 切面,审计表触发器硬拦篡改 - **AI 辅助**:流水线生成、运维诊断、问题修复建议 ## API 文档 启动后端后访问 `http://localhost:8888/swagger-ui.html` 查看 OpenAPI 文档。 ## 开发指南 ### 后端编译 ```bash cd server && ./gradlew compileKotlin ``` ### 前端类型检查 ```bash cd web && npx vue-tsc --noEmit ``` ### 数据库迁移 Flyway 迁移脚本位于 `server/src/main/resources/db/migration/`,命名格式 `V<版本号>__<描述>.sql`。 ## 文档 - [系统设计](docs/system_design.md) - [P0 需求文档](docs/p0-closure-prd.md) - [代码扫描架构](docs/code-scan-architecture.md) - [BKCI 对标分析](docs/bkci-gap-analysis.md) ## License Private — Internal use only.