deplaneDocs Dashboard

Limits

Every limit that applies to your apps, builds, and account, in one place.

Plan limits come from your organization's plan. They are plan settings, not fixed rules, and they can change. Run deplane whoami --json to see the limits that apply to you right now. To see what you used against them, open Usage in the dashboard or run deplane usage; see Dashboard. To raise a limit, email support@deplane.io.

Requests to your app

LimitValue
Request body100 MB per HTTP request to an app.
Time to the first response byte125 seconds. If your app sends nothing for 125 seconds after a request arrives, the request fails with a timeout. Send long work to a background job, or stream the response.
WebSocketsSupported, with no extra configuration. Connections stay open as long as data flows. Long-idle connections may be closed, so reconnect when that happens.
HTTPSEvery app gets https://NAME.deplane.app with a certificate, set up for you.
Large mediaDeplane is not a host for large video or file downloads. Use a storage service for those.

Instance sizes

SizeCPUMemoryLocal disk
small (default)0.5 vCPU512 MB1 GB
medium1 vCPU1 GB2 GB
large2 vCPU2 GB4 GB

Every instance of an app has the same size. Change it with deplane scale --size medium.

Local disk per instance

Each instance has a local disk of its own for the files it writes outside a disk: files anywhere in its file system, such as /tmp or a cache folder, and its log output. It is temporary: it starts empty at every deploy, restart or move to another server. Workers, cron jobs, release commands and runs get the local disk of their size. Databases, Redis, MySQL and ClickHouse keep their data on their own storage, which this limit does not count.

An instance that writes more than its local disk is stopped. A web or worker instance is then started again; a cron job's or a run's ends. A worker whose instances are stopped this way 3 times in 10 minutes is stopped altogether: start it again with deplane deploy, or with deplane processes scale (a larger size gives it more local disk). deplane status and deplane logs say so: "An instance was stopped at Oct 31 14:02 UTC because it wrote more than its local disk allows (1 GB)." Keep large or lasting files on a disk or in object storage, or use a larger size.

Deplane is turning this limit on team by team. Until it applies to your team, an instance's local disk is bounded only by its server's free space, which other teams share.

An autoscaled app counts at its maximum instances, whether or not it runs that many, and a sleeping app counts too.

Plans

New teams start on Free. Free is available today. Hobby ($7/month), Pro ($20/month) and Team ($99/month) are not on sale yet: Deplane can set them on request, at support@deplane.io. Enterprise is priced on request. See pricing.

Apps, people and domains:

LimitFreeHobbyProTeamEnterpriseError when you reach it
Memory, all instances of all apps together1 GB1.5 GB3 GB16 GB64 GBlimit_memory
Apps1520UnlimitedUnlimitedlimit_apps
Instances, all apps together231040300limit_instances
Sizessmallsmall, mediumsmall, medium, largesmall, medium, largesmall, medium, largelimit_size
App disk space, all disks together (disks are 5 GB each)5 GB10 GB50 GB250 GB1000 GBlimit_disk
Members, counting open invitations1110UnlimitedUnlimitedlimit_members
Custom domains, all apps together3525100Unlimitedlimit_domains
Pull request previewsNoYesYesYesYeslimit_previews
Sleep when idle (web instances)Apps sleep after 15 idle minutes (5 or 15)OptionalOptionalOptionalOptionallimit_sleep
Workers (cron jobs are on every plan)NoYesYesYesYeslimit_sleep

Databases, builds and logs:

LimitFreeHobbyProTeamEnterpriseError when you reach it
Postgres databases (preview databases do not count)1251550limit_databases
Redis (256 MB memory each, counted in your memory)1131025limit_redis
MySQL (each counts as one instance of its size)0131025limit_mysql
ClickHouse databases (each counts as one large instance, 2 GB)00025limit_clickhouse
Database backups kept (point-in-time restore to any second in them)1 day7 days14 days30 days90 daysnone
Build time, per month (reset on the 1st, UTC)500 minutes1000 minutes2000 minutes6000 minutes20000 minuteslimit_build_minutes
Builds at the same time11248none, more builds wait in the queue. Today the platform runs one build at a time for everyone; the higher numbers apply once more build capacity is added.
Live log streams at the same time2351020limit_log_streams
Assistant requests, per month1003001000300010000assistant_monthly_limit
Log retention (planned)7 days14 days30 days60 days365 daysnone

Builds at the same time also share Deplane's build capacity with every other team. When it is busy, a build waits in the queue even below your plan's number. The queue is fair between teams: the team whose last build started longest ago goes first, and when several builds run at once, one team never holds them all.

Unlimited is a safety cap of 1000. Log retention is planned and not applied yet: today deplane logs shows the recent lines of each running instance, and build logs are kept 30 days.

A team moved to a smaller plan keeps its apps, members, databases and domains. Only new ones over the smaller plan's limits are refused. A team moved to Free keeps each app's sleep setting and its workers too. Scaling them down or removing them always works, as long as the same command does not ask for --sleep off or --sleep 60m; starting or growing an app needs sleep at 5 or 15 minutes, and a worker cannot be started or grown.

Backups are the exception. On a plan with a shorter backup window, backups older than the new window are deleted at the next hourly cleanup, and so are deleted databases (with their backups) that were deleted longer ago than the new window. Disk, Redis, MySQL and ClickHouse backups follow the shorter window too. This cannot be undone: restore anything you need first.

Beta (older teams)

Teams that joined during the beta stay on the Beta plan until Deplane moves them. Beta allows 1536 MB of memory, 3 apps, 3 instances, all three sizes, 10 GB of disk space, unlimited members, 30 custom domains and pull request previews.

Its data stores and builds: 5 Postgres databases, 1 Redis, 1 MySQL, 1 ClickHouse database (it needs 2048 MB, so it does not fit in Beta's memory), database backups kept 7 days, 300 build minutes a month, 1 build at a time, 3 live log streams and 300 assistant requests a month.

Memory counts every instance at its size. For example, Free's 1 GB holds two small instances (512 MB each), but not one medium and one small (1.5 GB). Pro's 3 GB holds one large instance (2 GB) and two small ones.

Errors for plan limits have codes that start with limit_, and the CLI exits with code 6 for them.

Besides your plan's limits, Deplane refuses a new app, a preview, a scale-up, a new or bigger worker or cron job, a new or restored database, a new Redis, a new MySQL, a new ClickHouse database, or a template deploy while its servers are nearly full (above 85% of their memory or CPU reserved), with capacity_full. Running apps keep running; try again later.

Redis

LimitValue
Size256 MB memory (200 MB of data), 1 GB storage
Redis per app1. See redis_attached_elsewhere.
Back up nowOnce an hour per Redis. See backup_too_soon.
BackupsNightly; kept 3 days (or your plan's backup window, if shorter), plus the newest that worked; off-site, 7 days.

See Redis.

MySQL

LimitValue
Sizesmedium (1 GB memory, 1 vCPU; the default) or large (2 GB, 2 vCPU). No small. See invalid_mysql_size.
PlanA MySQL counts as one instance of its size, in your instances and your memory, like an app instance.
Storage10 GB, on one of the platform's database disks, shared with Postgres. When none is free: database_capacity.
Connections100 (medium) or 200 (large).
MySQL per app1. See mysql_attached_elsewhere.
Back up nowOnce an hour per MySQL. See backup_too_soon.
BackupsNightly; kept 3 days (or your plan's backup window, if shorter), plus the newest that worked; off-site, 7 days. No point-in-time restore.

See MySQL.

ClickHouse

LimitValue
Sizelarge only (2 GB memory, 2 vCPU). See invalid_clickhouse_size.
PlanA ClickHouse database counts as one large instance, in your instances and your memory, like an app instance. It needs 2 GB of your plan's memory.
Storage10 GB, on one of the platform's database disks, shared with Postgres and MySQL. When none is free: database_capacity.
DataKeep it under about 4.5 GB: above that, backups and restores are refused for lack of room. See restore_no_room.
Queries32 at once; about 840 MB of memory and 5 minutes each.
ClickHouse databases per app1. See clickhouse_attached_elsewhere.
Back up nowOnce an hour per ClickHouse database. See backup_too_soon.
BackupsNightly; at most 2 kept (the newest that worked, plus the one before it for up to 3 days); off-site, 7 days. No point-in-time restore.

See ClickHouse.

Uploads and builds

LimitValue
Upload size100 MB compressed.
Project size2 GiB uncompressed.
Files200,000 files and folders.
Dockerfile1 MB. A # syntax= line is not allowed.
Uploads at the same time2 per organization.
Build time15 minutes per build.
Build memory3 GB.
Build disk10 GB.
Image layer2 GB compressed per layer.
Queue timeA build that waits in the queue for more than 1 hour expires. Run deplane deploy again.
Build logsKept 30 days.

The CLI never uploads the .git folder or .env files. It honors .gitignore and .dockerignore. Keep node_modules, build output, and large data files out of the upload with them.

Releases and rollout

LimitValue
Time for a release to become healthy5 minutes. After that the release fails with Timeout and the previous release keeps serving.
StartupAn instance has up to 2 minutes to start answering its health check.
Releases shown by deplane releasesThe newest 50.
Release command15 minutes, at the app's size. deplane deploy waits up to 15 minutes longer when there is one.
Runs (deplane run)1 hour each; 2 at once per app and 5 per team; 30 per team per hour. Release commands and runs together: 2 at once per team. The output stays 1 hour after the run ends.

Databases

LimitValue
Databases per teamYour plan's: 1 on Free, up to 50 on Enterprise. See limit_databases.
Disk per database10 GB for each of its two copies.
Disk slotsA database uses two of the platform's database disks (one per copy), a preview database one. When no pair is free, a new database is refused with database_capacity.
Sizesmall, medium, or large; a database counts against your plan as one instance of its size.
Databases per app1, as DATABASE_URL.
Backup windowYour plan's: 1 day on Free, 7 on Hobby, 14 on Pro. Restore to any second in it, up to about a minute ago.
Deleted databasesRestorable for the backup window, then deleted for good with their backups.
Importing a databaseThe source can be at most 5 GB; one active import per team; 20 checks a day per team; a live import is cancelled after 14 days of syncing. See Import a Postgres database.
Preview databases3 per team at a time, smallest size, free (they do not count toward your plan's databases or limits). Never backed up.

See Databases.

App disks

LimitValue
Disks per app1, of 5 GB. See disk_exists.
Disk space per teamYour plan's: 5 GB on Free (one disk), 10 GB on Hobby. See limit_disk.
Instances of an app with a disk1, without autoscaling. See disk_needs_one_instance.
Back up nowOnce an hour per disk. See backup_too_soon.
Disk backupsNightly. Disk backups are kept 3 days (or your plan's backup window, if shorter), plus the newest that worked; off-site, 7 days.

See Disks.

Apps, previews, domains, and processes

LimitValue
Pull request previews3 per app at a time, on plans that include them (not Free). They count toward your plan's apps and instances. Choose which pull requests get them: GitHub. See limit_previews.
Custom domains10 per app, and your plan's for the whole team (3 on Free). See too_many_domains and limit_domains.
Workers and cron jobs10 per app; a worker runs 0 to 20 instances.
Instances of one appUp to your plan's instance limit. The autoscale maximum is 1 to 1000, also bound by your plan. The AI tools' scale tool takes at most 20 for instances.
Sleep when idleAfter 5, 15, or 60 minutes without requests, or never. On Free, after 5 or 15 minutes, and new apps start at 15. See limit_sleep.
Automatic rollbackWatches a release for its first 10 minutes live. Needs at least 50 requests and 10 errors from the app (502, 503 and 504 do not count), reaching visitors on at least 3 networks.
Alert channels10 per team.

Stacks

LimitValue
stack.yaml256 KB, one YAML document, nested at most 32 levels deep, with at most 200 aliases. See stack_too_large and stack_too_complex.
Services per stack64
Engines (databases) per stack64
Workers and cron jobs per app10
Custom domains per app10
Engines per appOne of each kind (Postgres, MySQL, Redis, ClickHouse).
Generated values16 to 128 characters.
Steps in one apply2000
Checks, plans and applies30 per team per 10 minutes (the API's check, plan and apply calls); deplane stack check counts only when logged in, when it plans. See too_many_stack_plans.
Applies at the same time1 per stack.
A new database becoming ready during an apply15 minutes. See stack_timeout.

A stack's apps and databases count toward your plan's limits like any others. See Stacks.

Logs

LimitValue
deplane logsThe last 100 lines of each running instance by default.
deplane logs --tail NUp to 1000 lines per instance.
Live stream (deplane logs -f)Up to 30 minutes per stream; run it again to continue.
Live streams at the same timeSet by your plan: 2 on Free, 3 on Hobby. A deploy that follows its build log uses one too.

Rate limits

WhatLimit
Login, sign-in links, and second-factor attempts5 per minute per IP address and per email
Access requests and abuse reports3 per hour per IP address
API requests120 per minute per token
Deploys10 per hour per app
Live log streamsYour plan's number per organization at the same time (2 on Free)

When you hit a rate limit, the API answers HTTP 429 with rate_limited and a Retry-After header. Wait and try again.

API

LimitValue
Request body64 KB, except source uploads (100 MB) and stack checks, plans and applies (1 MB).
CLI login tokenLasts 30 days.
CI token90 days by default, at most 365 days.
Login code (deplane login)Expires after 10 minutes.
Fresh passkey confirmationValid for 5 minutes.

App names

Secrets

LimitValue
NameCapital letters, digits, and underscores; not starting with a digit; at most 128 characters.
Reserved namesPORT and names that start with DEPLANE_.
One value32 KB.
All values of one app, per kind (runtime or build)256 KB.

Network from your app

Your app can reach the internet. Some destinations are blocked for everyone:

Regions

Apps run in one region today: fra (Frankfurt, Germany).

This page is also available as Markdown. AI agents can start at /llms.txt.