SDL Networking
Expose ports and configure networking for your deployments.
Port Exposure
expose:
- port: 80 # Container port
as: 80 # External port
to:
- global: true # Internet accessible
- port: 443
as: 443
to:
- global: true
Port Configuration Options
| Field | Description |
|-------|-------------|
| port | Container internal port (where your app listens) |
| as | External port number (what users connect to) |
| to.global | If true, accessible from internet via deployment URL |
Common Port Configurations
Web Server (HTTP/HTTPS)
expose:
- port: 80
as: 80
to:
- global: true
Node.js API
expose:
- port: 3000
as: 3000
to:
- global: true
Multiple Ports
expose:
- port: 80
as: 80
to:
- global: true
- port: 443
as: 443
to:
- global: true
- port: 8080
as: 8080
to:
- global: true
Internal Service Communication
Services within the same deployment can communicate using service names:
services:
api:
image: node:20-alpine
expose:
- port: 3000
as: 3000
to:
- global: true
env:
- REDIS_HOST=cache # Uses service name
cache:
image: redis:alpine
# No expose needed - only internal access
Services without global: true are only accessible from other services in the same deployment. Use Docker's internal DNS (service name as hostname) for inter-service communication.
Deployment URLs
When your deployment starts, it gets a URL like:
https://web-17628738.deployments.kovanetwork.com
The format is: {service}-{deployment-id}.deployments.kovanetwork.com