{"id":15009053,"url":"https://github.com/george-the-penguin/render-spring-boot-rest-api-poc","last_synced_at":"2026-04-06T03:31:58.164Z","repository":{"id":157946292,"uuid":"631014634","full_name":"george-the-penguin/render-spring-boot-rest-api-poc","owner":"george-the-penguin","description":"This is a simple Spring Boot REST API Proof of Concept (POC) project.  The goal of this project is to demonstrate how to create a REST API using Spring Boot, and it can run properly in the Render ecosystem.","archived":false,"fork":false,"pushed_at":"2023-04-21T19:20:37.000Z","size":18,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-31T19:29:16.832Z","etag":null,"topics":["apache-maven","docker","dockerfile","java","java-17","openapi3","postgresql","rest-api","spring-boot","spring-boot-3","spring-data-jpa"],"latest_commit_sha":null,"homepage":"https://render-spring-boot-rest-api-poc.onrender.com/swagger-ui/index.html","language":"Java","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/george-the-penguin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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-04-21T17:45:21.000Z","updated_at":"2023-07-08T22:36:20.000Z","dependencies_parsed_at":null,"dependency_job_id":"9e190cfb-5e10-4ab4-a03d-905c2352459c","html_url":"https://github.com/george-the-penguin/render-spring-boot-rest-api-poc","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/george-the-penguin/render-spring-boot-rest-api-poc","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/george-the-penguin%2Frender-spring-boot-rest-api-poc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/george-the-penguin%2Frender-spring-boot-rest-api-poc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/george-the-penguin%2Frender-spring-boot-rest-api-poc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/george-the-penguin%2Frender-spring-boot-rest-api-poc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/george-the-penguin","download_url":"https://codeload.github.com/george-the-penguin/render-spring-boot-rest-api-poc/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/george-the-penguin%2Frender-spring-boot-rest-api-poc/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31458837,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-05T21:22:52.476Z","status":"online","status_checked_at":"2026-04-06T02:00:07.287Z","response_time":112,"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":["apache-maven","docker","dockerfile","java","java-17","openapi3","postgresql","rest-api","spring-boot","spring-boot-3","spring-data-jpa"],"created_at":"2024-09-24T19:22:43.886Z","updated_at":"2026-04-06T03:31:58.159Z","avatar_url":"https://github.com/george-the-penguin.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# render-spring-boot-rest-api-poc\n\nThis is a simple Spring Boot REST API Proof of Concept (POC) project.\n\nThe goal of this project is to demonstrate how to create a REST API using Spring Boot, and it can run properly in the \nRender ecosystem.\n\nThe idea to create this project arises in response to several questions asked by participants of the **Devs Latam** \ninitiative from the **TryCatch** development community.\n\n## Technologies\n\nThe following is the list of technologies used to build this project:\n\n- [Java 17](https://openjdk.org/projects/jdk/17/)\n- [Spring Boot 3.0.6](https://spring.io/)\n- [Apache Maven 3.9.1](https://maven.apache.org/)\n- [Lombok 1.18.26](https://projectlombok.org/)\n- [OpenAPI 3.0.3](https://www.openapis.org/)\n- [PostgreSQL 15](https://www.postgresql.org/)\n- [Docker 20.10.24](https://www.docker.com/)\n- [Render](https://render.com/)\n\n## Create a Render's PostgreSQL database\n\nTo create a PostgreSQL database in Render, you need to follow the following steps:\n\n1. Go to the [Render's dashboard](https://dashboard.render.com/).\n2. Click on the **New+** button, and then click on the **PostgreSQL** option.\n3. In the **New PostgreSQL** form, you need to fill the following fields:\n   - **Name**: The name of the database resource in Render.\n   - **Database**: The name of the database instance.\n   - **User**: The username of the database.\n   - **Region**: The region where the database will be created.\n   - **PostgreSQL Version**: The PostgreSQL version. I recommend using the latest version.\n   - **Instance Type**: The instance type. I recommend using the **Free** instance type for academic purposes.\n4. Click on the **Create Database** button.\n\n## How to build\n\nTo build this project, you need to have the following installed on your machine:\n\n- Java 17\n- Apache Maven 3\n- Docker 20\n\nTo build the project, you need to run the following command:\n\n```bash\nmvn clean package\n```\n\n_NOTE: This command must be executed in the root directory of the project._\n\nTo build the Docker image, you need to run the following command:\n\n```bash\ndocker build -t render-spring-boot-rest-api-poc .\n```\n\n_NOTE: This command must be executed in the root directory of the project._\n\n## How to run\n\nTo run the Docker container, you need to run the following command:\n\n```bash\ndocker run -e DB_URL=\"DB_URL\" -e DB_USER=DB_USER -e DB_PASSWD=DB_PASSWD -p 8080:8080 render-spring-boot-rest-api-poc\n```\n\nWhere:\n- `DB_URL` is the URL of the PostgreSQL database.\n- `DB_USER` is the user of the PostgreSQL database.\n- `DB_PASSWD` is the password of the PostgreSQL database.\n\nThese data must be provided as environment variables to the Docker container, and they can be obtained from the \nRender's database resource, within the **Connections** section.\n\nExample:\n\n```bash\ndocker run -e DB_URL=\"jdbc:postgresql://postgres.render.com:5432/render-spring-boot-rest-api-poc\" -e DB_USER=postgres -e DB_PASSWD=postgres -p 8080:8080 render-spring-boot-rest-api-poc\n```\n\n## How to deploy on Render\n\nTo deploy this project on Render, you need to follow the following steps:\n\n1. Go to the [Render's dashboard](https://dashboard.render.com/).\n2. Click on the **New+** button, and then click on the **Web Service** option.\n3. In the **Create a new Web Service** form, you need to fill the following fields:\n   - **Connect a repository**: Select the repository where the project is located. Click on the **Connect** button to continue.\n4. In the next form, you need to fill the following fields:\n   - **Name**: The name of the web service.\n   - **Region**: The region where the web service will be created.\n   - **Branch**: The branch of the repository to deploy.\n   - **Runtime**: The runtime of the web service. For this case, you need to select the **Docker** option.\n   - **Instance Type**: The instance type. I recommend using the **Free** instance type for academic purposes.\n   - In the **Advanced** section, click the **Add Environment Variable** button, and then add the following environment variables:\n     - **PORT**: The port where the web service will be listening. For this case, you need to use the **8080** value. \n     - **DB_URL**: The URL of the PostgreSQL database.\n     - **DB_USER**: The user of the PostgreSQL database.\n     - **DB_PASSWD**: The password of the PostgreSQL database.\n5. Click the **Create Web Service** button.\n\n## How to use\n\nTo use this project, you need to follow the following steps:\n\n1. Use Postman or any other tool to make HTTP requests. You can find the OpenAPI specification of this project in the \n   `/v3/api-docs` endpoint of the web service.\n2. You can use the Swagger UI to make HTTP requests. You can find the Swagger UI in the `/swagger-ui/index.html` endpoint of \n   the web service.\n\n## Author\n\n- **Jorge Garcia** - George the Penguin\n  - [Website](https://georgethepenguin.dev/)\n  - [GitHub](https://github.com/george-the-penguin)\n  - [Twitter](https://twitter.com/mrgeorgepenguin)\n  - [Instagram](https://www.instagram.com/mrgeorgepenguin/)\n  - [TikTok](https://www.tiktok.com/@george_the_penguin)\n  - [YouTube](https://www.youtube.com/@GeorgeThePenguin)\n  - [Twitch](https://www.twitch.tv/george_the_penguin)\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE.md) file for details\n\n## Acknowledgments\n\n- **TryCatch** - [Social Media Links](https://linktr.ee/trycatch.tv)\n\n## Disclaimer\n\nThis project is not affiliated, associated, authorized, endorsed by, or in any way officially connected with Render, \nor any of its subsidiaries or its affiliates. The official Render website can be found at https://render.com. \nThe name \"Render\" as well as related names, marks, emblems and images are registered trademarks \nof their respective owners.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgeorge-the-penguin%2Frender-spring-boot-rest-api-poc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgeorge-the-penguin%2Frender-spring-boot-rest-api-poc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgeorge-the-penguin%2Frender-spring-boot-rest-api-poc/lists"}