Deployment & Operational Console Guide
Step-by-step operational guide to deploying the entire ACME Mobility microservice infrastructure with Docker Compose, monitoring logs, and local development.
1. Repository Cloning & Stack Startup
First, clone the official GitHub repository and navigate into the `acme-mobility` application directory:
# Clone official repository
git clone https://github.com/NicolasCola7/MSA-Project.git
cd MSA-Project/acme-mobility
# Build and start all 11 microservices in background mode
docker compose up -d --build
2. Status Inspection & Log Monitoring
Useful console commands for monitoring container health checks and tailing service logs during active rides:
# Check status and healthcheck status of all 11 microservices
docker compose ps
# Tail real-time logs for Rental Service
docker compose logs -f rental-service
# Tail logs for Camunda 8 Zeebe workflow engine
docker compose logs -f orchestration
# Tail logs for Fleet Gateway during GraphHopper GPS routing
docker compose logs -f fm-gateway
3. Web UI & Database Access
Once startup completes, core endpoints and web interfaces are accessible on the host machine:
Frontend Angular Client : http://localhost:4200
Camunda Web UI Engine : http://localhost:8083 (Credentials: demo / demo)
Rental Service REST API : http://localhost:8080/api/rentals/map
Bank Service SOAP WSDL : http://localhost:8000 (SOAP WSDL getBalance endpoint)
Fleet Gateway API : http://localhost:8091/monitoring/telemetry?vehicleId=101
Direct terminal access to containerized PostgreSQL databases:
# Connect to Rental Service primary database (Port 5432)
psql -h localhost -p 5432 -U user -d acme_mobility
# Connect to Jolie Bank isolated database (Port 5433)
psql -h localhost -p 5433 -U user -d bank
4. Local Host Development (Without Frontend Container)
To edit Angular code with live Hot-Reload without rebuilding the frontend container:
# Start backend infrastructure via Docker
docker compose up -d --build
# Stop only the frontend container
docker compose stop frontend
# Run Angular CLI directly on host Node.js environment
cd frontend
npm ci
npm start
# App live reloads on http://localhost:4200
5. Shutdown & Clean Reset
Commands for shutting down containers and resetting database volumes:
# Standard graceful shutdown (preserves persistent volumes)
docker compose down
# Complete reset removing volumes (PostgreSQL, Zeebe, Redis)
docker compose down -v
Complete Host Port Mapping
Summary table of all 15 port bindings mapped by Docker Compose to the host machine:
| Host Port | Container Service | Protocol | Purpose |
|---|---|---|---|
| 4200 | Frontend Client | HTTP / Angular | Angular Single Page Application (Leaflet map, booking, SSE) |
| 8080 | Rental Service | HTTP / REST / SSE | Application gateway and primary domain state owner |
| 8082 | Account Registration Service | HTTP / REST | Jolie microservice for bank account creation |
| 8083 | Camunda Web Engine | HTTP | Camunda Web Management UI (demo/demo) |
| 8084 | Stations Service | HTTP / REST | Station catalog and physical unlock, lock, recharge commands |
| 8085 | Maintenance Service | HTTP / REST | FIFO vehicle repair queue management |
| 8000 | Bank Service | SOAP / XML | Jolie bank service (pre-authorization deposit & settlement) |
| 8091 | Fleet Management Gateway | HTTP / REST | GraphHopper route simulation and telemetry gateway |
| 8092 | Tracking Service | gRPC | Real-time GPS coordinate tracking service |
| 8093 | Battery Service | gRPC | Battery charge level monitoring service |
| 26500 | Zeebe Gateway | gRPC | Native gRPC gateway port for Zeebe worker job correlation |
| 5432 | PostgreSQL Rental DB | TCP / SQL | Primary domain database for ACME Mobility |
| 5433 | PostgreSQL Bank DB | TCP / SQL | Isolated database for Jolie bank accounts |
| 6379 | Redis Server | TCP / RESP | Pub/Sub async messaging and real-time SSE event stream broker |