Each service is independent, registers with Eureka, and owns its own PostgreSQL schema. Internal ports are used only inside the Docker network; the gateway on 8080 is the single public entry point.
| Service | Port | Responsibility |
|---|---|---|
| magicvarsh-eureka-server | 8761 | Service registry |
| magicvarsh-gateway | 8080 | API gateway: JWT auth, circuit breakers, routing |
| magicvarsh-auth-service | 8081 | Login, registration, JWT issuance, user profiles |
| magicvarsh-page-service | 8082 | Portal page CRUD |
| magicvarsh-asset-service | 8083 | Digital asset upload/storage |
| magicvarsh-web-content-service | 8084 | Structures, templates, content authoring |
| magicvarsh-portlet-service | 8085 | Portlet lifecycle and registration |
| magicvarsh-email-template-service | 8087 | Email template CRUD |
| magicvarsh-email-service | 8088 | Email sending via SMTP |
| magicvarsh-settings-service | 8089 | Site-wide configuration |
| magicvarsh-infra-service | 8093 | Health monitoring, scaling, deployment |
i
Additional services exist for forms, workflow, labels, scheduling and two-factor auth, plus extension services. They follow the same structure and registration pattern.
Standard service layout
<module>/src/main/java/com/portal/<service>/
├── <Service>Application.java # entry point
├── controller/ # REST endpoints
├── service/ # business logic
├── model/ or entity/ # JPA entities
├── dto/ # request/response DTOs
├── repository/ # Spring Data JPA repos
└── config/ # Spring configuration