# CI-CD CC Platform **Repository Path**: to-doing/ci-cd-cc-platform ## Basic Information - **Project Name**: CI-CD CC Platform - **Description**: 基于go+react开发的cicd平台 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-21 - **Last Updated**: 2026-05-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # cicd-server 轻量级自托管 CI/CD 平台。单个 Go 二进制文件,从源码构建容器镜像并推送到镜像仓库。面向小型团队(约 30 人)设计。 ## 功能特性 - 自动语言检测(Go、Node.js、Python、Java、Ruby、Dockerfile) - 无 Dockerfile 时自动生成 - Git Webhook 触发构建(支持 GitHub / GitLab / Gitea) - WebSocket 实时构建日志推送 - 多 Worker 构建队列(可配置并发数) - Web 管理界面 ## 快速开始 ### 环境要求 - Go 1.25+ - Docker(用于构建镜像) - Node.js 20+(用于前端开发) ### 后端 ```bash # 设置必要的环境变量 export JWT_SECRET=your-secret-here # 开发模式运行 make dev # 或编译后运行 make run ``` 服务默认监听 `http://localhost:8080`。 ### 前端 ```bash make frontend ``` Vite 开发服务器启动在 `http://localhost:5173`,API 请求自动代理到 `:8080`。 ### Docker 部署 ```bash make docker docker run -p 8080:8080 -e JWT_SECRET=your-secret cicd-server:latest ``` ## 环境变量 | 变量名 | 默认值 | 说明 | |---|---|---| | `PORT` | `8080` | HTTP 监听端口 | | `DATABASE_PATH` | `cicd.db` | SQLite 数据库文件路径 | | `JWT_SECRET` | `change-me-in-production` | JWT 签名密钥(生产环境必须修改) | | `JWT_EXPIRY_HOURS` | `72` | Token 有效期(小时) | | `BUILD_WORKERS` | `3` | 并发构建 Worker 数量 | | `BUILD_DIR` | `/tmp/cicd-builds` | Git 克隆临时目录 | | `BUILD_BACKEND` | `docker` | 构建后端:`docker`、`kaniko`、`buildah` | | `K8S_NAMESPACE` | `cicd` | Kubernetes 命名空间(仅 kaniko 使用) | ## API 接口 所有端点位于 `/api/v1` 下,使用 JWT Bearer Token 进行身份认证。 ### 公开接口 | 方法 | 路径 | 说明 | |---|---|---| | `POST` | `/auth/register` | 注册账号 | | `POST` | `/auth/login` | 登录获取 Token | | `POST` | `/webhooks/{projectID}` | Git Webhook 回调 | ### 需认证接口(请求头 `Authorization: Bearer `) | 方法 | 路径 | 说明 | |---|---|---| | `GET/POST` | `/projects` | 项目列表 / 创建项目 | | `GET/PUT/DELETE` | `/projects/{id}` | 项目详情 / 更新 / 删除 | | `GET/POST` | `/builds` | 构建列表 / 触发构建 | | `GET` | `/builds/{id}` | 构建详情 | | `WS` | `/builds/{id}/ws` | 实时构建日志(WebSocket) | ## 项目结构 ``` cmd/server/ 应用入口 internal/ api/ HTTP 路由、处理器、中间件 build/ 构建引擎、语言检测器、日志流 store/ 数据访问层(SQLite + GORM) model/ 数据模型(User、Project、Build、BuildLog) auth/ JWT 认证 + bcrypt 密码哈希 config/ 环境变量配置 web/ 前端(React 19 + TypeScript + Ant Design 6) deploy/ Dockerfile、Kubernetes 配置 docs/ 架构文档、迭代规划 ``` ## 构建流水线 ``` Git Push → Webhook 触发 → 克隆仓库 → 检测语言 → 生成 Dockerfile → docker build → docker push ``` ## 开发指南 ```bash # 后端 make dev # go run 启动开发服务器 make build # 编译到 bin/ 目录 # 前端 make frontend # 安装依赖 + 启动 Vite 开发服务器 cd web && npm run lint # 代码检查 # Docker make docker # 构建容器镜像 ``` ## 开源协议 MIT