App Platform Limits

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.

Storage Limits

  • The host instances running App Platform containers do not provide persistent data storage. Data in the host instance’s local filesystem is permanently lost after deployments and other container replacements. The local filesystem is additionally limited to 2GiB, and if it is filled to capacity, the container is detected as unhealthy and replaced.

    Apps should only use the host instance’s local filesystem for small amounts of temporary storage. For persistent storage, you can use Spaces Object Storage or DigitalOcean Managed Databases.

  • File uploads to apps timeout after 100 seconds.

  • App Platform does not support volumes.

Image Limits

  • We do not limit the size of images deployed to App Platform, but we recommend using images less than 1 GiB in size. Images larger than 2 GiB are likely to experience build and deployment issues.

Scaling Limits

  • Autoscaling is only available for app components using dedicated CPUs.

Repository Service Limits

  • App Platform can only integrate with GitHub repositories, GitLab repositories, or public Git repositories over HTTPS. Support for other source providers is planned.

  • App Platform does not support auto-deployment of images from Docker Hub repositories or from GitHub Registry. If you need to auto deploy for your images, consider using DigitalOcean Container Registry.

  • Git submodules that reference SSH path style repos fail to build. Replace SSH submodule links with HTTPS to avoid this limitation.

  • You must store private git submodules in the GitHub account you have authorized App Platform to use. Referencing private git submodules that the authorized GitHub account cannot access causes the build to fail.

  • You must have an Owner or Maintainer permissions-role in any GitHub repository that you want to access from App Platform.

Database Limits

  • Dev database cluster permissions do not allow you to create additional databases. You can only use the cluster’s default database. If you need additional databases in your cluster, consider using a DigitalOcean Managed Database, instead.

  • App Platform’s engine support for dev databases is currently limited to PostgresSQL, but you can create a PostgresSQL, MySQL, Redis, MongoDB, or Kafka managed database with DigitalOcean for use in your app.

  • Dev databases are located in the same region as your app and cannot be migrated to another region. If you migrate your app to a different region, the app won’t be able to access the associated dev database anymore. If you need to migrate your app and dev database, we recommend either backing up the contents of the database and restoring it after the app’s migration, or using a DigitalOcean Managed Database instead. You can migrate managed databases independently of apps to different regions as needed.

  • App Platform does not support connecting to DigitalOcean Managed Databases during the build process if the database has trusted sources enabled. This is because the app’s network configuration information can only be provided to the database’s trusted sources list after the app has been built.

  • App Platform does not currently support connections to Kafka databases that have trusted sources enabled. You must disable trusted sources on the Kafka database before it can be integrated with an App Platform app.

  • MongoDB database names cannot contain capital letters when adding them using an app spec.

Networking Limits

  • Apps deployed on App Platform are not connected to VPC networks. All connections from apps to other services running on DigitalOcean occur over the public network, including connections between apps and DigitalOcean Managed Databases. See How to Manage Databases in App Platform for detailed instructions about how to connect apps to databases.

  • App Platform does not directly support adding 301 and 302 redirects. However, you can work around this by creating a free app that redirects traffic to another domain.

  • We do not offer dedicated egress IPv6 addresses.

  • App Platform apps do not support connecting to IPv6 services or hosts.

  • App Platform does not support adding DNSSEC enabled domains to apps.

  • App Platform does not support adding DNSSEC enabled domains to apps.

  • Dedicated egress IPs are an app-level feature. When you assign them to an app, all egress (outgoing) traffic from the app’s components use the addresses assigned to the app, except for functions. Egress traffic from functions cannot use dedicated egress IPs and their own addresses can change at any time.

  • You cannot forward logs from dedicated egress IPs. Log forwarding uses its own routing to send logs.

  • Browsers aggressively cache redirects, and as such you may need to clear your cache and hard refresh to see changes in your redirect configuration.

  • App Platform only supports high availability (HA) for apps running two or more containers so that there is a failover for App Platform’s load balancer to use.

  • You cannot open SSH or SFTP ports on App Platform containers. You must deploy code changes through your code repository or container image.

  • You cannot open SMTP ports on App Platform containers.

  • App Platform’s edge servers negotiate HTTP/2 connections from supported clients. However, App Platform downgrades these requests to HTTP/1.1 when relayed to an app’s container. We do not support gRPC over HTTP/2.

  • App Platform does not support streaming connections using HTTP/1.1 due to caching issues at the edge. We recommend using websockets for interactive connections.

  • While App Platform automatically upgrades all HTTP requests to HTTPS requests, it does not set HTTP Strict-Transport-Security (HSTS) headers for apps. If you want to set HSTS headers for your app, you need to set the headers in your app’s code. All apps hosted on the domain automatically behave as if HSTS has been set as the .app TLD is on the HSTS preload list.

  • We do not limit the number of concurrent connections to your app, but each connection consumes system resources and may affect your app’s performance when it is under heavy load. If you are experiencing performance issues related to large numbers of concurrent connections, we recommend scaling your app to better handle the work load.

  • Apps are hosted in the region you select during the initial deployment but the app’s IP address may appear to be in a US region. This is expected behavior as App Platform routes traffic to apps through Cloudflare’s global CDN, a US-based company. Learn more about why apps have US-based IP addresses.

  • App Platform does not officially support node clustering, such as Erlang clustering. This is because we currently don’t expose a way to discover the cluster nodes.

Other Limits

  • App Platform does not currently support injecting values on disk at build time. However, you can use environment variables to inject values at runtime using runtime commands.

  • Configuration changes that redeploy your app also trigger a pull of the latest source code from your repo. This is by design.

  • App Platform only supports binaries built for the AMD64 CPU architecture.

  • App Platform uses the gVisor container runtime sandbox and some system calls are not supported.

  • App Platform does not support resource usage reporting with PM2 in Node.js apps. Instead, use the Insights tab to see insights such as memory and CPU usage.

  • You must explicitly start system-level cron jobs using your app’s run commands. cron jobs do not start automatically like on standard Linux systems.

  • App Platform does not currently support changing time zones for build and runtime logs, which are displayed in UTC.