Skip to content

saumitra-rajput/notes-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📝 Notes App (Full DevOps Project)

A full-stack notes application built with Django REST Framework (backend) and React (frontend), fully containerized with Docker, automated using Terraform + Ansible, monitored with a complete observability stack, and scalable with Kubernetes.


🗂️ Project Structure

notes-app/
├── application/          # Django backend + React frontend
├── docker-compose.yml    # App + observability stack
├── prometheus.yml        # Prometheus config
├── grafana/              # Grafana provisioning
├── k8s/                  # Kubernetes manifests
├── terraform/            # Infrastructure as Code (AWS EC2)
├── ansible/              # Configuration & deployment automation
└── README.md

🚀 End-to-End DevOps Workflow

Terraform → Create EC2 → Generate Inventory → Ansible → Install Docker → Deploy App

⚙️ 1. Infrastructure Setup (Terraform)

cd terraform
terraform init
terraform apply

📤 Outputs

ec2_public_ip = "x.x.x.x"
ec2_username  = "ubuntu"

🔍 Check anytime

terraform output

🧹 Destroy Infra

terraform destroy

👉 Full details: see terraform/README.md


🔧 2. Configuration & Deployment (Ansible)

cd ansible
chmod +x generate_inventory.sh   # run once
./generate_inventory.sh

🔌 Test connection

ansible -i inventory.ini dev -m ping

🚀 Deploy application

ansible-playbook -i inventory.ini playbooks/noteapp.yml

👉 Full details: see ansible/README.md


🐳 3. Application (Docker Compose)

Once deployed via Ansible, services will be available:

Service URL
Notes App http://:8083
Prometheus http://:9090
Grafana http://:3000
cAdvisor http://:8080

📊 Observability Stack

Included in Docker Compose:

  • Prometheus → Metrics collection
  • Node Exporter → Host metrics
  • cAdvisor → Container metrics
  • Grafana → Dashboards
  • Loki + Promtail → Logging

☸️ Kubernetes Deployment (Optional)

kubectl apply -f k8s/

Includes:

  • Deployments
  • Services
  • Persistent volumes
  • Autoscaling (HPA)

🧰 Tech Stack

Layer Technology
Backend Django, DRF
Frontend React
Database MySQL
Container Docker
IaC Terraform
Config Mgmt Ansible
Orchestration Kubernetes
Monitoring Prometheus, Grafana
Logging Loki

🔥 One-Line Full Deployment

terraform apply -auto-approve && \
cd ansible && \
./generate_inventory.sh && \
ansible-playbook -i inventory.ini playbooks/noteapp.yml

🧠 Key Highlights

  • Infrastructure provisioning using Terraform
  • Automated server configuration using Ansible
  • Containerized microservices architecture
  • Observability with metrics and logs
  • Kubernetes-ready deployment
  • End-to-end DevOps pipeline

📄 License

See LICENSE


💡 This project demonstrates a complete real-world DevOps workflow from provisioning → deployment → monitoring

About

Full-stack notes app (Django/React) with full DevOps pipeline: IaC (Terraform), config mgmt (Ansible), containerization (Docker), orchestration (K8s), & monitoring (Prometheus/Grafana/Loki).

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors