Automated CI/CD Platform

View Your Project. Ship with Confidence.

A practical demonstration of continuous integration and continuous deployment using GitHub Actions, Docker, Docker Hub, and AWS EC2.

CI/CD Pipeline

From commit to live website

Six connected stages take a change from a developer's editor to a running container on AWS EC2.

  1. Developer

    Write or update HTML and Dockerfile.

  2. GitHub Repository

    Push changes to the main branch.

  3. GitHub Actions

    Automatically checkout code, validate files, and build the Docker image.

  4. Docker Hub

    Push the image only after a successful build.

  5. AWS EC2

    Pull the latest image and replace the running container.

  6. Live Website

    Serve the updated website over HTTP on port 80.

Every push to the configured branch triggers the automated pipeline.

Technology Stack

The tools behind the pipeline

Each technology has one clear responsibility in the deployment process.

HTML5 and CSS3

Define the structure and styling of the website. This static content is the application that gets packaged and deployed.

Docker

Packages the website and its web server into a container image that runs the same way on any machine with Docker installed.

Git and GitHub

Track every change to the code and host the repository. A push to the configured branch is what starts the pipeline.

GitHub Actions

Runs the workflow automatically: checks out the code, validates files, builds the image, pushes it, and triggers the deployment.

Docker Hub

A container registry that stores the built image so the server can pull the latest version whenever a deployment runs.

AWS EC2

A cloud virtual server that hosts the running container and makes the website reachable over HTTP on port 80.

Linux

The operating system on the EC2 instance. It runs the Docker engine and the commands that pull and start the new container.

Nginx

A lightweight web server inside the container. It serves the static index.html file to visitors' browsers.

How It Works

Four steps, fully automated

After the initial setup, a deployment needs nothing more than a push to GitHub.

Developer pushes code

Changes are committed and pushed to the configured branch on GitHub.

Build and validate

GitHub Actions builds and validates the Docker image.

Publish the image

The image is pushed to Docker Hub only if the build succeeds.

Deploy to EC2

GitHub Actions connects securely to EC2, which pulls and runs the new image.

Benefits

Why automate deployments?

Automation turns releases from a manual checklist into a predictable process.

Automated deployments

Each push runs the same workflow without anyone logging in to the server.

Consistent containerized environments

The same image runs in testing and in production, which avoids "works on my machine" surprises.

Faster delivery

Changes reach the live site shortly after they are pushed, so feedback loops stay short.

Reduced manual work

Building, publishing, and restarting containers are handled by the pipeline instead of by hand.

Repeatable releases

Every release follows identical steps, which lowers the chance of missed commands or human error.

Easier troubleshooting

Workflow logs show which stage failed, and tagged images make it simple to compare or roll back versions.

Architecture

How the data flows

Code moves left to right: source, build, registry, server, and finally the visitor's browser.

Developergit push GitHubsource code GitHub Actionsbuild & validate Docker Hubimage registry AWS EC2pull & run BrowserHTTP, port 80 123 456 Developergit push GitHubsource code GitHub Actionsbuild & validate Docker Hubimage registry AWS EC2pull & run BrowserHTTP, port 80
Numbers on the wide diagram show the order of the flow: 1 Developer → 6 Browser.
About

About this project

CloudDeploy is a static website built for a DevOps internship assignment. The page itself is the application: it is packaged into a Docker image with Nginx and deployed through an automated pipeline.

The goal is to demonstrate a practical, end-to-end CI/CD workflow rather than a complex application.

  • Single static index.html, no build step
  • Served by Nginx inside a Docker container
  • Built and published by GitHub Actions
  • Image stored on Docker Hub, run on AWS EC2