Subdomain Routing

Every tunnel gets a unique URL. The format depends on your plan:

PlanURL formatExample
Free{random}.tunnel.nullbore.coma7f3bc.tunnel.nullbore.com
Dev{name}.{you}.nullbore.comapi.heroapp.nullbore.com
Pro{name}.tunnel.yourdomain.comapi.tunnel.yourcompany.com

Random slugs (all plans)

When you open a tunnel without a name, you get a random hex slug:

nullbore open 3000
# → https://a7f3bc.tunnel.nullbore.com

These are always available on every plan. Tunnels are also accessible via path-based URLs as a fallback:

https://tunnel.nullbore.com/t/a7f3bc

Named tunnels (Dev+)

Named tunnels require two things:

  1. A Dev or Pro plan
  2. A claimed account subdomain (see below)
nullbore open 3000 --name api
# → https://api.heroapp.nullbore.com

Named tunnels keep the same URL across reconnects and server restarts — no need to update webhook URLs or client bookmarks.

Without a claimed subdomain, --name is ignored and you get a random slug.

Account subdomains (Dev+)

Claim a personal subdomain from your dashboard. All your named tunnels live under it:

https://api.heroapp.nullbore.com
https://web.heroapp.nullbore.com

Visiting just heroapp.nullbore.com routes to your most recent active tunnel.

Setup

  1. Go to Dashboard → Account Subdomain
  2. Claim a subdomain (e.g. heroapp) — takes ~2 minutes to provision a TLS certificate
  3. Open named tunnels — they appear under your subdomain automatically
nullbore open -p 3000:api -p 8080:web
# → https://api.heroapp.nullbore.com
# → https://web.heroapp.nullbore.com

When you upgrade to a paid plan, a subdomain is auto-suggested based on your email. You can change it from the dashboard.

Rules

  • 4–32 characters, lowercase letters/numbers/hyphens
  • No leading, trailing, or consecutive hyphens
  • Common names are reserved (api, www, admin, etc.)
  • One subdomain per account — release the old one to claim a new one

Custom domains (Pro)

Pro plans can use your own domain for tunnel URLs. See Custom Domains for setup instructions.

https://api.tunnel.yourcompany.com     →  localhost:3000
https://staging.tunnel.yourcompany.com →  localhost:8080

Self-hosted subdomain setup

To enable subdomain routing on a self-hosted server:

  1. Configure a wildcard DNS record: *.tunnel.yourdomain.com → your-server-ip
  2. Start the server with --base-domain:
nullbore-server \
  --host 0.0.0.0 \
  --port 443 \
  --base-domain tunnel.yourdomain.com \
  --tls-domain tunnel.yourdomain.com \
  --tls-email [email protected]

For account subdomains (two-level routing), also set --account-domain:

nullbore-server \
  --base-domain tunnel.yourdomain.com \
  --account-domain yourdomain.com

This enables {tunnel}.{account}.yourdomain.com routing.