The repository ships a singleDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/ti-infinite/GSMApplication/llms.txt
Use this file to discover all available pages before exploring further.
docker-compose.yml at the project root that builds and wires together all five GSM services. It is the fastest way to get a fully integrated stack running on a developer machine without manually starting each service.
Services Overview
The stack contains five services, all joined to the same bridge networkgsm-network. Container-to-container traffic uses Docker service names as hostnames.
| Service | Internal port | Published port | Health-check endpoint |
|---|---|---|---|
frontend | 80 | 3000 | (none — depends on gateway health) |
gateway | 80 | (not published) | GET http://localhost:80/api/health |
gsmauth | 8081 | (not published) | GET http://localhost:8081/health |
gsmapplication | 8082 | (not published) | GET http://localhost:8082/health |
gsmoperations | 8083 | (not published) | GET http://localhost:8083/health |
http://gateway:80 within the gsm-network bridge network. The gateway then routes each request to the appropriate microservice via YARP.
Service Dependency Chain
Docker Compose enforces a strict startup order using health checks:YARP Gateway Cluster Addresses
Inside the Docker Compose network, the gateway’s reverse proxy (YARP) resolves microservices using their Docker service names:gsm-network bridge network. In production (AWS ECS) the equivalent addresses are configured through environment-specific task definition environment variables.
Frontend Build Arguments
The frontend image is built from./gsmapplications-frontend with two build arguments passed at Docker build time:
.env file (or from the environment). The defaults shown (IH001 and IH001,AG001) are used if no value is provided.
VITE_TENANT_IDS is a Vite build-time variable that is compiled into the JavaScript bundle. If you need to change the list of available tenant IDs, you must rebuild the frontend image. Running docker compose up without --build will not pick up the change.Environment File
Copy.env.example to .env and fill in the required values before running Compose:
JWT_SECRET must be set on all backend services — they each validate incoming tokens against this shared secret.
Starting the Stack
Build and start all services
Verify the stack is healthy
Wait for the log output to show all health checks passing. You can check service status at any time:All services should show
healthy in the STATUS column.Open the application
Navigate to http://localhost:3000 in your browser. You will be redirected to the login page for the default locale.
Common Commands
Health Check Configuration
Each backend service is configured with identical health check parameters:start_period gives each service 30 seconds to initialise before Docker counts failures. With three retries at 30-second intervals, a service has up to 2.5 minutes to become healthy before Docker marks it as unhealthy and blocks downstream dependencies.