{"id":29012421,"url":"https://github.com/akash2061/celebal-devops-project","last_synced_at":"2026-04-09T16:04:16.919Z","repository":{"id":299471420,"uuid":"1003085734","full_name":"akash2061/Celebal-DevOps-Project","owner":"akash2061","description":"A comprehensive DevOps project demonstrating CI/CD pipeline implementation for deploying a Next.js application to Azure Kubernetes Service (AKS) using Azure DevOps.","archived":false,"fork":false,"pushed_at":"2025-06-25T13:35:26.000Z","size":16101,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-25T13:38:04.496Z","etag":null,"topics":["azure-container-registry","azure-devops","azure-kubernetes-services","cloud-computing","cloud-pipeline","devops","docker","docker-container","github-actions","k8s","kubernetes","kubernetes-deployment","pipelines","project","workflow"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/akash2061.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-16T15:45:39.000Z","updated_at":"2025-06-25T13:35:30.000Z","dependencies_parsed_at":"2025-06-16T19:19:34.279Z","dependency_job_id":"3fe47de0-049e-4e1e-a08b-c71d2d3e6fd1","html_url":"https://github.com/akash2061/Celebal-DevOps-Project","commit_stats":null,"previous_names":["akash2061/celebal-devops-project"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/akash2061/Celebal-DevOps-Project","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akash2061%2FCelebal-DevOps-Project","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akash2061%2FCelebal-DevOps-Project/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akash2061%2FCelebal-DevOps-Project/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akash2061%2FCelebal-DevOps-Project/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/akash2061","download_url":"https://codeload.github.com/akash2061/Celebal-DevOps-Project/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akash2061%2FCelebal-DevOps-Project/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267949546,"owners_count":24170673,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-30T02:00:09.044Z","response_time":70,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["azure-container-registry","azure-devops","azure-kubernetes-services","cloud-computing","cloud-pipeline","devops","docker","docker-container","github-actions","k8s","kubernetes","kubernetes-deployment","pipelines","project","workflow"],"created_at":"2025-06-25T18:36:13.872Z","updated_at":"2026-04-09T16:04:16.885Z","avatar_url":"https://github.com/akash2061.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Azure Kubernetes Service Deployment using GitHub Actions\n\nA comprehensive DevOps project demonstrating CI/CD pipeline implementation for deploying a Next.js application to Azure Kubernetes Service (AKS) using GitHub Actions.\n\n[![celebal-deployment-pipeline](https://github.com/akash2061/Celebal-DevOps-Project/actions/workflows/celebal-deployment-pipeline.yml/badge.svg)](https://github.com/akash2061/Celebal-DevOps-Project/actions/workflows/celebal-deployment-pipeline.yml)\n[![Docker Image CI](https://github.com/akash2061/Celebal-DevOps-Project/actions/workflows/docker-image-CI.yml/badge.svg)](https://github.com/akash2061/Celebal-DevOps-Project/actions/workflows/docker-image-CI.yml)\n[![Push Docker-Hub image to ACR](https://github.com/akash2061/Celebal-DevOps-Project/actions/workflows/azure-container-reg-CI.yml/badge.svg)](https://github.com/akash2061/Celebal-DevOps-Project/actions/workflows/azure-container-reg-CI.yml)\n\n## 🏗️ Project Architecture\n\n![GitHub Actions CI/CD Pipeline](Docs/Project_Architecture/azure_devops_cicd.png)\n![GitHub Actions CI/CD Pipeline](Docs/Project_Architecture/High-Level-Architecture.png)\n\n\u003e Final Project Report: [View Documentation](Docs/DevOps_Internship_Final_Project_Documentation.pdf)\n\n## 📋 Project Overview\n\nThis project showcases a complete DevOps workflow that includes:\n\n- **Frontend Application**: Next.js application with TypeScript and Tailwind CSS\n- **Containerization**: Docker containerization for consistent deployments\n- **CI/CD Pipeline**: GitHub Actions pipeline for automated build and deployment\n- **Container Registry**: Azure Container Registry for image storage\n- **Orchestration**: Azure Kubernetes Service for container orchestration\n\n## 🛠️ Technology Stack\n\n### Application\n- **Next.js 15.2.4** - React framework\n- **TypeScript** - Type-safe JavaScript\n- **Tailwind CSS** - Utility-first CSS framework\n- **Radix UI** - Accessible component library\n- **Lucide React** - Icon library\n\n### DevOps \u0026 Infrastructure\n- **GitHub Actions** - CI/CD pipeline management\n- **Azure Container Registry** - Container image registry\n- **Azure Kubernetes Service** - Container orchestration\n- **Docker** - Containerization platform\n\n## 📸 Deployment Snapshots\n\nThe following screenshots showcase real-time deployments from our CI/CD workflow:\n\n### ✅ AKS Deployment Success\n![AKS Deployment Success](Docs/auto_k8s/auto_k8s_result-1.png)\n### ✅ Autoscale Enabled K8s\n![Autoscale Enabled K8s](Docs/auto_k8s/auto_k8s_pods.png)\n### ✅ Single Image on K8s\n![Single Image on K8s](Docs/single_image/single-image_k8s_deployment.png)\n### ✅ Azure Container Registry\n![Container Registry](Docs/ACR_n_NodePool/Container_regestory.png)\n### ✅ Node Pool Creation\n![Node Pool Creation](Docs/ACR_n_NodePool/created_nodepool.png)\n\n\u003e Detailed ScreenShorts are available in : [Documentation](Docs/)\n\n## 🚀 Getting Started\n\n### Prerequisites\n\n- Node.js 18 or higher\n- Docker\n- GitHub account\n- Azure subscription\n- kubectl (for local Kubernetes management)\n\n### Local Development\n\n1. **Clone the repository**\n   ```bash\n   git clone https://github.com/akash2061/Celebal-DevOps-Project\n   cd Celebal-DevOps-Project\n   ```\n\n2. **Navigate to the App directory**\n   ```bash\n   cd App\n   ```\n\n3. **Install dependencies**\n   ```bash\n   npm install --legacy-peer-deps \n   # or\n   pnpm install --legacy-peer-deps \n   ```\n\n4. **Run the development server**\n   ```bash\n   npm run dev\n   ```\n\n5. **Open your browser**\n   Navigate to [http://localhost:80](http://localhost:80)\n\n### Docker Deployment\n\n1. **Build the Docker image**\n   ```bash\n   cd App\n   docker build -t my-v0-project .\n   ```\n\n2. **Run the container**\n   ```bash\n   docker run -p my-v0-project\n   ```\n\n## 🔄 CI/CD Pipeline\n\nThe project implements a complete CI/CD pipeline as illustrated in the diagram above:\n\n### Pipeline Stages\n\n1. **Source Control**: Developer commits code to GitHub repository\n2. **Feature Branch**: Development work happens in feature branches\n3. **Pull Request**: Code review and merge to main branch\n4. **Build Pipeline**: \n   - Code compilation and testing\n   - Docker image creation\n   - Push to Azure Container Registry\n   - Generate deployment artifacts\n5. **Release Pipeline**: Deploy to Azure Kubernetes Service\n\n### Pipeline Configuration\n\nThe pipeline is configured to:\n- Build the Next.js application\n- Create Docker images\n- Push images to Azure Container Registry\n- Deploy to AKS cluster\n- Run on port 80\n\n## 🐳 Docker Configuration\n\nThe [Dockerfile](App/Dockerfile) uses multi-stage builds for optimization:\n\n- **Base stage**: Install dependencies and build the application\n- **Production stage**: Create lightweight production image\n\nKey features:\n- Uses Node.js 18 Alpine for smaller image size\n- Optimized for production deployment\n- Exposes port 80\n- Includes only necessary files for runtime\n\n## 🚀 Deployment\n\n### Azure Kubernetes Service Deployment\n\n1. **Set up Azure resources**\n   - Create AKS cluster\n   - Set up Azure Container Registry\n   - Configure GitHub secrets for authentication\n\n2. **Configure GitHub secrets**\n   - Container registry URL\n   - Kubernetes namespace\n   - Azure service principal credentials\n\n3. **Deploy using GitHub Actions**\n   - Pipeline automatically triggers on code commits\n   - Builds and pushes container images\n   - Deploys to AKS cluster\n\n\u003e K8s Deployment Manifest using ACR : [ACR-K8s](App/manifests/aks_deployment.yml)\n\n\u003e K8s Deployment Manifest using Docker-Hub : [Docker-Hub-K8s](App/manifests/docker_hub_k8s_deployment.yml)\n\n### AKS Pipeline Deployment:\n![GitHub-Workflow](Docs/auto_k8s/auto_k8s_github_action.png)\n\n## 🔁 Workflows \n\n1. **Celebal Deployment Pipeline** : Complete CI/CD pipeline that builds images and deploys to Azure Kubernetes Service _(automated deployments)_\n\n2. **Docker Image CI** : Builds and pushes Docker images to Docker Hub [@u/akash2061](https://hub.docker.com/u/akash2061) _(manual trigger | Fallback Option)_\n\n3. **Azure Container Registry CI** : Migrates Docker images from Docker Hub to Azure Container Registry _(manual trigger)_\n\n## 🤝 Contributing\n\n1. Fork the repository\n2. Create a feature branch\n3. Make your changes\n4. Submit a pull request\n5. Ensure all GitHub Actions checks pass\n\n## 📝 Documentation\n\nAdditional documentation can be found in the [Docs](Docs/) directory:\n- Pipeline architecture diagrams\n- Detailed project presentation\n- Infrastructure setup guides\n\n## 🔧 Scripts\n\nAvailable npm scripts in [package.json](App/package.json):\n\n```json\n{\n  \"dev\": \"next dev -p 80\",      // Development server\n  \"build\": \"next build\",           // Production build\n  \"start\": \"next start -p 80\",   // Production server\n  \"lint\": \"next lint\"              // Code linting\n}\n```\n\n## 📄 License\n\nThis project is part of a DevOps learning initiative and is intended for educational purposes.\n\n---\n\n**Note**: This project demonstrates enterprise-grade DevOps practices including automated testing, security scanning, and production deployment strategies using GitHub Actions and Azure cloud services.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fakash2061%2Fcelebal-devops-project","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fakash2061%2Fcelebal-devops-project","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fakash2061%2Fcelebal-devops-project/lists"}