Overview
The port exposure capability allows your Utari workers to make custom development servers and applications accessible by exposing specific ports. While port 8080 is automatically exposed, you can expose additional ports for applications running on different ports, enabling you to test multiple services simultaneously or work with applications that require specific port configurations.Understanding Port Exposure
What is Port Exposure?
Port exposure creates a tunnel that makes locally running applications accessible:Local Development
External Access
Multiple Services
Testing & Debugging
Default vs. Custom Ports
- Port 8080 (Auto-Exposed)
- Custom Ports (Require Exposure)
- No configuration needed
- Immediately accessible
- Default for most development servers
- Python HTTP server:
python -m http.server 8080 - Node.js apps configured for 8080
- Default development server port
When to Expose Ports
Use Cases for Port Exposure
Framework-Specific Development Servers
Framework-Specific Development Servers
- React/Create React App: Port 3000
- Next.js: Port 3000
- Angular: Port 4200
- Vue.js: Port 8080 (auto-exposed) or 5173 (Vite)
- Flask: Port 5000
- Django: Port 8000
- Express.js: Configurable, often 3000
- Svelte: Port 5000 or 8080
Multiple Services Running Simultaneously
Multiple Services Running Simultaneously
Specific Application Requirements
Specific Application Requirements
- Database interfaces and admin tools
- Monitoring dashboards
- Development tools (Webpack dev server, etc.)
- API documentation servers
- Testing frameworks
Custom Configuration
Custom Configuration
Exposing Ports
Basic Port Exposure
Start Your Application
Request Port Exposure
Receive Access URL
Access Your Application
Multiple Port Exposure
You can expose multiple ports simultaneously:Start Multiple Services
Expose All Ports
Get All URLs
Common Development Server Configurations
React Applications
Node.js/Express Applications
Python Applications
Angular Applications
Vue.js Applications
Complete Development Workflow
Full-Stack Application Setup
Install Dependencies
Start Backend (Non-Blocking)
Start Frontend (Non-Blocking)
Expose Ports
Access Applications
Test Integration
- Visit frontend URL
- Verify API calls to backend URL work
- Test application functionality
Microservices Architecture
Start All Services
Expose All Service Ports
Map Services
Port Exposure Best Practices
Use Standard Ports
Document Port Usage
Avoid Conflicts
Remember 8080
Non-Blocking Execution
Test After Exposure
Clean Up
Use Environment Variables
Common Port Reference
- Web Frameworks
- Backend Frameworks
- Development Tools
- Databases & Services
Troubleshooting
Port exposure requested but URL not working
Port exposure requested but URL not working
- Server is actually running on that port
- Check server logs for startup errors
- Use
netstat -tuln | grep [PORT]to confirm port is listening - Ensure no firewall blocking
- Try restarting the server
- Re-request port exposure
Port already in use error
Port already in use error
- Check what’s using the port:
lsof -i :[PORT] - Stop the existing process
- Or use a different port
- Kill stuck processes:
kill -9 [PID] - Restart with new port number
Can't access exposed port from browser
Can't access exposed port from browser
- URL copied correctly (no typos)
- Server started successfully
- No CORS issues (check browser console)
- Server bound to 0.0.0.0 not localhost
- Try accessing from incognito/private window
Multiple ports needed but only one working
Multiple ports needed but only one working
- All servers started successfully
- All ports explicitly exposed
- No port conflicts
- Check each service individually
- Verify each exposed URL
Server running but shows connection refused
Server running but shows connection refused
Exposed URL returns 404
Exposed URL returns 404
- Server is running (check with list_commands)
- Correct route/path being accessed
- Server has proper route handlers
- No typos in URL path
- Check server logs for requests