https://github.com/sivaprasadreddy/spring-blog-api
A Blog REST API using Spring Boot
https://github.com/sivaprasadreddy/spring-blog-api
docker-compose flyway-migrations java postgresql spring-boot spring-data-jpa spring-modulith spring-security testcontainers
Last synced: 25 days ago
JSON representation
A Blog REST API using Spring Boot
- Host: GitHub
- URL: https://github.com/sivaprasadreddy/spring-blog-api
- Owner: sivaprasadreddy
- License: apache-2.0
- Created: 2026-02-27T13:57:27.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2026-05-22T03:56:16.000Z (about 1 month ago)
- Last Synced: 2026-05-22T12:49:33.103Z (about 1 month ago)
- Topics: docker-compose, flyway-migrations, java, postgresql, spring-boot, spring-data-jpa, spring-modulith, spring-security, testcontainers
- Language: Java
- Homepage:
- Size: 135 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Spring Blog REST API
A REST API for a blog application using SpringBoot.
## Tech Stack:
* Java
* Spring Boot
* Spring Modulith
* Spring Data JPA
* Spring Security
## Prerequisites
* JDK 25
* Docker and Docker Compose
* Your favourite IDE (Recommended: [IntelliJ IDEA](https://www.jetbrains.com/idea/))
Install JDK using [SDKMAN](https://sdkman.io/)
```shell
$ curl -s "https://get.sdkman.io" | bash
$ source "$HOME/.sdkman/bin/sdkman-init.sh"
$ sdk install java 25-tem
$ sdk install maven
```
## How to?
```shell
# Run tests
$ ./mvnw test
# Run application using Maven
./mvnw spring-boot:run
```
* Application: http://localhost:8080
* Swagger UI: http://localhost:8080/swagger-ui/index.html
## Generating certs
```shell
# create rsa key pair
openssl genrsa -out keypair.pem 2048
# extract public key
openssl rsa -in keypair.pem -pubout -out public.pem
# create private key in PKCS#8 format
openssl pkcs8 -topk8 -inform PEM -outform PEM -nocrypt -in keypair.pem -out private.pem
```
## Using [Taskfile](https://taskfile.dev/) utility
Task is a task runner that we can use to run any arbitrary commands in an easier way.
```shell
# Run tests
$ task test
# Build docker image
$ task build_image
# Run application in docker container
$ task start
$ task stop
$ task restart
```