{"id":18086392,"url":"https://github.com/mdazfar2/github-actions-eks-cicd-cafe-coffee","last_synced_at":"2026-05-02T18:32:01.500Z","repository":{"id":229044699,"uuid":"775443634","full_name":"mdazfar2/Github-Actions-EKS-CICD-Cafe-Coffee","owner":"mdazfar2","description":"React App with Github Actions to Amazon EKS using Docker, SonarQube, and Terraform. Efficient, scalable, and reliable DevOps workflow.","archived":false,"fork":false,"pushed_at":"2024-03-24T17:30:49.000Z","size":1374,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-07-18T07:40:27.158Z","etag":null,"topics":["cicd-pipeline","docker","eks-cluster","github-actions","sonarqube","terraform","trivy-scan"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mdazfar2.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-03-21T12:00:11.000Z","updated_at":"2024-03-21T13:36:03.000Z","dependencies_parsed_at":"2024-03-24T18:30:04.158Z","dependency_job_id":null,"html_url":"https://github.com/mdazfar2/Github-Actions-EKS-CICD-Cafe-Coffee","commit_stats":null,"previous_names":["mdazfar2/github-actions-eks-cicd-cafe-coffee"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mdazfar2/Github-Actions-EKS-CICD-Cafe-Coffee","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdazfar2%2FGithub-Actions-EKS-CICD-Cafe-Coffee","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdazfar2%2FGithub-Actions-EKS-CICD-Cafe-Coffee/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdazfar2%2FGithub-Actions-EKS-CICD-Cafe-Coffee/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdazfar2%2FGithub-Actions-EKS-CICD-Cafe-Coffee/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mdazfar2","download_url":"https://codeload.github.com/mdazfar2/Github-Actions-EKS-CICD-Cafe-Coffee/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdazfar2%2FGithub-Actions-EKS-CICD-Cafe-Coffee/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278693628,"owners_count":26029559,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-06T02:00:05.630Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cicd-pipeline","docker","eks-cluster","github-actions","sonarqube","terraform","trivy-scan"],"created_at":"2024-10-31T16:07:47.926Z","updated_at":"2025-10-06T23:20:29.392Z","avatar_url":"https://github.com/mdazfar2.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Github-Actions-EKS-CICD-Cafe-Coffee\n\n## Workflow Diagram of my Project -\n![workflow-diagram](https://github.com/mdazfar2/Github-Actions-EKS-CICD-Cafe-Coffee/assets/100375390/18fc51ab-7ccc-4971-a37c-9e740b854331)\n\n# Description \nWelcome to Github-Actions-EKS-CICD-Cafe-Coffee! This project aims to streamline the deployment pipeline for a MERN (MongoDB, Express.js, React.js, Node.js) web application using a DevOps approach. By leveraging GitHub Actions, Docker, Terraform, and SonarQube, we've crafted an automated Continuous Integration/Continuous Deployment (CI/CD) pipeline that ensures efficiency, reliability, and quality in deploying your MERN web application to Amazon Elastic Kubernetes Service (EKS).\n\n## Key Features -\n\n- **Automated EKS Cluster Creation**: Utilize Terraform to automate the provisioning of Amazon EKS clusters, providing a scalable and managed Kubernetes environment.\n- **Dockerized Deployment**: Docker containers are used to package the MERN application, ensuring consistency across different environments and facilitating easy deployment.\n- **Github Actions Integration**: Seamlessly integrate Github Actions for automating the CI/CD pipeline, enabling continuous integration, code quality checks, and deployment.\n- **SonarQube Integration**: Enhance code quality and security with SonarQube static code analysis, integrated into the CI/CD pipeline for thorough code inspection.\n- **Secure Secrets Management**: Safely manage sensitive information such as API keys and credentials through Github Actions secrets, ensuring secure integration with external services like SonarQube.\n\n  ## Getting Started -\n\n  ## Prerequisites\n\n     1. **AWS Account:** You need an AWS account to utilize services like Amazon EKS and EC2. If you don't have an AWS account, you can [create one here](https://signin.aws.amazon.com/signin?redirect_uri=https%3A%2F%2Fconsole.aws.amazon.com%2Fconsole%2Fhome%3FhashArgs%3D%2523%26isauthcode%3Dtrue%26nc2%3Dh_ct%26src%3Dheader-signin%26state%3DhashArgsFromTB_ap-southeast-2_aacbff57e379dd11\u0026client_id=arn%3Aaws%3Asignin%3A%3A%3Aconsole%2Fcanvas\u0026forceMobileApp=0\u0026code_challenge=gz0r28YwtQey_P0ZDDgYsMbdjUHsI0LNhXn3s58m1nU\u0026code_challenge_method=SHA-256).\n \n     2. **EC2 Instance with Ubuntu AMI:**\n            - **Launch EC2 Instance:** Log in to your AWS Management Console and navigate to EC2. Launch an EC2 instance with Ubuntu AMI by following these steps:\n\n         - Choose an Ubuntu AMI (Amazon Machine Image).\n         - Select the instance type. For this project, choose \"t2.medium\" to ensure sufficient resources.\n         - Configure instance details according to your requirements.\n         - Add storage: Choose at least 20GB of storage to accommodate the application and dependencies.\n         - Configure security group and key pair settings.\n         - Review and launch the instance.\n         - Connect to EC2 Instance: Once the instance is launched, connect to it using SSH or any other preferred method. This instance will serve as your development environment and may also be used to execute Terraform scripts.\n       \n\n\n## Now work on terminal - \n \n  - now run the script for downloading- trivy, terraform, aws, kubectl, node, java in above repo you will get the ```script``` named ```tools.sh```\n \n    ```bash\n    chmod +x ./tools.sh\n    ./tools.sh\n    ```\n\n  - Now check the whole tools that you have download-\n \n    ```bash\n    trivy --version\n    terraform --version\n    aws --version\n    kubectl version\n    node -v\n    java --version\n    ```\n\n    - Firstly lauch Sonarqube using this -\n    \n    ```bash\n    docker run -d --name sonar -p 9000:9000 sonarqube:lts-community\n    ```\n  - Then use the ip with port :9000 in your browser then SonarQube start, and type username- ```admin``` and password- ```admin```.\n\n  - Now, execute below commands one by one\n\n    ```bash\n    git clone https://github.com/mdazfar2/Github-Actions-EKS-CICD-Cafe-Coffee.git\n    ```\n    ```bash\n    cd Github-Actions-EKS-CICD-Cafe-Coffee\n    ```\n \n    # Create s3 bucket using following commands -\n\n    ```bash\n    cd s3-bucket\n    ```\n\n    ```bash\n    terraform init\n    ```\n\n    ```bash\n    terraform fmt\n    ```\n\n    ```bash\n    terraform validate\n    ```\n\n    ```bash\n    terraform plan\n    ```\n\n    ```bash\n    terraform apply --auto-approve\n    ```\n\n    ```bash\n    cd ..\n    ```\n\n    - **Now check your S3 bucket that it is created or not**\n   \n  # Now create EKS Cluster-\n\n   ```bash\n   cd Eks-terraform\n   ```\n\n  ```bash\n  terraform init\n  ```\n\n  ```bash\n  terraform fmt\n  ```\n\n  ```bash\n  terraform validate\n  ```\n\n  ```bash\n  terraform plan\n  ```\n\n  ```bash\n  terraform apply --auto-approve\n  ```\n\n  ```bash\n  cd ..\n  ```\n- Now, use the process of GitHub Runner in your terminal. The command will take you to Settings \u003e Actions \u003e Runners \u003e new self-hosted runner. Then, choose Linux and follow all the steps.\n\n***If you encounter any hurdles or technical challenges along the way, know that I'm here to assist you every step of the journey. Feel free to reach out to me for support and guidance. You can easily connect with me through [LinkedIn](https://linkedin.com/in/md-azfar-alam), [Instagram](https://www.instagram.com/azfarxx_/) or [Discord](https://discord.com/users/877531143610708028)***\n\n##  Looking forward to helping you succeed! ✨\n     \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmdazfar2%2Fgithub-actions-eks-cicd-cafe-coffee","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmdazfar2%2Fgithub-actions-eks-cicd-cafe-coffee","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmdazfar2%2Fgithub-actions-eks-cicd-cafe-coffee/lists"}