Web UI / IDE
| Port | Service |
|---|---|
8443 |
code-server, noVNC |
7681 |
ttyd |
8080 |
Common web app |
5000 |
Flask / FastAPI |
3000 |
Node / Next.js |
Databases
| Port | Service |
|---|---|
5432 |
PostgreSQL |
3306 |
MySQL / MariaDB |
27017 |
MongoDB |
6379 |
Redis |
9000 |
ClickHouse native |
8123 |
ClickHouse HTTP |
Observability
| Port | Service |
|---|---|
9200 |
Elasticsearch |
5601 |
Kibana |
8220 |
Fleet Server |
3000 |
Grafana |
9090 |
Prometheus |
4317/4318 |
OTel collector |
16686 |
Jaeger UI |
Secrets & service mesh
| Port | Service |
|---|---|
8200 |
Vault HTTP/HTTPS |
443 |
Vault dual listener |
8500 |
Consul HTTP |
8501 |
Consul HTTPS |
4646 |
Nomad |
9200 |
Boundary |
Kubernetes
| Port | Service |
|---|---|
6443 |
API server |
8001 |
kubectl proxy |
10248 |
kubelet healthz |
30001-32767 |
NodePort range |
Streaming & AI
| Port | Service |
|---|---|
11434 |
Ollama |
4222 |
NATS client |
9092 |
Kafka |
5672 |
RabbitMQ AMQP |
Remote desktop
| Port | Service |
|---|---|
3389 |
RDP (Guacamole target) |
5901 |
VNC server |
5985 |
WinRM (HTTP) |
IAP tunnel locals
| Port | Service |
|---|---|
2222 |
SSH (→ remote 22) |
8888 |
HTTP (→ remote 80) |
Coordination
| Port | Service |
|---|---|
8081 |
JSON broker sidecar |
15779 |
Instruqt agent (host) |
Host's port reachable as a public URL. The traffic proxy resolves the hostname to the named host in config.yml.
<host>.${_SANDBOX_ID}.instruqt.io (no port suffix).
Ports declared in ports: are reachable from other declared hosts on the sandbox network — but not from the learner's browser unless surfaced via a service tab or sandbox-public URL.
5000, 8443, 6080 is a clean split.provision_ssl_certificate: true on a VM also enables HTTPS at the standard 443 port.