A comprehensive DevOps project demonstrating CI/CD pipeline implementation for deploying a Next.js application to Azure Kubernetes Service (AKS) using GitHub Actions.
Final Project Report: View Documentation
This project showcases a complete DevOps workflow that includes:
- Frontend Application: Next.js application with TypeScript and Tailwind CSS
- Containerization: Docker containerization for consistent deployments
- CI/CD Pipeline: GitHub Actions pipeline for automated build and deployment
- Container Registry: Azure Container Registry for image storage
- Orchestration: Azure Kubernetes Service for container orchestration
- Next.js 15.2.4 - React framework
- TypeScript - Type-safe JavaScript
- Tailwind CSS - Utility-first CSS framework
- Radix UI - Accessible component library
- Lucide React - Icon library
- GitHub Actions - CI/CD pipeline management
- Azure Container Registry - Container image registry
- Azure Kubernetes Service - Container orchestration
- Docker - Containerization platform
The following screenshots showcase real-time deployments from our CI/CD workflow:
Detailed ScreenShorts are available in : Documentation
- Node.js 18 or higher
- Docker
- GitHub account
- Azure subscription
- kubectl (for local Kubernetes management)
-
Clone the repository
git clone https://github.com/akash2061/Celebal-DevOps-Project cd Celebal-DevOps-Project -
Navigate to the App directory
cd App -
Install dependencies
npm install --legacy-peer-deps # or pnpm install --legacy-peer-deps -
Run the development server
npm run dev
-
Open your browser Navigate to http://localhost:80
-
Build the Docker image
cd App docker build -t my-v0-project .
-
Run the container
docker run -p my-v0-project
The project implements a complete CI/CD pipeline as illustrated in the diagram above:
- Source Control: Developer commits code to GitHub repository
- Feature Branch: Development work happens in feature branches
- Pull Request: Code review and merge to main branch
- Build Pipeline:
- Code compilation and testing
- Docker image creation
- Push to Azure Container Registry
- Generate deployment artifacts
- Release Pipeline: Deploy to Azure Kubernetes Service
The pipeline is configured to:
- Build the Next.js application
- Create Docker images
- Push images to Azure Container Registry
- Deploy to AKS cluster
- Run on port 80
The Dockerfile uses multi-stage builds for optimization:
- Base stage: Install dependencies and build the application
- Production stage: Create lightweight production image
Key features:
- Uses Node.js 18 Alpine for smaller image size
- Optimized for production deployment
- Exposes port 80
- Includes only necessary files for runtime
-
Set up Azure resources
- Create AKS cluster
- Set up Azure Container Registry
- Configure GitHub secrets for authentication
-
Configure GitHub secrets
- Container registry URL
- Kubernetes namespace
- Azure service principal credentials
-
Deploy using GitHub Actions
- Pipeline automatically triggers on code commits
- Builds and pushes container images
- Deploys to AKS cluster
K8s Deployment Manifest using ACR : ACR-K8s
K8s Deployment Manifest using Docker-Hub : Docker-Hub-K8s
-
Celebal Deployment Pipeline : Complete CI/CD pipeline that builds images and deploys to Azure Kubernetes Service (automated deployments)
-
Docker Image CI : Builds and pushes Docker images to Docker Hub @u/akash2061 (manual trigger | Fallback Option)
-
Azure Container Registry CI : Migrates Docker images from Docker Hub to Azure Container Registry (manual trigger)
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
- Ensure all GitHub Actions checks pass
Additional documentation can be found in the Docs directory:
- Pipeline architecture diagrams
- Detailed project presentation
- Infrastructure setup guides
Available npm scripts in package.json:
{
"dev": "next dev -p 80", // Development server
"build": "next build", // Production build
"start": "next start -p 80", // Production server
"lint": "next lint" // Code linting
}This project is part of a DevOps learning initiative and is intended for educational purposes.
Note: This project demonstrates enterprise-grade DevOps practices including automated testing, security scanning, and production deployment strategies using GitHub Actions and Azure cloud services.







