The usual app creation process will create a service by default; you only need to follow this process if you’re creating another component for your app that needs an internet-accessible endpoint. If your component only needs to be internally accessible, create a internal service instead. If you don’t need this component to be internet-accessible, create a worker instead.
Select the source code for the Web Service on GitHub. If connecting for the first time, you will see an empty repository list and will need to click the link labeled Configure your GitHub permissions, then refresh this page.
Next, select which branch of the source repo you’d like to use as the source of the Web Service. Click Next.
App Platform will inspect the code and select an appropriate runtime environment (such as Node, Ruby, etc). If you need to override this, you can see if there is a better options in the drop-down labeled Type as well. If nothing suitable appears there, upload a Dockerfile to your branch and restart the app creation process.
App Platform will also display any appropriate build and run commands that it detected, which you can now customize as needed.
If the use of environment variables is required, click Edit and supply them. Click the Encrypt checkbox to ensure a variable’s value is obscured in all build, deploy, and application logs.
Give the Web Service a name and click Next.
Select a plan, and click Launch Web Service.
Go to https://cloud.digitalocean.com/apps, click on your app, and click on the Settings tab. Click the Web Service you’d like to edit.
Go to https://cloud.digitalocean.com/apps, click on your app, and click on the Settings tab. Click on the Web Service you’d like to destroy.
You can destroy the Web Service by clicking the Destroy Component button on the bottom of the page and entering its name to confirm your selection.
Adding another service to your app spec, like so:
services: - environment_slug: go github: branch: master deploy_on_push: true repo: digitalocean/sample-golang instance_count: 1 instance_size_slug: basic-xxs internal_ports: - 8080 name: internal-service run_command: bin/sample-golang
This service has no HTTP port and route, making it inaccessible from the outside world. However, port 8080 is exposed internally making it an internal service. This service can be reached by workers and other services using the component name and the port, which in this example would be
http://internal-service:8080. Keep in mind, services that are publicly accessible can function as an internal service as well by defining internal ports.