π― Overview β’ β¨ Features β’ ποΈ Architecture β’ π Quick Start β’ π Documentation β’ π¨βπ» Author
Durga Puja DevOps Platform is a comprehensive, production-ready demonstration of modern DevOps practices, showcasing end-to-end automation from code to deployment. This project implements a full-stack photo-sharing application with complete CI/CD pipelines, infrastructure as code, container orchestration, and observability.
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β ποΈ Infrastructure as Code | βοΈ Complete Automation β
β π³ Containerized Apps β π Real-time Monitoring β
β βΈοΈ Kubernetes Orchestration β π GitOps Workflows β
β π Security First Design β π Auto-scaling Ready β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
β
Multi-AZ VPC Design (3 Availability Zones) |
β
Amazon EKS (Kubernetes 1.28) |
|
β
Automated Testing (Frontend & Backend) |
β
ArgoCD for Continuous Deployment |
|
β
Deployments with 3 Replicas |
β
Prometheus for Metrics Collection |
graph TB
subgraph "Developer Workflow"
A[π©βπ» Developer] -->|Push Code| B[GitHub Repository]
end
subgraph "CI/CD Pipeline"
B -->|Trigger| C[GitHub Actions]
C -->|Test| D[Run Tests]
C -->|Scan| E[Security Scan]
C -->|Build| F[Docker Build]
F -->|Push| G[Docker Hub]
G -->|Validate| H[Terraform Check]
H -->|Validate| I[Kubernetes Check]
end
subgraph "GitOps Deployment"
G -->|Image Available| J[ArgoCD]
J -->|Monitor| K[Kubernetes Cluster]
end
subgraph "AWS Infrastructure"
K -->|Deploy to| L[EKS Cluster]
L -->|Frontend Pods| M[React App]
L -->|Backend Pods| N[Node.js API]
N -->|Connect| O[RDS PostgreSQL]
N -->|Cache| P[ElastiCache Redis]
M -->|Store| Q[S3 Bucket]
end
subgraph "Monitoring"
L -->|Metrics| R[Prometheus]
R -->|Visualize| S[Grafana]
end
subgraph "Traffic Flow"
T[π Internet] -->|HTTPS| U[Application Load Balancer]
U -->|Route| M
U -->|API Calls| N
end
style A fill:#FF6B6B
style B fill:#4ECDC4
style C fill:#95E1D3
style L fill:#F38181
style R fill:#AA96DA
style S fill:#FCBAD3
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Internet Users β
ββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β AWS Application Load Balancer β
β (Port 80/443 - SSL Termination) β
ββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββββββ
βββββββββββββββββ΄ββββββββββββββββ
β β
βΌ βΌ
ββββββββββββββββββββ ββββββββββββββββββββ
β Frontend Pods β β Backend Pods β
β (React + Vite) βββββββββββββΊβ (Node.js) β
β Replicas: 3-10 β β Replicas: 3-10 β
ββββββββββββββββββββ ββββββββββ¬ββββββββββ
β
ββββββββββββββββββββββΌβββββββββββββββββββββ
β β β
βΌ βΌ βΌ
ββββββββββββββββββββ ββββββββββββββββββββ βββββββββββββββ
β RDS Postgres β β ElastiCache Redisβ β S3 Bucket β
β (Database) β β (Cache) β β (Storage) β
ββββββββββββββββββββ ββββββββββββββββββββ βββββββββββββββ
VPC: 10.0.0.0/16
β
ββ AZ 1 (us-east-1a)
β ββ Public Subnet: 10.0.1.0/24 β NAT Gateway, ALB
β ββ Private Subnet: 10.0.11.0/24 β EKS Worker Nodes
β ββ Database Subnet: 10.0.21.0/24 β RDS, ElastiCache
β
ββ AZ 2 (us-east-1b)
β ββ Public Subnet: 10.0.2.0/24
β ββ Private Subnet: 10.0.12.0/24
β ββ Database Subnet: 10.0.22.0/24
β
ββ AZ 3 (us-east-1c)
ββ Public Subnet: 10.0.3.0/24
ββ Private Subnet: 10.0.13.0/24
ββ Database Subnet: 10.0.23.0/24
|
Required Tools
|
AWS Requirements
|
git clone https://github.com/SHUBHADEEPXT/Durga-Puja_Website_Project.git
cd Durga-Puja_Website_Projectaws configure
- AWS Access Key ID: YOUR_ACCESS_KEY
- AWS Secret Access Key: YOUR_SECRET_KEY
- Default region: us-east-1
- Default output format: json
Add these secrets to your GitHub repository:
- DOCKER_USERNAME # Your Docker Hub username
- DOCKER_PASSWORD # Your Docker Hub password
- AWS_ACCESS_KEY_ID # AWS Access Key
- AWS_SECRET_ACCESS_KEY # AWS Secret Key
- MONGODB_PASSWORD # Database password
- REDIS_PASSWORD # Redis password
- VITE_API_URL # Frontend API URL
cd infrastructure/terraform
- Initialize Terraform
terraform init
- Review the plan
terraform plan
- Deploy (takes ~25 minutes)
terraform apply -auto-approve
- Update kubeconfig
aws eks update-kubeconfig --region us-east-1 --name durga-puja-eks
- Verify connection
kubectl get nodes
cd ../kubernetes
- Deploy all resources
kubectl apply -f namespaces/
kubectl apply -f configmaps/
kubectl apply -f secrets/
kubectl apply -f deployments/
kubectl apply -f services/
kubectl apply -f ingress/
- Wait for pods
kubectl get pods -n durga-puja -w
- Add Helm repo
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update
- Install monitoring stack
helm install monitoring prometheus-community/kube-prometheus-stack \
--namespace monitoring \
--create-namespace \
--set grafana.adminPassword=admin123
- Install ArgoCD
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
- Get admin password
kubectl -n argocd get secret argocd-initial-admin-secret \
-o jsonpath="{.data.password}" | base64 -d
- Get Application URL
kubectl get ingress -n durga-puja
- Port-forward Grafana
kubectl port-forward -n monitoring svc/monitoring-grafana 3000:80
- Port-forward ArgoCD
kubectl port-forward -n argocd svc/argocd-server 8080:443
| π Document | π§Ύ Description |
|---|---|
| Architecture Guide | Detailed architecture and design decisions |
| Deployment Guide | Step-by-step deployment instructions |
| Configuration Guide | Configuration options and customization |
| Monitoring Guide | Setting up and using monitoring tools |
| Security Guide | Security best practices and hardening |
| Troubleshooting | Common issues and their solutions |
| Cost Analysis | AWS cost breakdown and optimization |
##π What I Learned
#### βοΈ Cloud & Infrastructure
|
#### π DevOps & Automation
|
#### π Monitoring & Operations
|
##π£οΈ Roadmap
- Complete AWS infrastructure with Terraform
- Kubernetes cluster setup and configuration
- CI/CD pipeline with GitHub Actions
- Docker image registry integration
- GitOps with ArgoCD
- Monitoring with Prometheus/Grafana
- Service Mesh (Istio) integration
- Multi-region deployment
- Advanced security scanning
- Automated backup and DR
- Canary deployments
- Integration testing automation
-
Contributions, issues, and feature requests are welcome but from Early December 2025!
-
Fork the Project
-
Create your Feature Branch (git checkout -b feature/AmazingFeature)
-
Commit your Changes (git commit -m 'Add some AmazingFeature')
-
Push to the Branch (git push origin feature/AmazingFeature)
-
Open a Pull Request
See CONTRIBUTING.md for detailed guidelines.
- This project is licensed under the MIT License - see the LICENSE file for details.
- Terraform AWS Modules
- Kubernetes Documentation
- ArgoCD Documentation
- Prometheus Community
- Grafana Labs
-
If you find this project helpful, please consider giving it a βοΈ!
-
For questions or support:
-
π§ Email: shubhadeep010@gmail.com
-
π¬ Open an Issue
-
π Check the Documentation
- π« Show Your Support
- If this project helped you learn something new, please give it a βοΈ!
βοΈ Star this repository if you found it helpful!
π΄ Fork it to create your own version!
π« Connect with me on LinkedIn!