Ports & Endpoints
Required inbound ports
| Port | Protocol | Purpose |
|---|---|---|
| 30000 | TCP | QuickStack Web UI |
| 80 | TCP | HTTP ingress (Traefik) |
| 443 | TCP | HTTPS ingress (Traefik) |
| 6443 | TCP | Kubernetes API — required between nodes in a multi-node cluster |
Open these on your firewall/security group. For single-node installations, port 6443 only needs to be reachable from future worker nodes.
QuickStack UI
http://<server-ip>:30000
After setting up a domain for the QuickStack UI (in Settings), you can access it via that domain instead.
Webhook URL pattern
When you enable webhook deployments on an app, the generated URL follows this pattern:
https://<quickstack-domain-or-ip>/api/v1/webhook/deploy?id=<webhook-id>
<quickstack-domain-or-ip>— the domain or IP you use to access the QuickStack UI (must be reachable from your Git provider or CI system)<webhook-id>— unique ID generated per app; shown in the app's Overview tab after enabling webhooks
The endpoint accepts any HTTP POST request. No authentication beyond the secret ID is used.
Internal service hostnames
Apps in the same QuickStack project communicate using internal Kubernetes service hostnames:
svc-<app-id>
The exact hostname is shown in the app's Domains tab → Internal Hostnames section.
Example connection strings:
postgres://user:pass@svc-app-abc123:5432/mydb
redis://svc-app-def456:6379
http://svc-app-ghi789:3000
Internal hostnames are only routable within the same project. They are not accessible from outside QuickStack.
QuickStack.me domain pattern
When using the built-in quickstack.me domain:
https://<prefix>.<hex-ip>.quickstack.me
Where <hex-ip> is your server's public IPv4 address converted to 8-character hex. For example, 1.2.3.4 → 01020304.
Let's Encrypt
QuickStack uses Let's Encrypt to provision TLS certificates for custom domains and quickstack.me subdomains. To enable automatic certificate provisioning, set an email address in Settings → QuickStack Server → Networking / Traefik.
Let's Encrypt rate limits: 50 certificates per registered domain per week. See LE docs if you hit limits.