This guide walks you through installing and building StreamLine Logistics from source.
Clone the Repository
Clone the repository
Clone the StreamLine Logistics repository to your local machine: git clone < repository-ur l >
cd StreamLine-Logistics
Replace <repository-url> with your actual repository URL.
Verify project structure
Ensure the project structure is correct: You should see the following microservice directories: StreamLine-Logistics/
├── microservice-config/
├── microservice-eureka/
├── microservice-gateway/
├── microservice-inventory/
├── microservice-order/
├── microservice-tracking/
├── docker-compose.yml
└── pom.xml
Build the Project
The project uses Spring Boot 4.0.2, Spring Cloud 2025.1.0, and Java 17.
Clean and install dependencies
Build all microservices using Maven: This command will:
Download all dependencies
Compile all microservices
Run tests (if configured)
Create JAR files for each service
Install artifacts to local Maven repository
The initial build may take 5-10 minutes depending on your internet connection and system performance.
Verify the build
Check that all microservices built successfully: You should see JAR files for each microservice: microservice-config/target/microservice-config-0.0.1-SNAPSHOT.jar
microservice-eureka/target/microservice-eureka-0.0.1-SNAPSHOT.jar
microservice-gateway/target/microservice-gateway-0.0.1-SNAPSHOT.jar
microservice-inventory/target/microservice-inventory-0.0.1-SNAPSHOT.jar
microservice-order/target/microservice-order-0.0.1-SNAPSHOT.jar
microservice-tracking/target/microservice-tracking-0.0.1-SNAPSHOT.jar
Build Docker Images
Review Dockerfiles
Each microservice has its own Dockerfile. The docker-compose.yml file references these Dockerfiles to build images. Verify Dockerfiles exist: ls -la microservice- * /Dockerfile
Build all Docker images
Build Docker images for all services using docker-compose: This process will:
Build Docker images for each microservice
Tag images appropriately
Pull required base images
Pull database images (PostgreSQL, MySQL, MongoDB)
Building all images may take 10-15 minutes on the first run.
Verify Docker images
List all built images: docker images | grep -E '(eureka|order|inventory|tracking)'
You should see: eureka-service latest <image-id> <time> <size>
order-service latest <image-id> <time> <size>
inventory-service latest <image-id> <time> <size>
tracking-service latest <image-id> <time> <size>
And database images: docker images | grep -E '(postgres|mysql|mongo)'
postgres 15 <image-id> <time> <size>
mysql 8 <image-id> <time> <size>
mongo latest <image-id> <time> <size>
Start Services
Start all services
Launch all microservices and databases: The -d flag runs containers in detached mode.
Monitor service startup
Watch the logs to ensure services start correctly: Press Ctrl+C to stop following logs. Services will start in dependency order. Eureka Server starts first, followed by other services.
Check service health
Verify all containers are running: All services should show Up status: NAME STATUS
eureka-server Up
order-service Up
inventory-service Up
tracking-service Up
order_db Up
inventory_db Up
tracking_db Up
Wait for Eureka registration
Allow 30-60 seconds for all services to register with Eureka Server. Check Eureka dashboard: open http://localhost:8761
You should see all microservices registered:
MSVC-ORDER
MSVC-INVENTORY
MSVC-TRACKING
Verify Installation
Check Eureka Server
Access the Eureka dashboard: curl http://localhost:8761/eureka/apps
Or open in browser: http://localhost:8761
Check Order Service
Verify the Order Service is accessible: curl http://localhost:8090/actuator/health
Expected response:
Check Inventory Service
Verify the Inventory Service is accessible: curl http://localhost:9090/actuator/health
Expected response:
Check Tracking Service
Verify the Tracking Service is accessible: curl http://localhost:8091/actuator/health
Expected response:
Verify database connections
Check that databases are accessible: PostgreSQL (Order DB)
MySQL (Inventory DB)
MongoDB (Tracking DB)
docker exec -it order_db psql -U postgres -d orderdb -c "SELECT 1;"
Troubleshooting
Build Failures
If Maven build fails:
# Clear Maven cache and rebuild
rm -rf ~/.m2/repository
mvn clean install -U
Docker Build Issues
If Docker image build fails:
# Clean Docker build cache
docker builder prune -af
# Rebuild without cache
docker compose build --no-cache
Service Won’t Start
If a service fails to start:
# Check logs for specific service
docker compose logs < service-nam e >
# Example
docker compose logs order-service
Port Conflicts
If ports are already in use:
# Find process using port
sudo lsof -i : < port-numbe r >
# Kill the process
kill -9 < PI D >
Database Connection Issues
If services can’t connect to databases:
# Restart databases
docker compose restart order_db inventory_db tracking_db
# Wait 10 seconds, then restart services
sleep 10
docker compose restart order-service inventory-service tracking-service
Stopping Services
To stop all services:
# Stop containers but keep data
docker compose stop
# Stop and remove containers (keeps volumes)
docker compose down
# Stop and remove everything including volumes
docker compose down -v
Using docker compose down -v will delete all database data!
Development Mode
For development, you can run services individually:
# Start only databases
docker compose up -d order_db inventory_db tracking_db eureka-server
# Run a service locally
cd microservice-order
mvn spring-boot:run
When running locally, update application.yml to point to localhost instead of container names.
Next Steps
Learn about Docker Setup for detailed Docker configuration
Review Configuration for customizing services
Explore the API documentation for each service