TechNova DevOps Project :- This is a beginner-friendly DevOps project to learn how to automate deployments using:
- Node.js (Simple web app)
- Docker (Containerize the app)
- Jenkins (CI/CD tool)
- AWS EC2 (Deploy app to the cloud)
- Terraform (Create EC2 server using code)
- GitHub + DockerHub (Store code and Docker image)
- Project Folder Files File/Folder Description
hello.js– Node.js file – a basic web app (runs on port 3000)Dockerfile– Builds a Docker image from hello.jspackage.json– Lists Node.js packages (dependencies)node_modules/– Auto-generated folder when you runnpm installterraform/– Containsmain.tfandvariables.tfto launch EC2main.tf– Terraform script to create AWS EC2 servervariables.tf– Stores EC2 configuration variablesREADME.md– This file explaining your project
Here’s what each file or folder does:
- Project Setup (Step-by-Step) 1. Clone Your Repository
git clone https://github.com/your-username/your-repo.git
cd your-repo2. Install Node Modules
npm install3. Run Node.js App
node hello.jsVisit: http://localhost:3000
- ■ Docker Setup 4. Build Docker Image
docker build -t technova-app .5. Run Docker Container
docker run -p 3000:3000 technova-appVisit: http://localhost:3000
- ■■ Terraform Setup (AWS EC2) 6. Initialize Terraform
cd terraform
terraform init7. Apply Terraform
terraform applyRespond with yes
- Jenkins Setup Go to Jenkins > Manage Jenkins > Credentials > (global) Add these:
- ID: github-token (your GitHub token)
- ID: dockerhub-cred (your DockerHub login) Create pipeline job to:
- Clone repo
- Build image
- Push to DockerHub
- Deploy to EC2
- Important: .gitignore
Add this to
.gitignoreto avoid uploading sensitive files:
- Important: .gitignore
Add this to
node_modules/
technovat1.pem
terraform.tfstate■ Author
- Kshitij
- Role: AWS EC2, Docker, Terraform & Jenkins Automation
- ■ License
- This project is for educational purposes.