Port Registry
v7 services
| Service | Port | Env var | Notes |
|---|---|---|---|
| gordon-data | 8081 | GORDON_DATA_BIND_ADDR | Docker-internal |
| gordon-risk | 8082 | GORDON_RISK_BIND_ADDR | Docker-internal |
| gordon-manager | 8083 | GORDON_MANAGER__BIND_ADDR | Docker-internal |
| gordon-bot | 8084 | GORDON_BOT_BIND_ADDR | Container-internal; host port dynamically assigned by manager reconciler |
| gordon-executor | 8085 | GORDON_EXECUTOR_BIND_ADDR | Docker-internal |
| gordon-console | 3000 | Next.js default | Operator-exposed on srv-apps behind nginx |
| postgres | 5432 | — | Docker-internal |
| nats | 4222 | GORDON_BUS_NATS_URL | Docker-internal |
E2E / testing
| Service | Port | Notes |
|---|---|---|
| mock-binance REST (spot) | 8181 | E2e stack only |
| mock-binance WS (perp) | 8182 | E2e stack only |
| postgres (test) | 5433 | make test-up — isolated test database |
Network exposure
Only gordon-console:3000 is operator-exposed on srv-apps, behind nginx. All other services are Docker-internal (not reachable from outside the Docker network).
Bind address overrides are URL-validated at startup. A typo fails boot rather than silently falling back to a default.
Dev mode (host execution via overmind)
In Procfile.dev / .env.dev.example, bind addresses are set to 127.0.0.1 (loopback only):
GORDON_DATA_BIND_ADDR=127.0.0.1:8081
GORDON_RISK_BIND_ADDR=127.0.0.1:8082
GORDON_MANAGER__BIND_ADDR=127.0.0.1:8083
GORDON_BOT_BIND_ADDR=127.0.0.1:8084
GORDON_EXECUTOR_BIND_ADDR=127.0.0.1:8085