React DevOps Demo
A complete CI/CD pipeline project deploying a React app to AWS EC2 using Docker, Nginx, and GitHub Actions — from local development to fully automated production deployment.

Sanity Dashboard — Project Description
Overview
A beginner-to-intermediate DevOps project demonstrating the complete lifecycle of a modern web application — from development to cloud deployment — built with React, Docker, GitHub Actions, and AWS EC2.
Created as part of an ongoing DevOps and Cloud Engineering learning journey, this project implements a real-world CI/CD workflow: every push to main is automatically built, containerized, and deployed to a live server with zero manual intervention.
Architecture
Tech Stack
- Frontend: React, Vite
- Version Control: Git, GitHub
- Containerization: Docker (multi-stage builds)
- CI/CD: GitHub Actions
- Cloud Platform: AWS EC2 (Ubuntu, t2.micro)
- Web Server: Nginx
Key Highlights
- Multi-stage Docker build — separate build and production stages, compiling the React app with Node before serving the static assets through a lightweight Nginx image.
- CI Pipeline — automatically checks out the code and validates the Docker build on every push to
main. - CD Pipeline — uses GitHub Secrets and SSH-based deployment (
appleboy/ssh-action) to connect to EC2, pull the latest code, rebuild the image, and restart the container automatically. - Cloud Infrastructure — a Free Tier AWS EC2 instance provisioned and configured with security groups for SSH, HTTP, and custom ports.
- Zero-touch deployment — no manual server interaction required after setup; a single
git pushtakes code from a local machine to a live public endpoint.
What I Learned
Linux fundamentals, SSH, Docker networking, Nginx configuration, Git/GitHub workflows, GitHub Actions pipelines, AWS EC2 provisioning, and infrastructure automation principles.
Future Improvements
- Docker Compose for multi-container orchestration
- Custom domain with HTTPS (Let's Encrypt)
- Nginx as a reverse proxy
- Prometheus + Grafana monitoring
- Terraform for Infrastructure as Code
- Kubernetes (EKS / K3s) for orchestration
- Multi-environment deployments (staging/production)