Skip to main content
Resources (CPU, RAM, disk) are allocated per container. Each app and service in your project runs as a separate container within an environment. By default, when you first deploy your project or add a new container to it, Upsun uses the parent resource initialization strategy, which copies resource allocations from the parent environment. If no parent environment exists, Upsun falls back to preset resource amounts instead. You can also specify a different strategy when branching, merging, activating, or restoring a backup. The strategy applied by default depends on how the environment is created:
  • For standard branching and activation, the default strategy depends on the environment type.
  • For environments created through a source integration, the strategy configured on the integration applies instead.

Default resources

Upsun allocates the following default resources to every container when deployed for the first time:
Resource typeDefault amount
CPU0.5
RAMDepends on the container profile assigned to each container type (for example, PHP uses HIGH_CPU).
Disk size*512 MB
* Only applicable if the app or service requires a disk (for example, databases such as MariaDB or PostgreSQL). To allocate different resources, specify a resource initialization strategy, or adjust resources after deployment.
Changing resource allocation directly affects your costs. Review the Upsun pricing page before increasing resources. You can monitor your current costs in the Console.

Specify a resource initialization strategy

Upsun provides the following resource initialization strategies:
StrategyDescription
defaultUses the parent environment’s resource allocation for new containers. If no parent environment exists, allocates default resources instead.
manualSkips automatic allocation. The first deployment fails until you configure resources manually through the Console or resources:set in the CLI.

This strategy lets you set the exact resources you want with a single deployment. Other strategies may require fine-tuning after the first deployment, which generates a second deployment. During that window, your environment runs briefly with unnecessary resources, and both deployments cause downtime.
minimumUses the Upsun minimum resources for new containers.
parentUses the parent environment’s resource allocation for new containers. If no parent environment exists, or if the container does not exist on the parent environment, falls back to allocating default resources.
childUses the child environment’s resource allocation for new containers. Used only when merging a child environment into its parent.
backupWhen restoring a backup, initializes new containers using the same resource allocation as when the backup was taken.
The following table shows the resources Upsun allocates to your containers when you opt for the minimum resource initialization strategy.
ContainerCPURAMDisk*
.NET core0.164 MB0 MB
Chrome Headless0.164 MBNone
Elasticsearch0.1448 MB256 MB
Elasticsearch Premium0.1448 MB256 MB
Elixir0.164 MB0 MB
Go0.164 MB0 MB
InfluxDB0.1448 MB256 MB
Java0.1448 MB0 MB
Kafka0.1448 MB512 MB
MariaDB0.1448 MB256 MB
Memcached0.1352 MBNone
MongoDB0.1448 MB256 MB
MongoDB Premium0.1448 MB256 MB
Network Storage0.1448 MB256 MB
Node.js0.164 MB0 MB
OpenSearch0.1448 MB256 MB
Oracle MySQL0.1448 MB256 MB
PHP0.164 MB0 MB
PostgreSQL0.1448 MB256 MB
Python0.164 MB0 MB
RabbitMQ0.1448 MB256 MB
Redis ephemeral0.1352 MBNone
Redis persistent0.1352 MB256 MB
Ruby0.164 MB0 MB
Rust0.164 MB0 MB
Solr0.1448 MB256 MB
Varnish0.1448 MBNone
Vault KMS0.1448 MB256 MB
* The disk size is set to None when the container never uses disk, and to 0 MB when the container doesn’t require disk but can use it.
You can specify a resource initialization strategy when performing the following actions:
ActionAvailable strategiesDefault
First deploymentparent, default, minimum, manualparent
Environment branchparent, default, minimumdefault (staging) / minimum (development), unless a source integration uses its configured strategy
Environment mergechild, default, minimum, manualchild
Environment activationparent, default, minimumdefault (staging) / minimum (development)
Backup restorationbackup, parent, default, minimumbackup

First deployment

Resource initialization strategies

Available: parent, default, minimum, manual
Default: parent
You can define which resource initialization strategy Upsun uses to allocate resources when you first deploy your project or add a new container.
If you’re not using a source integration, you can use a Git push option to specify a resource initialization strategy. To do so, run the following command:
Terminal
upsun push --resources-init=<INITIALIZATION_STRATEGY>
For example, to use the minimum strategy for your deployment, run the following command:
Terminal
upsun push --resources-init=minimum
Alternatively, you can use the official Git syntax for push options:
Terminal
git push upsun -o resources.init=minimum
You can specify a different resource initialization strategy for each deployment.

Environment branch

Resource initialization strategies

Available: parent, default, minimum
The default strategy depends on how the environment is created. Without a source integration, the default strategy depends on the child environment type:
Environment typeDefault strategyResources allocated
Stagingdefaultdefault resource amounts
Developmentminimumminimum resources
With a source integration, the parent strategy applies by default, unless a different strategy is configured on the integration.
If resource allocation is higher than expected, check the source integration’s configured strategy.To change the strategy used by a source integration, see Update an existing source integration.
Use the methods below to specify a different resource initialization strategy.
Regardless of strategy or integration, Upsun automatically applies the parent’s disk size to the child environment if the child’s disk size is smaller. This ensures the branch can be created.
Run the following command:
Terminal
upsun environment:branch --resources-init=<INITIALIZATION_STRATEGY>
For example, to inherit resources from the parent environment, run the following command:
Terminal
upsun environment:branch --resources-init=parent

Environment merge

Resource initialization strategies

Available: child, default, minimum, manual
Default: child
When you merge a child environment into its parent, any apps and services that exist on the child but not on the parent are created on the parent environment. These new apps and services are granted resources according to the selected strategy. However, you can specify a different resource initialization strategy.
Apps and services already running on the parent environment keep their existing resources.
Run the following command:
Terminal
upsun environment:merge --resources-init=<INITIALIZATION_STRATEGY>
For example, to use the manual resource initialization strategy, run the following command:
Terminal
upsun environment:merge --resources-init=manual

Environment activation

Resource initialization strategies

Available: parent, default, minimum
Default: default if the new environment is of type staging, minimum if the new environment is of type development
When you activate a new environment, the resource initialization strategy applied depends on the environment type:
Environment typeDefault strategyResources allocated
Stagingdefaultdefault resource amounts
Developmentminimumminimum resources
To specify a different strategy, run the following command:
Terminal
upsun environment:activate --resources-init=<INITIALIZATION_STRATEGY>
For example, to use the parent resource initialization strategy, run the following command:
Terminal
upsun environment:activate --resources-init=parent
Setting resources on an inactive environment using the Console or the CLI automatically activates it.

Backup restoration

Resource initialization strategies

Available: backup, parent, default, minimum
Default: backup
When you restore a backup using the CLI, you can restore it to your current environment or a different environment.

Restore to your current environment

By default, when you restore a backup using the CLI, it is restored to your current environment. The resources of every container running on the environment revert to the state they were in when the backup was taken.
To skip restoring resources, use the --no-resources option.
If you deleted containers after backing up but before restoring, they are recreated using the backup strategy and granted the same resources as when the backup was taken.
To skip restoring deleted containers, use the --no-code option.
When you restore previously deleted containers, you can specify a different resource initialization strategy for them.

Restore to a different environment

The backup strategy applies by default. All apps and services are initialized as new containers on the environment, and granted the same resources as in the backup. You can specify a different resource initialization strategy for all containers.

Specify a resource initialization strategy

Run the following command:
Terminal
upsun backup:restore --resources-init=<INITIALIZATION_STRATEGY>
For example, to use the minimum resource initialization strategy, run the following command:
Terminal
upsun backup:restore --resources-init=minimum

Environment sync

Syncing an environment means propagating changes from a parent environment into a child environment (the opposite direction of an environment merge). You can sync:
  • Only the code
  • Only the data (databases, files)
  • Only the resources (CPU and RAM, instances, and disk space)
  • Any combination of the three (code and data, code and resources, data and resources, or all three)
When you sync the data, Upsun checks if the child environment’s disk size is at least equivalent to the parent’s.
If not, the parent environment’s disk size is automatically applied to the child environment. This ensures the sync can succeed.
Run the following commands depending on your needs:
  • Sync only resources:
    Terminal
    upsun sync resources
    
  • Sync only code:
    Terminal
    upsun sync code
    
  • Sync only data:
    Terminal
    upsun sync data
    
  • Sync everything:
    Terminal
    upsun sync code data resources
    
    You can adjust the command depending on the exact combination of elements you want to sync.
Last modified on May 28, 2026