QuickStackQuickStack
How toNetworking

Node Ports

Expose non-HTTP application ports directly on cluster nodes using Kubernetes NodePorts for TCP/UDP workloads.

Node Ports let you expose an application port directly on every cluster node at a fixed host port number, bypassing Traefik. This is useful for non-HTTP workloads that cannot be routed through the standard HTTP/HTTPS ingress.

Typical use cases: SFTP servers, game servers, TCP/UDP services, databases exposed externally, any protocol that is not HTTP/HTTPS.

Standard HTTP/HTTPS apps For web applications, use Custom Domains or the QuickStack.me Domain instead. Node Ports bypass Traefik and do not get automatic TLS.

How it works

When a Node Port is configured, Kubernetes creates a NodePort service that maps a port on every cluster node to the specified container port. Traffic sent to <node-ip>:<node-port> is forwarded directly to the container — no ingress controller or TLS termination is involved.

Configuring a Node Port

  1. Open the app and go to the Domains tab.
  2. Scroll to the Node Ports card.
  3. Click Add Node Port.
  4. Fill in:
FieldDescription
Container PortThe port your container listens on (1–65535)
Node PortThe host port exposed on every cluster node (30001–32767)
ProtocolTCP or UDP
  1. Click Save, then Deploy.

Redeployment required Node Port changes only take effect after redeployment.

Port range

As a default Kubernetes configuration, Node Ports must be in the range 30001–32767. Choose a port in this range that is not already in use on your cluster nodes.

Firewall rules Remember to open the chosen Node Port on your server's firewall / security group for inbound traffic.

Troubleshooting

SymptomFix
Can't connect on the node portCheck firewall rules of your server; confirm the app was redeployed after adding the port
Port already in useChoose a different Node Port number in the 30001–32767 range
UDP not workingVerify the correct protocol was selected; some UDP services also need TCP

On this page