Skip to content

Samir-CloudAwswithDevops/Hotstar-DevOps-Project-NodeJS

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DevSecOps With Docker Scout Hotstar Clone

#BLOG https://mrcloudbook.com/devsecops-ci-cd-deploying-a-secure-hotstar-clone-even-if-youre-not-a-pro/ Screenshot (377) Screenshot (378) Screenshot (373) Screenshot (360) Screenshot (380)

📌 HOTSTAR Node.js App – DevOps Deployment Guide AWS EC2 + Docker + Docker Hub + GitLab CI/CD

This document explains how to set up and deploy the Hotstar NodeJS Project using:

AWS EC2

Docker & Docker Hub

GitLab CI/CD Pipeline

SSH Deployment to EC2

🚀 1. Create AWS EC2 Server ✔ Create EC2 Instance

Instance – Amazon Linux 2 / Ubuntu

IAM Role – hotstar-role

Key Pair – hotstar-key.pem

Security Group – Allow ports:

22 (SSH)

3000 (NodeJS App)

✔ Connect to Server ssh -i hotstar-key.pem ec2-user@ sudo su -

⚙️ 2. Install Docker & Git on EC2 yum install docker -y systemctl start docker systemctl enable docker

yum install git -y

📥 3. Clone GitHub Repository git clone https://github.com/Samir-CloudAwswithDevops/Hotstar-DevOps-Project-NodeJS.git cd Hotstar-DevOps-Project-NodeJS

🛠 4. Build Docker Image Locally docker build -t hotstar-nodejs-project:latest .

🔐 5. Login to Docker Hub docker login

Username: cloudsamir123 Password: Samir0563 (or Docker Hub Token)

📤 6. Push Docker Image to Docker Hub docker tag hotstar-nodejs-project:latest cloudsamir123/hotstar-nodejs:latest docker push cloudsamir123/hotstar-nodejs:latest

🐳 7. Run Docker Container on EC2 docker run -dt -p 3000:3000 hotstar-nodejs-project:latest

Open in browser:

http://:3000

🔐 8. Create Docker Hub Personal Access Token

Go to Docker Hub → Profile

Account Settings → Security

Personal Access Token → Generate Token

Permissions: Read/Write

Expiry: None

Save the token safely.

🔧 9. Configure GitLab CI/CD Variables

Go to:

Project → Settings → CI/CD → Variables → Add

Key Value DOCKER_HUB_USER cloudsamir123 DOCKER_HUB_PASSWORD Docker Hub token EC2_IP 54.227.160.227 (your EC2 Public IP) EC2_USER ec2-user EC2_SSH_KEY Paste the PEM file content IMAGE_NAME cloudsamir123/hotstar-nodejs:latest 🧾 10. Create .gitlab-ci.yml in Your GitLab Repo stages:

  • build
  • deploy

variables: IMAGE_NAME: "cloudsamir123/hotstar-nodejs" IMAGE_TAG: "latest" CONTAINER_NAME: "hotstar-nodejs" APP_PORT: "3000" DOCKER_TLS_CERTDIR: "/certs"

Use matching Docker client and Docker daemon versions

image: docker:24.0.6 services:

  • docker:24.0.6-dind

before_script:

  • docker info

----------------------------

1️⃣ BUILD & PUSH DOCKER IMAGE

----------------------------

build_and_push: stage: build script: - echo "Logging in to Docker Hub..." - echo "$DOCKER_HUB_PASSWORD" | docker login -u "$DOCKER_HUB_USER" --password-stdin

- echo "Building Docker image..."
- docker build -t "$IMAGE_NAME:$IMAGE_TAG" .

- echo "Pushing image to Docker Hub..."
- docker push "$IMAGE_NAME:$IMAGE_TAG"

only: - main

----------------------------

2️⃣ DEPLOY TO EC2

----------------------------

deploy_container: stage: deploy image: alpine:latest before_script: - apk add --no-cache openssh-client - mkdir -p ~/.ssh - echo "$EC2_SSH_KEY" | tr -d '\r' > ~/.ssh/id_rsa - chmod 600 ~/.ssh/id_rsa - ssh-keyscan -H $EC2_IP >> ~/.ssh/known_hosts

script: - echo "Deploying to EC2..." - ssh $EC2_USER@$EC2_IP " docker pull $IMAGE_NAME:$IMAGE_TAG && docker stop $CONTAINER_NAME || true && docker rm $CONTAINER_NAME || true && docker run -d --restart unless-stopped -p $APP_PORT:$APP_PORT --name $CONTAINER_NAME $IMAGE_NAME:$IMAGE_TAG " only: - main

🟢 11. Run Pipeline

Go to:

CI/CD → Pipelines → Run Pipeline

If all stages pass:

✔ Image builds ✔ Image pushes to Docker Hub ✔ EC2 pulls & runs container

🌐 12. Access Application

Open in browser:

http://:3000

You should see the Hotstar NodeJS App Output 🚀

🎉 Deployment Complete!

Your CI/CD pipeline now:

Automatically builds Docker image

Pushes to Docker Hub

Deploys to EC2 container

Restarts the app automatically

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 48.9%
  • CSS 20.9%
  • HCL 14.3%
  • Shell 8.8%
  • Dockerfile 4.5%
  • HTML 2.6%