{"id":35053928,"url":"https://github.com/sonikro/nodejs-api-aws-terraform-gha","last_synced_at":"2026-04-07T23:31:56.926Z","repository":{"id":75651565,"uuid":"503782077","full_name":"sonikro/nodejs-api-aws-terraform-gha","owner":"sonikro","description":"Repository used in presentation about cloud development","archived":false,"fork":false,"pushed_at":"2026-02-14T11:36:26.000Z","size":533,"stargazers_count":1,"open_issues_count":7,"forks_count":0,"subscribers_count":5,"default_branch":"main","last_synced_at":"2026-02-14T20:06:00.781Z","etag":null,"topics":["actions","aws","ecs","express","fargate","gha","github","jest","load-balancer","nodejs","terraform","terragrunt","typescript"],"latest_commit_sha":null,"homepage":"","language":"HCL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sonikro.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-06-15T13:40:59.000Z","updated_at":"2022-10-21T17:42:46.000Z","dependencies_parsed_at":null,"dependency_job_id":"831024cf-795d-47d8-89eb-2421f2485ec1","html_url":"https://github.com/sonikro/nodejs-api-aws-terraform-gha","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/sonikro/nodejs-api-aws-terraform-gha","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sonikro%2Fnodejs-api-aws-terraform-gha","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sonikro%2Fnodejs-api-aws-terraform-gha/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sonikro%2Fnodejs-api-aws-terraform-gha/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sonikro%2Fnodejs-api-aws-terraform-gha/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sonikro","download_url":"https://codeload.github.com/sonikro/nodejs-api-aws-terraform-gha/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sonikro%2Fnodejs-api-aws-terraform-gha/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31533823,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T16:28:08.000Z","status":"ssl_error","status_checked_at":"2026-04-07T16:28:06.951Z","response_time":105,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5: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":["actions","aws","ecs","express","fargate","gha","github","jest","load-balancer","nodejs","terraform","terragrunt","typescript"],"created_at":"2025-12-27T09:41:24.003Z","updated_at":"2026-04-07T23:31:56.914Z","avatar_url":"https://github.com/sonikro.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n## Badges\n\n[![.github/workflows/release.yaml](https://github.com/sonikro/nodejs-api-aws-terraform-gha/actions/workflows/release.yaml/badge.svg?branch=main)](https://github.com/sonikro/nodejs-api-aws-terraform-gha/actions/workflows/release.yaml)\n[![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\n\n# nodejs-api-aws-terraform-gha\n\nThis project is a sample NodeJS API with Typescript, and is being used to demonstrate the process of developing and deploying an application to production.\n\n## Tech Stack\n\n**Server:** Node, Express, Typescript, Jest\n\n**Infrastructure-as-Code**: Terragrunt, Terraform\n\n**CI/CD**: Github Actions\n\n**Cloud**: AWS\n\n**Cloud Resources**: ECS, ECR, Load Balancers, VPC, Route53, Cloudwatch, IAM\n\n## Run Locally\n\nClone the project\n\n```bash\n  git clone https://github.com/sonikro/nodejs-api-aws-terraform-gha.git\n```\n\nGo to the project directory\n\n```bash\n  cd nodejs-api-aws-terraform-gha\n```\n\nInstall dependencies\n\n```bash\n  yarn\n```\n\nStart the server\n\n```bash\n  yarn start\n```\n\n## Environment Variables\n\nTo run this project, you will need to add the following environment variables to your .env file\n\n`PORT` | Default to 8080\n## Running Tests\n\nTo run tests, run the following command\n\n```bash\n  yarn test\n```\n\n## API Reference\n\n#### Get all customers\n```http\n  GET /customer\n```\n\n#### Create a Customer\n\n```http\n  POST /customer\n  {\n\t\t\"id\": \"1\",\n\t\t\"email\": \"some@email.com\",\n\t\t\"name\": \"Some name\"\n  }\n```\n\n| Parameter | Type     | Description                       |\n| :-------- | :------- | :-------------------------------- |\n| `body`      | `json` | Customer being added|\n\n## Integration between Github and AWS\n\nTo connect your runner to your AWS Account, you need to setup an OIDC in AWS to allow your repository to assume a specific role.\nFor more information, see [https://docs.github.com/en/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services](https://docs.github.com/en/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services)\n\n\u003e :warning: **Deploying this to your AWS Account will incur costs**:\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsonikro%2Fnodejs-api-aws-terraform-gha","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsonikro%2Fnodejs-api-aws-terraform-gha","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsonikro%2Fnodejs-api-aws-terraform-gha/lists"}