Skip to main content
When you first deploy your project or add a new container to it, Upsun uses default resources unless you specify a resource initialization strategy. You can also use a specific resource initialization strategy when performing certain actions, such as branching, merging, and activating an environment, or restoring a backup.

Default resources

Upsun allocates the following default resources to every container when deployed for the first time:
Resource typeAmount
CPU0.5
RAMDepends on the container profile.
Disk size (only applicable if the app or service requires a disk)512 MB
If you don’t want to use these default resources, you can specify a resource initialization strategy. You can also adjust resources after your project or new container has been deployed.
For information on costs related to resource usage, see the Upsun pricing page. You can monitor these costs in the Console.

Specify a resource initialization strategy

Upsun provides the following resource initialization strategies:
StrategyDescription
defaultInitializes new containers using the Upsun default resources.
This strategy applies when you first deploy your project (or new container) unless you explicitly specify a different strategy, or allocate resources manually via the resources:set CLI command.
manualWith this strategy, the first deployment fails and you need to configure resources manually through the Console, or using resources:set in the CLI.

This strategy allows you to set the exact resources you want, with a single deployment. Other strategies may require fine-tuning, and therefore generate a second deployment. In this case, your environment would run for a short time with unwanted resources, and both deployments would generate downtime.
minimumInitializes new containers using the Upsun minimum resources (see below).
parentInitializes new containers using the same resources as on the parent environment.
If there is no parent environment, or if the container doesn’t already exist on the parent, the default strategy applies instead.
childInitializes new containers using the same resources as on the child environment. Only relevant during merge activities.
backupWhen restoring a backup, initializes new containers using the same resources as when the backup was taken.

More information on…

You can specify a resource initialization strategy when performing the following actions:
ActionAvailable strategiesDefault
First deploymentparent, default, minimum, manualparent
Environment branchparent, default, minimumparent
Environment mergechild, default, minimum, manualchild
Environment activationparent, default, minimumparent
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=<VariableBlock name="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
Note that you can specify a different resource initialization strategy for each of your deployments.

Environment branch

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
By default, when you branch an environment to create a new child environment, the resources allocated to this child environment depends on its type (staging or development). If the child environment is a staging environment, the default resources are allocated. If the child environment is a development environment, the minimum resources are allocated. However, you can specify a different resource initialization strategy.
When you branch an environment, regardless of the strategy you specified, 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 branching can succeed.
Run the following command:
Terminal
upsun environment:branch --resources-init=<VariableBlock name="INITIALIZATION_STRATEGY" />
For example, to use the parent resource initialization strategy, 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 environment, any apps and services you created on the child are merged and therefore created on the parent. When this happens, any new app or service container created on the parent environment is granted the same resources as on the child environment. However, you can specify a different resource initialization strategy.
Any other container already running on the parent environment keeps its resources.
Run the following command:
Terminal
upsun environment:merge --resources-init=<VariableBlock name="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, Upsun allocates the resources depending on the environment type. If the environment is a staging environment, the default resources are allocated. If the environment is a development environment, the minimum resources are allocated. You can also specify a different resource initialization strategy using the CLI. To do so, run the following command:
Terminal
upsun environment:activate --resources-init=<VariableBlock name="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 a 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.

Backup restoration 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 already running on the environment are reverted to their original state when the backup was taken.
If you don’t want to restore the resources from when the backup was taken, opt out of restoring the resources. To do so, when you restore your backup, use the --no-resources option.
If you deleted containers after backing up but before restoring, they are recreated using the backup strategy. Meaning, they are granted the same resources as in the backup.
If you don’t want to restore previously deleted containers, opt out of restoring the code. To do so, when you restore your backup, use the --no-code option.
When you restore previously deleted containers, you can specify a different resource initialization strategy for them.

Backup restoration to a different environment

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

Specify a resource initialization strategy when restoring a backup via the CLI

Run the following command:
Terminal
upsun backup:restore --resources-init=<VariableBlock name="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 merging changes from a parent environment into a child environment. 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, data and resources, etc.)
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 March 11, 2026