{"id":28560871,"url":"https://github.com/rubensgomes/helloworld-ms","last_synced_at":"2026-05-10T02:18:23.342Z","repository":{"id":297335630,"uuid":"995447386","full_name":"rubensgomes/helloworld-ms","owner":"rubensgomes","description":"A sample Spring Boot microservice.","archived":false,"fork":false,"pushed_at":"2025-06-09T04:25:59.000Z","size":73,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-09T05:24:38.741Z","etag":null,"topics":["aws","ecs","kotlin","microservice","springboot"],"latest_commit_sha":null,"homepage":"https://github.com/rubensgomes","language":"Kotlin","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/rubensgomes.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,"zenodo":null}},"created_at":"2025-06-03T13:48:57.000Z","updated_at":"2025-06-09T04:30:30.000Z","dependencies_parsed_at":"2025-06-09T05:24:47.238Z","dependency_job_id":null,"html_url":"https://github.com/rubensgomes/helloworld-ms","commit_stats":null,"previous_names":["rubensgomes/hello-world-ms","rubensgomes/helloworld-ms"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubensgomes%2Fhelloworld-ms","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubensgomes%2Fhelloworld-ms/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubensgomes%2Fhelloworld-ms/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubensgomes%2Fhelloworld-ms/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rubensgomes","download_url":"https://codeload.github.com/rubensgomes/helloworld-ms/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubensgomes%2Fhelloworld-ms/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259053108,"owners_count":22798412,"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":["aws","ecs","kotlin","microservice","springboot"],"created_at":"2025-06-10T10:01:24.967Z","updated_at":"2026-05-10T02:18:23.338Z","avatar_url":"https://github.com/rubensgomes.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# helloworld-ms\n\nA basic Kotlin Spring Boot microservice.\n\n- Requires Java LTS 21 or greater.\n\n## Update `gradlew` to latest gradle version\n\n```shell\n# update version when needed\n./gradlew wrapper --gradle-version 8.14.3\n```\n\n## Display Java tools installed\n\n```shell\n./gradlew -q javaToolchains\n```\n\n## Install SonarQube for IDE\n\n- This steps assumes you are using `JetBrains IntelliJIDEA`\n- [SonarQube Plugin Installation](https://docs.sonarsource.com/sonarqube-for-ide/intellij/getting-started/installation/)\n\n## Clean Docker Containers, Images and System\n\n```shell\n# remove all containers\ndocker container rm -vf $(docker ps -aq)\ndocker image rm -f $(docker images -aq)\ndocker system prune -a --volumes\n```\n\n## Clean, lint, test, assemble, push\n\n```shell\n# clean the build\n./gradlew clean -i\n```\n\n```shell\n# lint and unit tests\n./gradlew check -i\n```\n\n```shell\n# create a layered bootjar\n./gradlew bootJar -i\n```\n\n```shell\n# build and push bootjar to dockerhub\n./gradlew bootBuildImage -i\n```\n\n```shell\n# only Rubens can release\n./gradlew release -i\n```\n\n## Start and stop using docker compose\n\n- Start docker container:\n\n  ```shell\n  cd app\n  docker compose up --detach --no-recreate --remove-orphans || {\n    printf \"failed to stop container.\\n\" \u003e\u00262\n    sleep 5   \n  }\n  ```\n\n- Stop docker container:\n\n  ```shell\n  cd app\n  docker compose down --remove-orphans || {\n    printf \"failed to stop container.\\n\" \u003e\u00262\n    sleep 5\n  }\n  ```\n\n- To render the `Hello World!` messasge:\n\n  ```shell\n  curl --verbose \"http://localhost:8080/api/v1/helloworld\"\n  ```\n\n\n\n### Start and stop using bootRun\n\n```shell\n# start bootjar\n./gradlew bootRun -i\n```\n\n```shell\n# stop running bootjar\n./gradlew --stop\n```\n\n```shell\n# render the Hello World! message:\ncurl --verbose \"http://localhost:8080/api/v1/helloworld\"\n```\n\n## Public API in AWS ECS\n\n- Ensure cluster is set up\n- Ensure task definition is set up (SERVER_PORT=8888)\n- Ensure service is up and running\n- Ensure security group allows proper inbound traffic to port 8888\n- http://\u003cECS-TASK-PUBLIC_IP\u003e:8888/api/v1/helloworld\n\n---\nAuthor:  [Rubens Gomes](https://rubensgomes.com/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frubensgomes%2Fhelloworld-ms","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frubensgomes%2Fhelloworld-ms","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frubensgomes%2Fhelloworld-ms/lists"}