-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Description
Problem
NemoClaw hardcodes four service ports with no override mechanism:
| Port | Service | Common conflicts |
|---|---|---|
| 8080 | OpenShell gateway | Jenkins, Tomcat, K8s dashboard, Adminer |
| 8000 | vLLM/NIM inference | Django dev server, PHP built-in server |
| 18789 | Dashboard | SSH port forwards |
| 11434 | Ollama | — |
On any machine running other development tools, nemoclaw onboard fails at the preflight port check with no way to proceed other than stopping the conflicting service.
Reproduction
$ docker run -d -p 8080:8080 adminer
$ nemoclaw onboard
!! Port 8080 is not available.
OpenShell gateway needs this port.There is no flag, env var, or config file to change the port.
Expected behavior
Users should be able to override ports via environment variables, following the existing process.env.NEMOCLAW_* pattern used by NEMOCLAW_MODEL, NEMOCLAW_PROVIDER, and NEMOCLAW_GPU:
$ export NEMOCLAW_GATEWAY_PORT=8081
$ nemoclaw onboardProposed fix
PR #683 adds bin/lib/ports.js (23 lines) that reads NEMOCLAW_GATEWAY_PORT, NEMOCLAW_DASHBOARD_PORT, NEMOCLAW_VLLM_PORT, and NEMOCLAW_OLLAMA_PORT from environment variables with validation and sensible defaults. Five existing files are updated to use the constants instead of hardcoded literals.