Map ports from inside your workspace to public URLs on rigbox.dev.
When a service runs inside your workspace, it’s only accessible within the VM by default. To make it reachable from the internet, you create an app — a route that maps an internal port to a public URL at {name}.rigbox.dev.
The flow from a running service to a public URL:Each app gets a unique subdomain on rigbox.dev. HTTPS is handled automatically — your service only needs to listen on HTTP inside the VM.
App subdomains are globally unique across all Rigbox users. If a name is taken, you’ll need to choose a different one.
This scans the workspace for active TCP listeners and returns the port number along with the process name when available.See List Listening Ports for the full response schema.
The expose-port endpoint detects the process listening on the specified port and creates an app in one call. This is the easiest way to make a service public.
If your workspace was created from a template that defines default apps (like a web server or API), you can ensure those apps exist with a reconcile call.
curl -X POST https://api.rigbox.dev/api/workspaces/$WORKSPACE_ID/reconcile-apps \ -H "Authorization: Bearer $RIGBOX_API_KEY"
This checks the template definition and creates any missing apps. It’s idempotent — running it multiple times has no side effects.See Reconcile Apps for details.
If health returns unhealthy, check that your service is actually listening on the correct port inside the VM. Use the listening-ports endpoint to verify.
import time# Wait a moment for the route to propagatetime.sleep(3)health = requests.get( f"{API_URL}/apps/{app_id}/health", headers=HEADERS,).json()if health["healthy"]: print(f"App is live at {app_url}")else: print("App is not healthy yet — check the service is running")