How to Create Apps in App Platform

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.


App Platform retrieves your app’s code from your linked repository (GitHub or GitLab) or container registry (DOCR or Docker Hub), detects the type of language the app is written in, and deploys the app into an appropriate container environment. App Platform hosts the app at a public URL provided by DigitalOcean and can automatically redeploy the app when it detects changes in the repo.

Creating an App Platform app involves three steps:

  1. Selecting the code base (repository) to pull the code from
  2. Configuring the detected service, such as environment variables and HTTP routes
  3. Choosing the app’s details: its name, region, instance type, and size

You can change the configuration and add more services, static sites, and databases after you create the app.

Create Resource From Source Code

To start creating an app using the DigitalOcean Control Panel, click the Create button and then select Apps from the drop-down menu.

On the Choose Resource From Source Code screen, select the code repository service your app resides on. If you have not previously created an app on App Platform, the repository service prompts you to provide DigitalOcean with read permissions to your account.

Build and deploy your app in the cloud with App Platform.

Select the app’s repo from the Repository drop-down and then select the branch to deploy from in the Branch drop-down menu.

The Source Directory is the directory inside the repo from which to build the app from. The default is the repo’s root directory. For a GitHub monorepo, specify the folder that contains the source. For more information, see Deploy from a Monorepo for more information on how App Platform builds apps from monorepos.

You can choose to opt out of auto-deploying code changes. Uncheck the Autodeploy code changes box to disable App Platform from redeploying the app when it detects changes in the app’s repo.

Once you have selected the app’s repo and branch, click Next. App Platform retrieves your app’s code.

App Platform inspects the code and app resources, and selects an appropriate runtime environment (such as Node, or Ruby). If you need to override this, upload a Dockerfile to your branch and restart the app creation process.

Resources

Resources are deployable runtime software elements in your app. A resource can be a database, a service, a worker, or a static site. On the Resources screen, you can change the plan, configure resource settings or create new resources for your app.

Change Plan

Click the Edit Plan button on the Resources screen to scale the app’s resources.

Scale app

On the Edit Plan screen, you can select one of the following plans as well as scale the app resources vertically by increasing the amount of CPU and memory or horizontally by adding more container instances:

  • Starter - You can only select the Starter plan to host static websites, such as Hugo sites.
  • Basic - Basic plans allow for only one container, vertical scaling, and less outbound transfer and build minutes than the Pro plan. Use the Basic plan for small-scale apps or prototyping your app. Specify the size of the container in the Size section.
  • Pro - The Pro plan includes all of the attributes of the Basic plan and adds more build minutes, horizontal scaling, and high availability. Use the Pro plan to deploy a fully production-ready iteration of your app. Select the number of containers you would like your app to run in the Containers section. Adding additional containers horizontally scales your app to make it more highly available.

As you change the size or the number of containers, the Monthly App Cost section updates to give you an overview of the app’s monthly cost.

For static sites, the Scale screen shows information about the number of apps on your account along with the static site’s name and other resources.

After you configure your scaling settings, click Back to go back to the Resources screen.

Configure Resource Settings

To configure the app resource settings, click the edit icon corresponding to the resource on the Resources screen.

App configuration options

App Platform presents several configuration options, several of which may have been auto-filled during the app’s detection. You can configure the following options for your app:

  • Name - Unique name for the resource.

  • Resource Type - The type of app to be deployed, either a web service, static site, or worker service. This field determines which additional configuration options are available for your app on this screen.

  • Build Command - Custom build commands to run upon deployment.

  • Run Command - For web and worker services only. You can specify custom run commands for the application to run after deployment. If no run commands are specified, the default run command for your app’s language will be used, such as npm start for a Node.js app.

  • HTTP Port - For web services only. The port that the app receives HTTP requests on. The default port is 8080.

  • HTTP Request Routes - For web services and static sites only. The URL path where the app can be accessed, such as your-app-v3cl4.ondigitalocean.app/api. If not specified, the app will be accessible from the provided hostname’s root.

  • Output Directory - For static sites only. An optional path to where the build assets will be located, relative to the build context. If not set, App Platform will automatically scan for these directory names: _static, dist, public, build.

App Platform displays build and run commands that it detected, which you can customize as needed. Refer to the cloud-native buildpacks for instructions for specific buildpacks. For Dockerfile-based builds, entering a run command overrides the Dockerfile’s entrypoint.

After you configure the resource settings, click Back to go back to the Resources screen.

Create New Resources

Once you configure your app, you can optionally create additional resources for the app. In the Create Resource section of the Resources screen, select the type of resource in the Resource Type section.

Add resource
  • For service, worker, or static site: Select the Detect from Source Code option and click Create. Select the resource from your repository, container registry, or sample app and click Next.

  • For database: Select the Database option and click Next. Choose the Dev Database option to connect a small development-level PostgreSQL database to your app and click Create and Attach. We do not recommend using this initial size for production-ready apps, but you can upgrade the database to a production-ready size at a later time. Alternatively, you can select the Previously Created DigitalOcean Database option and click Attach Database to attach an existing DigitalOcean database to your app as a resource. All DigitalOcean database clusters support apps as trusted sources. This creates a secure connection to the database and it accepts traffic only from the app.

The new resources are added to your app and appear on the Resources screen.

New resources added

Once you configure the resources, click Next.

Environment

If your app requires environment variables, such as the app’s URL or database connection strings, you can define them in this section. These can be runtime and build time environment variables. We also provide several app-specific dynamic environment variables that the app can reference. App-level variables can be accessed by all resources in your app.

On the Environment screen, click the corresponding Edit link to specify app-level or resource-specific environment variables. Click the Encrypt checkbox to obscure the variable’s values from all build, deployment, and application logs.

Once you configure the environment variables, click Next.

Info

On the Info screen, click Edit to specify the name of your app and the project your app belongs to. The name can only contain lowercase alphanumeric characters and dashes.

In the Region field, select a datacenter region for the app to reside in. For performance purposes, it is best to select the region geographically closest to the app’s user base.

You cannot select a region for static sites. Static resources are served on DigitalOcean’s global CDN.

Once you enter a name for your app and select a region, click Next.

Review

On the Review screen, review your app’s resources, environment variables and billing information and then click Create Resources.

Once your app deploys, you can view the app at the URL at the top of the app’s Overview page.

The app's provided URL above the Overview page