Repository navigation
Description
Every template binds the same host ports today: the app on 8080 (8081 for HTTPS under dotnet run), the collector on 4317/4318 and the Aspire dashboard on 18888, with Lambda on 9000 and MCP adding 6274 and 3000. You can't run two stacks side by side, say GraphQL next to Minimal API. Each template gets its own block of ten ports instead, in a range no major product uses and with room for fifteen templates.
| Offset | Port |
|---|---|
| +0 | App HTTP (dotnet run, docker run, compose) |
| +1 | App HTTPS (dotnet run only) |
| +2 | Aspire dashboard |
| +3 | OTLP gRPC |
| +4 | OTLP HTTP |
| +5 | MCP Inspector |
| +6 | Chat demo |
| +7 to +9 | Spare |
Blocks in template order: Minimal API 7310, MCP 7320, GraphQL 7330, Web API 7340, Lambda Function 7350, then 7360 to 7450 for new templates (7402 and 7443 are taken by DDS and Oracle, so skip those offsets). The app listens on its own port inside its container too. Lambda's emulator stays on 8080 inside, and the dashboard and collector keep their usual ports inside.
Phase 1: Agree the scheme
- Pick the range (73x0 blocks of ten)
- Decide the port inside the container (same as outside)
Phase 2: Templates
- CleanMinimalApi (Give each template its own block of local ports CleanMinimalApi#82)
- CleanModelContextProtocol, including Inspector and chat (Give each template its own block of local ports CleanModelContextProtocol#62)
- CleanGraphQLApi (Give each template its own block of local ports CleanGraphQLApi#62)
- CleanWebApi (Give each template its own block of local ports CleanWebApi#56)
- CleanLambdaFunction, emulator on 7350 (Give each template its own block of local ports CleanLambdaFunction#50)
Phase 3: Docs site
- Update every port on leanmeancleanapps.github.io (Show each template's own block of local ports leanmeancleanapps.github.io#22, after Move the templates into the org and rebuild the pipeline as one chain #21)
Checks: the build pipeline passes, Shared Layers Drift finds no differences, and two stacks start side by side with docker compose up.
Activity
Give each template its own block of local ports (#82)
Give each template its own block of local ports (#62)
Give each template its own block of local ports (#62)
Give each template its own block of local ports (#56)