Skip to content

Enabling the public namespace

The public namespace lets anyone claim a public route under one designated label without a token. It is how the hosted routeup.dev offers token-less URLs under *.try.routeup.dev. It is off by default on self-hosted servers.

Pick a label and pass it when starting the server:

terminal
routeup server --domain tunnel.example.com \
--public-namespace try \
--reserved edge

Add *.try.tunnel.example.com to DNS. In static certificate mode, the supplied certificate must also cover *.try.tunnel.example.com.

Now clients can claim under try.tunnel.example.com without a token:

terminal
routeup serve --random --port 8080 --server https://edge.tunnel.example.com --expose
# -> https://happy-fox.try.tunnel.example.com
routeup serve demo --port 8080 --server https://edge.tunnel.example.com --expose
# -> https://demo.try.tunnel.example.com

The chosen label is automatically added to the reserved-subdomain list so no token holder can claim it at the root tier.

Public-namespace claims are deliberately lightweight:

session-only released as soon as the client disconnects
no grace window no 30s resume; the name frees immediately
no persistence nothing is stored across restarts
first-come a held name returns 409; --random generates a client-side name

Omit the flag when no config enables it, or remove/set public_namespace to an empty string in routeup-server.json. With it disabled, every public claim requires a token, and token-less claims are refused.

With no token to attribute claims to, anonymous limits protect claim creation. Configure rate_limit.anon_rate and rate_limit.anon_burst in routeup-server.json before enabling the namespace on an internet-facing server.