Creating Tunnels
From the App
Quick Expose
- Find your project in the Projects tab
- Ensure your dev server is running
- Click Expose on the running service
- Enter a subdomain or use the suggested one
- Click Done
Your tunnel is now active at https://subdomain.expose.yourdomain.com
From Project Detail
- Click on a project to open details
- Start the server if not running
- Click Expose in the Actions section
- Configure the subdomain
- Click Done
From the Menu Bar
- Click the Expose menu bar icon
- Find your project under Projects
- Click Expose next to a running service
- Enter a subdomain
- Press Enter
Tunnel Configuration
When creating a tunnel, you can configure:
| Option | Description |
|---|---|
| Subdomain | The public URL prefix (e.g., myapp) |
| Local Port | The port to forward (auto-detected) |
Subdomain Rules
- Lowercase letters, numbers, and hyphens only
- Must start and end with a letter or number
- 3-63 characters long
- Must be unique (not in use by another user)
Managing Active Tunnels
View Tunnels
Go to the Tunnels tab to see all active tunnels with:
- Public URL
- Local port
- Connection status
- Real-time metrics
Copy URL
- Find the tunnel in the list
- Click the copy icon or right-click
- The URL is copied to your clipboard
Stop a Tunnel
- Find the tunnel in the list
- Click the tunnel card to open detail
- Click Disconnect in the actions
Or from the project detail view, click Unexpose.
Multiple Tunnels
You can run multiple tunnels simultaneously:
- Different projects on different ports
- Same project with different subdomains
- Each tunnel uses a separate WebSocket connection
Automatic Reconnection
If your connection drops, Expose automatically attempts to reconnect:
- Waits 1 second
- Attempts to reconnect
- If failed, waits longer (exponential backoff)
- Retries up to 10 times
- Shows error if all attempts fail
During reconnection, the tunnel URL remains reserved for you.
Tunnel Persistence
Tunnels persist until:
- You manually disconnect
- The app is closed (unless “Keep tunnels on quit” is enabled)
- Your server is restarted
- Network connectivity is lost for too long
Best Practices
Use Meaningful Subdomains
✓ preview-feature-x✓ demo-client-acme✓ staging-api
✗ test1✗ asdf✗ abc123One Tunnel Per Service
Expose one port per subdomain for clarity:
frontend.expose.domain.com → :3000api.expose.domain.com → :8000Monitor Metrics
Watch for unusual traffic patterns that might indicate issues or unauthorized access.