A microservices-based URL shortening system built with Java Spring Boot and Go.
- JDK 17+ (Eclipse Temurin preferred)
- Gradle 8.10.2+
- Docker 27.2.0+
- Nginx 1.26.2+
- Node.js 20.11.0+ (for the frontend)
- Configure nginx using the provided
nginx/default.conf.templatefile. Modify it to fit your deployment environment.
Build the entire backend project:
./gradlew buildBuild a specific backend module:
./gradlew :<module-name>:buildRun the entire backend project:
./gradlew bootRunRun a specific backend module:
./gradlew :<module-name>:bootRunTo run multiple instances of a module on different ports:
./gradlew :<module-name>:bootRun --args='--server.port=<port>'Create a .env file based on the ui/.env.template file and populate environment variables.
Install dependencies:
cd ui
npm ciStart development server:
npm run devDocker Compose allows running both the backend and frontend services together.
Build Docker images:
docker-compose buildStart Docker containers:
docker-compose upOr, to build and start the containers in one step:
docker-compose up --buildStop running containers:
docker-compose down