Skip to content

Port Configuration Guide

Status: Active · sourced from docker-compose.yml and the AppHost

This is the canonical port reference. The Docker external ports are the host ports published by docker-compose.yml (the runtime source of truth). The Aspire HTTPS ports are the HTTPS endpoints the AppHost / launchSettings.json expose when you run with .NET Aspire; confirm the live values in the Aspire Dashboard.

Service ports

ServiceDocker external (host)Container internalAspire HTTPS
API Gateway80 (HTTP), 443 (HTTPS)8080 / 84437082
Blueprint Service500080807000
Register Service538080807290
Tenant Service545080807110
Validator Service5800 (HTTP), 5801 (gRPC)8080 / 80817004
Peer Service50051 (gRPC)50007002
Wallet Serviceinternal only (no published port)80807001
HAIP Serviceinternal only (no published port)8080
UI (Web)5400 (HTTP), 5401 (HTTPS)8080 / 8443
Wallet PWA74008080
Verifier74018080

Wallet and HAIP have no published host port by design — they are reached through the API Gateway (or service-to-service on the internal Docker network). Override any host port with the matching environment variable (e.g. REGISTER_PORT, TENANT_PORT, GATEWAY_HTTP_PORT).

Infrastructure ports

ServiceDocker external (host)Purpose
PostgreSQL5432Relational store
MongoDB27017Document store (ledger)
Redis16379 (→ 6379 in-container)Cache, rate-limit, SignalR backplane
Aspire Dashboard18888Observability dashboard
OTLP gRPC / HTTP4317 / 4318Telemetry ingestion

Samples / demo consumers

Samples in samples/ are application-specific demos that consume the platform's public APIs only; they are not platform services and are not in the root docker-compose.yml. Each ships its own compose overlay.

SamplePortInvocation
Strathcarron PortalSTRATHCARRON_PORTAL_PORT (demo council portal)docker compose -f docker-compose.yml -f samples/strathcarron-portal/docker-compose.yml up -d

Environments

Docker Compose (default)

Everything runs behind the API Gateway at http://localhost (port 80). The Gateway routes by path — e.g. /api/auth/* and /api/service-auth/* → Tenant, /api/blueprints/* → Blueprint, /api/registers/* → Register, /app → UI. You normally only need the Gateway URL:

bash
docker-compose up -d

# Auth through the Gateway
curl -X POST http://localhost/api/auth/login -H "Content-Type: application/json" \
  -d '{"email":"admin@sorcha.local","password":"Dev_Pass_2025!"}'

Direct (bypass the Gateway) for debugging:

http://localhost:5450   Tenant      http://localhost:5800   Validator (HTTP)
http://localhost:5000   Blueprint   localhost:5801          Validator (gRPC)
http://localhost:5380   Register    localhost:50051         Peer (gRPC)
http://localhost:5400   UI (Web)    http://localhost:18888  Aspire Dashboard

.NET Aspire (AppHost)

HTTPS with self-signed dev certs; per-service endpoints exposed for breakpoint debugging.

bash
dotnet run --project src/Apps/Sorcha.AppHost
https://localhost:7110  Tenant       https://localhost:7290  Register
https://localhost:7000  Blueprint    https://localhost:7004  Validator
https://localhost:7001  Wallet       https://localhost:7002  Peer
https://localhost:7082  API Gateway  http://localhost:18888  Aspire Dashboard

Production

Services sit behind the API Gateway / a reverse proxy on 443 (TLS). Expose only the Gateway publicly; keep service and infrastructure ports on the internal network.


Client configuration

The CLI and admin UI select a connection profile (local / docker / production) carrying the URLs above.

bash
sorcha config get activeProfile
sorcha config set activeProfile docker
sorcha --profile docker organization list

Troubleshooting

Port already in use

bash
# Windows
netstat -ano | findstr :<PORT>
taskkill /PID <PID> /F
# Linux/macOS
lsof -i :<PORT> ; kill -9 <PID>

Or override the host port via the service's environment variable (e.g. REGISTER_PORT=5381).

SSL trust (Aspire)

bash
dotnet dev-certs https --trust

Cannot connect — check, in order: container is running (docker ps), correct port for your environment (Docker vs Aspire), correct protocol (HTTP vs HTTPS), and the service is healthy (/health).


See also

Released under the MIT License.