A complete end-to-end DevOps project demonstrating how to build, test, containerize, and deploy a React application using modern DevOps tools and practices.
This project automates the entire software delivery lifecycle using Jenkins, Docker, Kubernetes, and AWS.
This project implements a CI/CD pipeline that automatically:
- Pulls source code from GitHub
- Installs project dependencies
- Builds the React application
- Creates a Docker image
- Pushes the image to Docker Hub
- Deploys the application to a Kubernetes cluster
- Verifies successful deployment
The goal is to simulate a production-ready deployment pipeline used by modern software teams.
- React.js
- Node.js
- Jenkins
- Docker
- Docker Hub
- Kubernetes (K3s)
- Git & GitHub
- Linux (Ubuntu)
- Nginx
.
├── public/
├── src/
├── Dockerfile
├── Jenkinsfile
├── deployment.yaml
├── service.yaml
├── package.json
├── package-lock.json
└── README.md
Before running this project, ensure the following tools are installed:
- Node.js 22+
- npm
- Docker
- Jenkins
- kubectl
- Kubernetes (K3s)
- Git
Clone the repository:
git clone https://github.com/<your-username>/<repository>.gitMove into the project directory:
cd <repository>Install dependencies:
npm installStart the development server:
npm startOpen your browser:
http://localhost:3000
npm testnpm run buildThe optimized production build will be generated inside the build/ directory.
Build the Docker image:
docker build -t react-app .Run the container:
docker run -d -p 80:80 react-appDeploy the application:
kubectl apply -f deployment.yaml
kubectl apply -f service.yamlCheck deployment status:
kubectl get deployments
kubectl get pods
kubectl get svcThe Jenkins pipeline performs the following stages:
- Checkout source code from GitHub
- Install npm dependencies
- Run tests
- Build the React application
- Build Docker image
- Push Docker image to Docker Hub
- Deploy to Kubernetes
- Verify deployment
| Command | Description |
|---|---|
npm start |
Starts the development server |
npm test |
Runs the test suite |
npm run build |
Builds the application for production |
npm run eject |
Ejects the Create React App configuration |
- GitHub Webhook integration
- SonarQube code quality analysis
- Trivy container image scanning
- Prometheus monitoring
- Grafana dashboards
- ArgoCD GitOps deployment
- Helm charts
- Multi-environment deployments (Dev, QA, Prod)
This project demonstrates practical experience with:
- CI/CD pipeline design
- Docker containerization
- Kubernetes deployments
- Jenkins Pipeline (Declarative)
- Linux administration
- GitHub integration
- Kubernetes Services and Deployments
- Infrastructure automation
- DevOps best practices
Chanchal Khatua
M.Tech (Computer Science & Engineering), NIT Agartala
Interested in DevOps, Cloud Engineering, Site Reliability Engineering (SRE), and Platform Engineering.
This project is intended for learning and portfolio purposes. Feel free to fork and customize it for your own use.