{"id":24586765,"url":"https://github.com/shivarap/cloud-local-app-deployment-pipeline","last_synced_at":"2026-04-16T10:02:17.765Z","repository":{"id":183760366,"uuid":"646238431","full_name":"ShivaRap/Cloud-Local-App-Deployment-Pipeline","owner":"ShivaRap","description":"Comprehensive deployment pipeline for launching applications both locally and on AWS. Utilizes Docker, AWS EKS, and Jenkins for continuous integration and deployment. Aimed at streamlined, scalable app deployment processes.","archived":false,"fork":false,"pushed_at":"2023-06-08T21:18:18.000Z","size":1065,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-29T00:10:30.119Z","etag":null,"topics":["app-deployment","aws","aws-credentials-provider","aws-eks-cluster","ci-cd-pipeline","containerization","devops","docker","docker-compose","jenkins-pipeline","jenkinsfile","kubernetes"],"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/ShivaRap.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":"2023-05-27T18:23:48.000Z","updated_at":"2024-01-20T03:55:20.000Z","dependencies_parsed_at":"2023-09-05T16:30:46.542Z","dependency_job_id":null,"html_url":"https://github.com/ShivaRap/Cloud-Local-App-Deployment-Pipeline","commit_stats":null,"previous_names":["shivarap/portfolio-demo-project-1","shivarap/cloud-local-app-deployment-pipeline"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ShivaRap/Cloud-Local-App-Deployment-Pipeline","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ShivaRap%2FCloud-Local-App-Deployment-Pipeline","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ShivaRap%2FCloud-Local-App-Deployment-Pipeline/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ShivaRap%2FCloud-Local-App-Deployment-Pipeline/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ShivaRap%2FCloud-Local-App-Deployment-Pipeline/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ShivaRap","download_url":"https://codeload.github.com/ShivaRap/Cloud-Local-App-Deployment-Pipeline/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ShivaRap%2FCloud-Local-App-Deployment-Pipeline/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31880884,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-16T09:23:21.276Z","status":"ssl_error","status_checked_at":"2026-04-16T09:23:15.028Z","response_time":69,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["app-deployment","aws","aws-credentials-provider","aws-eks-cluster","ci-cd-pipeline","containerization","devops","docker","docker-compose","jenkins-pipeline","jenkinsfile","kubernetes"],"created_at":"2025-01-24T06:14:20.339Z","updated_at":"2026-04-16T10:02:17.732Z","avatar_url":"https://github.com/ShivaRap.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"Deployment Instructions - Local\n\nThese instructions will guide you through the deployment of the application locally.\n\nStep 1: Clone the Git Repository\nClone the Git repository to your local machine using the following command:\n\n\tgit clone [repository-url]\n\t\nStep 2: Docker Installation\nEnsure that Docker is installed on your machine by visiting the Docker website (https://docs.docker.com/desktop/) and following the installation instructions. Verify the installation by running the following command in your terminal:\n\n\tdocker --version\n\nMake sure the installed version is displayed.\n\nStep 3: Create Dockerfile\nCreate a Dockerfile by utilizing the index.js and package.json files found in the cloned repository. The Dockerfile specifies the instructions for building the Docker image.\n\nStep 4: Create Docker Compose File\nCreate a docker-compose.yml file to define the services and configurations for running the application. This file will orchestrate the creation of the Docker image and the container.\n\nStep 5: Run the Application\nRun the following command to start the application and create the Docker image and container:\n\n\tdocker-compose up -d\n\t\nThis command will build and start the services defined in the docker-compose.yml file.\n\nStep 6: Verify Deployment\nAccess http://localhost:3000/api in your web browser. The endpoint should display \"Hello, World!\". Additionally, access http://localhost:3000/api/health to verify that the application is running smoothly and displays \"Application is super healthy!\".\n\nCongratulations! The application has been successfully deployed locally.\n\n---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\n\nDeploying to Amazon EKS with Docker and Jenkins\n\nPrerequisites:\n\nAn Amazon Web Services (AWS) account\nDocker installed\nkubectl installed (follow the instructions at: https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html)\nawscli installed (follow the instructions at: https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)\nOptional: eksctl can be used to create an EKS cluster easily (refer to: https://anywhere.eks.amazonaws.com/docs/getting-started/install/)\nJenkins instance set up with a Pipeline (For this deployment, it is not recommended to run Jenkins as a Docker container unless you have prior experience with it. Running Jenkins as a container can potentially pose challenges in installing kubectl in the container, which are necessary for the pipeline setup.)\n\nConfiguration:\n\nStep 1: AWS Configuration\n\nLogin to AWS and create an ECR repository (refer to: https://docs.aws.amazon.com/AmazonECR/latest/userguide/repository-create.html)\nCreate an EKS cluster (refer to: https://docs.aws.amazon.com/eks/latest/userguide/create-cluster.html)\nStore your AWS access key ID, Secret access key, and ECR URI credentials for later use.\n\nStep 2: Jenkins Configuration\n\nAccess your Jenkins dashboard in a web browser.\nInstall the required Jenkins plugins:\nCloudBees AWS Credentials Plugin\nKubernetes Plugin\nDocker Pipeline Plugin\nAWS ECR Plugin\n\nConfiguring Jenkins for Docker and kubectl:\n\nIn order for Jenkins to successfully run the pipeline, it requires access to Docker and kubectl that are installed on the server. By default, this connection may not be established, and the necessary paths need to be added manually to Jenkins.\n\nFollow these steps to add the paths:\n\nNavigate to the location where Jenkins is installed on your system.\nExample: /opt/homebrew/Cellar/jenkins-lts/2.401.1/homebrew.mxcl.jenkins-lts.plist\nOpen the homebrew.mxcl.jenkins-lts.plist file.\nLocate the sections where Jenkins and kubectl are installed.\nAdd the paths for both Docker and kubectl installations. This addition should cover all the required paths by default.\n\t   \n           \u003ckey\u003eEnvironmentVariables\u003c/key\u003e\n\t   \u003cdict\u003e\n    \t   \u003ckey\u003ePATH\u003c/key\u003e\n           \u003cstring\u003e/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/homebrew/bin\u003c/string\u003e\n\t   \u003c/dict\u003e\n\t\nStep 3: Configure AWS Credentials in Jenkins\n\nGo to \"Manage Jenkins\" \u003e \"Manage Credentials\".\nClick on \"Global credentials\" domain.\nClick on \"Add Credentials\" on the left-hand side.\nSelect the \"AWS Credentials\" option from the \"Kind\" dropdown.\nEnter a meaningful ID (e.g., awsCred) for your credentials.\nProvide your AWS Access Key ID and Secret Access Key.\nOptionally, add a description for the credentials.\nClick \"Add\" to save the credentials.\n\n\nStep 4: Repository Configuration\n\nCreate a file named \"deployment.yml\" in the root level of your repository. Make sure to use the AWS ECR URI in this deployment file (refer to the deployment.yml file in git repo)\nAdd a Jenkinsfile to the root level of your repository. Reference your Amazon ECR repository URI and the credential ID (e.g., awsCred) in the Jenkinsfile (refer to the provided Jenkinsfile in the git repo).\nJenkins will handle the cloning, building, tagging, pushing, and deployment of the image to your EKS cluster using the deployment file you created earlier.\nThe \"Using curl\" stage in the Jenkinsfile will output the response of the API endpoint in the Jenkins logs itself. You can verify this by running the following command in your command prompt: '$ curl -i external-ip-of-k8s-cluster/3000/api/health'. It should return a 200-OK response code.\t\t\n\nStep 5: Viewing the Web Application\n\nAccess the web application in your browser by going to the external IP of the Kubernetes cluster, which can be found in the final URL and the Jenkins logs (curl -i external-IP-of-K8s-cluster/3000/api/health).\n\nCongratulations! You have successfully deployed a web application to Amazon EKS using Docker and Jenkins\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshivarap%2Fcloud-local-app-deployment-pipeline","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshivarap%2Fcloud-local-app-deployment-pipeline","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshivarap%2Fcloud-local-app-deployment-pipeline/lists"}