{"id":14975888,"url":"https://github.com/eltonlazzarin/nodejs-aws-deploy","last_synced_at":"2026-03-05T11:02:15.045Z","repository":{"id":114818490,"uuid":"308981214","full_name":"eltonlazzarin/nodejs-aws-deploy","owner":"eltonlazzarin","description":"Simple Jobs API built in Node.js and deployed on AWS","archived":false,"fork":false,"pushed_at":"2020-11-08T02:58:16.000Z","size":1876,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-11T02:18:10.302Z","etag":null,"topics":["amazonwebservice","awscloud","awsec2","awsexperience","awsskills","backenddeveloper","becomeacloudexpert","developer","docker","dockercompose","dockermachine","javascript","javascriptapp","nodeapi","nodejs","nodejsapplications","programming"],"latest_commit_sha":null,"homepage":"http://ec2-35-175-146-94.compute-1.amazonaws.com:3000","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/eltonlazzarin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2020-10-31T22:15:40.000Z","updated_at":"2020-12-03T16:21:51.000Z","dependencies_parsed_at":null,"dependency_job_id":"8e7e6e51-1e67-4c7c-a105-1052351b04d9","html_url":"https://github.com/eltonlazzarin/nodejs-aws-deploy","commit_stats":{"total_commits":31,"total_committers":2,"mean_commits":15.5,"dds":"0.19354838709677424","last_synced_commit":"26274ea41775fa527ba761adfad5e04ca85d23be"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eltonlazzarin%2Fnodejs-aws-deploy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eltonlazzarin%2Fnodejs-aws-deploy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eltonlazzarin%2Fnodejs-aws-deploy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eltonlazzarin%2Fnodejs-aws-deploy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eltonlazzarin","download_url":"https://codeload.github.com/eltonlazzarin/nodejs-aws-deploy/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241110789,"owners_count":19911396,"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","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":["amazonwebservice","awscloud","awsec2","awsexperience","awsskills","backenddeveloper","becomeacloudexpert","developer","docker","dockercompose","dockermachine","javascript","javascriptapp","nodeapi","nodejs","nodejsapplications","programming"],"created_at":"2024-09-24T13:52:49.139Z","updated_at":"2026-03-05T11:02:10.018Z","avatar_url":"https://github.com/eltonlazzarin.png","language":"JavaScript","readme":"\u003ch3 align=\"center\"\u003e \n  Simple Jobs API built in Node.js and deployed on AWS\n\u003c/h3\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg alt=\"GitHub top language\" src=\"https://img.shields.io/github/languages/top/eltonlazzarin/nodejs-aws-deploy\"\u003e\n\n  \u003cimg alt=\"GitHub language count\" src=\"https://img.shields.io/github/languages/count/eltonlazzarin/nodejs-aws-deploy\"\u003e\n\n  \u003cimg alt=\"GitHub last commit\" src=\"https://img.shields.io/github/last-commit/eltonlazzarin/nodejs-aws-deploy\"\u003e\n\n  \u003cimg alt=\"GitHub issues\" src=\"https://img.shields.io/github/issues/eltonlazzarin/nodejs-aws-deploy\"\u003e\n\n  \u003cimg alt=\"GitHub\" src=\"https://img.shields.io/github/license/eltonlazzarin/nodejs-aws-deploy\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"#-about-the-project\"\u003eAbout The Project\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;|\u0026nbsp;\u0026nbsp;\u0026nbsp;\n  \u003ca href=\"#-backend-technologies\"\u003eBackend Technologies\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;|\u0026nbsp;\u0026nbsp;\u0026nbsp;\n  \u003ca href=\"#-backend-getting-started\"\u003eBackend Getting Started\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;|\u0026nbsp;\u0026nbsp;\u0026nbsp;\n  \u003ca href=\"#-how-to-contribute-backend\"\u003eHow To Contribute\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;|\u0026nbsp;\u0026nbsp;\u0026nbsp;\n  \u003ca href=\"#-backend-license\"\u003eBackend License\u003c/a\u003e\n\u003c/p\u003e\n\n## 👨🏻‍💻 About the project\n\n\u003ch1 align=\"center\"\u003e\n\t\u003cimg alt=\"Project API\" src=\"https://github.com/eltonlazzarin/nodejs-aws-deploy/blob/main/screenshots/api.png\" /\u003e\n\u003c/h1\u003e\n\n\u003cp\u003e\nThis project consists of a simple API that shows some fictional jobs, but the main purpose was to create it to deploy to AWS for learning purposes with the cloud platform, where an EC2 instance was created and an application was uploaded Node.js which is the API itself within a Docker image and finally expose this API on the internet publicly.\u003c/p\u003e\n\n## 🚀 Backend Technologies\n\nTechnologies that I used to develop this api\n\n- [Node.js](https://nodejs.org/en)\n- [Express](https://github.com/expressjs/express)\n- [VS Code](https://code.visualstudio.com) with [EditorConfig](https://marketplace.visualstudio.com/items?itemName=EditorConfig.EditorConfig) and [Prettier RC](https://github.com/prettier/prettier)\n\n## 💻 Backend getting started\n\n### Requirements\n\n- [Node.js](https://nodejs.org/en/)\n- [Yarn](https://classic.yarnpkg.com/) or [npm](https://www.npmjs.com/)\n- [Docker CLI](https://docs.docker.com/engine/reference/commandline/cli)\n- [Docker-Compose CLI](https://docs.docker.com/compose/reference/overview)\n- [Docker-Machine CLI](https://docs.docker.com/machine/install-machine)\n- [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html)\n- [AWS Free Account](https://aws.amazon.com/free/)\n\n**Clone the project and access the folder**\n\n```bash\n$ git clone https://github.com/eltonlazzarin/nodejs-aws-deploy.git\n\n$ cd nodejs-aws-deploy\n```\n\n**Follow the steps below**\n\n```bash\n# Install the dependencies\n$ yarn\n```\n\n## 💻 Run API Locally\n\n**Creating Docker environment with Node.js**\n\n```bash\n# Create docker enviroment\n$ docker-compose up\n```\n\n**Run the API**\n\n```bash\n# Run the API\n$ yarn start\n```\n\n**Acccess the API**\n\nhttp://localhost:3000\n\n## 💻 Deploy API on AWS\n\n**Generating AWS account permissions**\n\n```bash\n$ aws configure\n\n# AWS Console -\u003e AWS User -\u003e My Security Credentials -\u003e AWS IAM credential and click Create access key button and then copy Access key ID and paste bellow\nAWS Access Key ID [***************CTPA]:\n```\n\n\u003ch1 align=\"center\"\u003e\n\t\u003cimg alt=\"AWS Access User\" src=\"https://github.com/eltonlazzarin/nodejs-aws-deploy/blob/main/screenshots/console_user_security.png\" /\u003e\n\u003c/h1\u003e\n\n\u003ch1 align=\"center\"\u003e\n\t\u003cimg alt=\"AWS Create Access Key\" src=\"https://github.com/eltonlazzarin/nodejs-aws-deploy/blob/main/screenshots/create_access_key.png\" /\u003e\n\u003c/h1\u003e\n\n**Create an EC2 instance on AWS**\n\n```bash\n$ docker-machine create --driver amazonec2 INSTANCE_NAME\n```\n\n**Connect the terminal to EC2 instance**\n\n```bash\n$ eval $(docker-machine env INSTANCE_NAME)\n```\n\n**Create docker image in EC2 instance**\n\n```bash\n$ docker-compose up -d\n```\n\n**Expose port 3000 on AWS**\n\nEC2 -\u003e Security Groups -\u003e Select docker-machine -\u003e Inbound -\u003e Edit -\u003e Add Rule -\u003e Type: Custom TCP Rule -\u003e Protocol: TCP -\u003e Port Range: 3000 -\u003e Source: Custom -\u003e 0.0.0.0/0 -\u003e Save\n\n\u003ch1 align=\"center\"\u003e\n\t\u003cimg alt=\"Console AWS EC2\" src=\"https://github.com/eltonlazzarin/nodejs-aws-deploy/blob/main/screenshots/console_ec2.png\" /\u003e\n\u003c/h1\u003e\n\n\u003ch1 align=\"center\"\u003e\n\t\u003cimg alt=\"AWS Expose Port\" src=\"https://github.com/eltonlazzarin/nodejs-aws-deploy/blob/main/screenshots/expose_port.png\" /\u003e\n\u003c/h1\u003e\n\n**Access your API**\n\nEC2 -\u003e Instances -\u003e Select your instance -\u003e Copy and paste Public DNS (IPv4) on your web browser followed by the port, like http://ec2-3-89-91-138.compute-1.amazonaws.com:3000\n\n\u003ch1 align=\"center\"\u003e\n\t\u003cimg alt=\"Access API Via Web Browser\" src=\"https://github.com/eltonlazzarin/nodejs-aws-deploy/blob/main/screenshots/access_api.png\" /\u003e\n\u003c/h1\u003e\n\n**Disconnect terminal to EC2 instance**\n\n```bash\n$ eval $(docker-machine env INSTANCE_NAME -u)\n```\n\n## 🤔 How to contribute backend\n\n**Follow the steps below**\n\n```bash\n# Clone your fork\n$ git clone https://github.com/eltonlazzarin/nodejs-aws-deploy.git\n\n$ cd nodejs-aws-deploy\n\n# Create a branch with your feature\n$ git checkout -b your-feature\n\n# Make the commit with your changes\n$ git commit -m 'feat: Your new feature'\n\n# Send the code to your remote branch\n$ git push origin your-feature\n```\n\nAfter your pull request is merged, you can delete your branch\n\n## 📝 Backend License\n\nThis project is under the MIT license. See the [LICENSE](https://github.com/eltonlazzarin/nodejs-aws-deploy/blob/master/LICENSE) for more information.\n\n---\n\nMade with ♥ by Elton Lazzarin :wave: [Get in touch!](https://www.linkedin.com/in/eltonlazzarin/)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feltonlazzarin%2Fnodejs-aws-deploy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feltonlazzarin%2Fnodejs-aws-deploy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feltonlazzarin%2Fnodejs-aws-deploy/lists"}