sabryp3/QR-code-generator-CI-CD

GitHub: sabryp3/QR-code-generator-CI-CD

基于AWS EKS的完整DevSecOps流水线示例项目,集成Terraform基础设施管理、ArgoCD GitOps部署、SonarQube/Trivy安全扫描和Prometheus/Grafana监控。

Stars: 0 | Forks: 0

# **📱 带 CI/CD 流水线的二维码生成器**

Next.js FastAPI AWS EKS Terraform ArgoCD Kubernetes GitHub Actions

This project implements a complete DevSecOps pipeline that provisions AWS infrastructure (VPC, EKS), deploys a Node.js/FastAPI application using Argocd on EKS, and integrates CI/CD with GitHub Actions for secure, automated builds. 该流水线具有以下特点: - 使用 Terraform 进行 AWS 资源配置的 Infrastructure as Code (IaC) - 由 GitHub Actions 驱动的 CI/CD 自动化,并采用安全的 AWS OIDC 认证 - 集成到流水线中的安全扫描: - SonarQube 用于静态代码分析 - Trivy 用于容器漏洞扫描 - 使用 ArgoCD 进行 GitOps 部署,持续同步并将工作负载部署到 Amazon EKS ![CI/CD](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/ec1b568bf4063912.svg) # 📋 项目概述 前端:Next.js (Node.js 24) 后端:Python FastAPI (3.12) 基础设施:AWS EKS, VPC, S3 (Terraform) CI/CD:GitHub Actions, Docker, Helm, ArgoCD 安全:SonarQube, Trivy, OIDC 监控:Prometheus & Grafana # 📁 仓库结构 ``` . ├── api/ # Python FastAPI backend ├── front-end-nextjs/ # Next.js frontend ├── terraform/ # Infrastructure as Code (AWS EKS, VPC, S3) ├── .github/workflows/ # CI/CD pipelines (GitHub Actions) ├── argocd/ # GitOps configuration └── qr-helm/ # Kubernetes Helm charts to be used by ArgoCD ``` # ✨ 功能特性 ✅ 根据任意 URL 生成二维码 🌐 基于 Web 的用户界面 (Next.js) ☁️ AWS S3 云存储集成 🚀 基于 Kubernetes 的部署 (EKS) 🔁 使用 ArgoCD 的 GitOps 工作流 🏗️ 使用 Terraform 的 Infrastructure as Code 📊 自动化监控 (Prometheus/Grafana) 🛡️ 安全扫描 (SonarQube, Trivy) # 🛠️ 技术栈 | **类别** | **技术** | |------------------|-------------------------------------------------------------------------------| | **Frontend** | Next.js, Node.js 24 | | **Backend** | Python 3.12, FastAPI | | **Infrastructure** | AWS (EKS, VPC, S3), Terraform ~1.0 | | **CI/CD** | GitHub Actions, Helm, ArgoCD | | **Monitoring** | Prometheus, Grafana | | **Security** | SonarCloud, Trivy (container), OIDC authentication | | **Networking** | NGINX Ingress, VPC with public/private subnets, TLS/HTTPS | # ✅ 前置条件 拥有具备适当 IAM 权限的 AWS 账户 安装 Terraform >= 1.0 已配置 kubectl 在你的仓库上启用 GitHub Actions 使用你的 Github 仓库配置 OIDC 认证 设置环境变量: S3_BUCKET_NAME, AWS_REGION, EKS_CLUSTER 配置 GitHub Secrets: SONAR_TOKEN, DOCKERHUB_TOKEN, AWS_ROLE_ARN (用于 OIDC 集成), ARGOCD_ADMIN_PASSWORD # 🔄 CI/CD 流水线工作流 **1. CI.yml – 构建并推送 Docker 镜像** 🔍 使用 SonarQube 进行代码质量分析 🧪 使用 pytest 进行 Python API 测试 🐳 使用 Docker Buildx 构建 Docker 镜像 (API & Frontend) 🔎 Trivy 漏洞扫描 (严重/高危级别) 📦 推送至 Docker Hub,使用 git commit hash 打标签 **2. Infra-dep.yaml – 配置基础设施** ✅ Terraform 验证和规划 🛡️ 请求 OIDC token 用于 aws 认证 ☸️ EKS 集群配置 🌐 VPC 和网络设置 📡 NGINX Ingress Controller 安装 🔄 通过 Helm 部署 ArgoCD ⚙️ Cluster Autoscaler 设置 📊 监控组件 (Prometheus/Grafana) 🔗 Kubernetes 连通性验证 **3. infra-del.yaml – 销毁基础设施** 🧹 清理 LoadBalancer 命名空间 🗂️ Terraform 状态管理 💥 基础设施销毁及清理 # 🔒 安全特性 SonarQube – 通过 SonarCloud 进行代码质量和静态分析 Trivy – 扫描 Docker 镜像和 Terraform IaC 的漏洞 GitHub Secrets – 安全存储敏感数据 AWS IAM – 基于 IRSA (IAM Roles for Service Accounts) 的角色访问 Kubernetes RBAC – 细粒度访问控制 网络安全 – 具有公有/私有子网隔离的 VPC ArgoCD – Bcrypt 哈希处理的管理员密码 TLS/HTTPS – 通过 NGINX Ingress 的安全路由 SARIF 集成 – 安全扫描结果显示在 GitHub Security 标签页中 # 🚀 快速开始 克隆仓库。 配置你的 AWS 凭证和 GitHub secrets。 手动运行 CI 流水线或通过 push 触发构建。 使用 Infra-dep.yaml 配置基础设施。 通过 NGINX Ingress URL 访问你的二维码生成器。

用 ❤️ 制作,喝了很多 ☕

标签:ArgoCD, AV绕过, AWS EKS, DevSecOps, Docker, ECS, FastAPI, GitHub Actions, GitOps, GNU通用公共许可证, Grafana, Helm, MITM代理, Node.js, OIDC, Python, S3, SonarQube, Terraform, VPC, Web截图, 上游代理, 二维码生成器, 子域名突变, 安全专业人员, 安全防御评估, 容器安全, 无后门, 自动化运维, 自动笔记, 自定义请求头, 请求拦截, 负责任AI, 逆向工具, 错误基检测, 静态代码分析