App Platform is a Platform-as-a-Service (PaaS) offering that allows developers to publish code directly to DigitalOcean servers without worrying about the underlying infrastructure.
Service components can send and receive traffic on both the public internet and the app’s internal local area network (LAN). You can also define additional HTTP and internal ports for service components. This can help you set up API gateways, backend job processing, and microservice architecture.
By default, other components in an app can communicate with service components over the app’s LAN using the service’s name as a URL. For example, if your app contains a service named
web, other components can reach the
web component at
If the service has other internal ports configured, other components can send traffic to a specific port on that service using the following URL syntax,
http://your-service-name:port-number. For example, if the
web service has configured port
3000, other components can communicate via that service’s port at
By default, services listen on port
80 for HTTP requests, but you can open additional ports on the service by setting the
internal_ports field in the app spec. For example, in the following spec, the
internal_ports field is set to ports
internal_ports: [8080, 3000]
Ports defined in
internal_ports field can accommodate any TCP-based traffic.
To view, upload, or download app specs using the DigitalOcean Control Panel, click the Settings tab for your app to go to the App Settings page. In the App Spec section, click the Edit link.
You can also define additional HTTP ports using the
http_port field in the app’s spec. For example, in the following spec, the
http_port field is set to
443. Because service components listen for HTTP requests on port
80 by default, this means that the app can now receive HTTP traffic on both ports
Additionally, as long as one port is specified in the service’s
internal_ports field of the spec, you can remove the
http_port field and any applicable routes specified in the
ingress field to make the service inaccessible from the public internet. You can use this configuration to make a service a backend component in your app’s architecture.