Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/Miguel-Rodriguez15/msvc/llms.txt

Use this file to discover all available pages before exploring further.

By the end of this guide you will have MySQL 8, PostgreSQL 14, msvc-usuarios, and msvc-cursos running locally via Docker Compose, with health endpoints responding on localhost:8001 and localhost:8002. No Kubernetes cluster is required for this path — it is the fastest way to explore the APIs and validate your environment before moving on to a full Kubernetes deployment.

Prerequisites

Docker & Docker Compose

Docker Engine 24+ and Docker Compose v2. Used to run databases and the pre-built service images from Docker Hub.

Java 17

Required only if you plan to run services outside of Docker or rebuild the JARs locally. Amazon Corretto 17 is recommended to match the production base image.

Maven 3.8+

Required only to compile the project and produce JARs locally. Not needed if you pull images directly from Docker Hub.

kubectl + Minikube

Required for the full OAuth2 flow including msvc-auth and msvc-gateway. Not needed for this Docker Compose quickstart.

Steps

1

Clone the repository

Clone the project to your local machine and change into the project root:
git clone https://github.com/Miguel-Rodriguez15/msvc.git
cd msvc
The root directory contains the parent pom.xml, docker-compose.yml, and all four service modules.
2

Start databases only (development mode)

If you only need the databases running — for example, to start services locally from your IDE — bring up just the database containers:
docker compose up mysql8 postgres-cursos -d
This starts:
  • MySQL 8 on localhost:3307 with database msvc_usuarios and root password admin123
  • PostgreSQL on localhost:5532 with database msvc_cursos, user postgres, and password postgres123
Both containers persist data in named Docker volumes (data-mysql and data-postgres) and join the shared spring network.
3

Start the full stack

To run the complete Docker Compose stack — databases plus both business microservices — use:
docker compose up -d
This brings up four containers:
ContainerImageHost Port
mysql8mysql:8localhost:3307
postgres-cursospostgres:latestlocalhost:5532
msvc-usuariosmiguelrodriguez15/msvc-usuarios:latestlocalhost:8001
msvc-cursosmiguelrodriguez15/msvc-cursos:latestlocalhost:8002
Both service containers read their configuration from .env files in their respective module directories (msvc-usuarios/.env and msvc-cursos/.env). Each service waits for its database container to be available before starting due to depends_on ordering.
4

Verify service health

Once the containers are up, confirm both services are healthy by calling their Actuator health endpoints:
curl http://localhost:8001/actuator/health
curl http://localhost:8002/actuator/health
A healthy service returns:
{"status":"UP"}
If you see "status":"DOWN" or a connection error, the service is still starting up or waiting on its database. Wait a few seconds and retry. You can inspect container logs with docker compose logs msvc-usuarios or docker compose logs msvc-cursos.
5

Stop services

To stop all running containers without removing their data volumes:
docker compose down
To stop all containers and permanently delete the database volumes (useful for a clean-slate restart):
docker compose down -v
Running docker compose down -v removes the data-mysql and data-postgres volumes. All data stored in both databases will be permanently lost.
msvc-auth and msvc-gateway are not included in the Docker Compose file. The Authorization Server and API Gateway require Kubernetes DNS-based service discovery (lb://msvc-usuarios, lb://msvc-cursos) to function correctly and are only deployed via Kubernetes manifests. For the complete OAuth2 Authorization Code flow, see the Kubernetes deployment guide.
If you need to build and publish Docker images locally — for example, after making code changes — run a multi-stage Docker build and push to Docker Hub:
cd msvc-usuarios
docker build -t miguelrodriguez15/msvc-usuarios:latest .
docker push miguelrodriguez15/msvc-usuarios:latest
Repeat the same pattern for msvc-cursos, msvc-auth, and msvc-gateway. The pre-built images available on Docker Hub are:
miguelrodriguez15/msvc-auth:latest
miguelrodriguez15/msvc-usuarios:latest
miguelrodriguez15/msvc-cursos:latest
miguelrodriguez15/msvc-gateway:latest

Build docs developers (and LLMs) love