Upsun User Documentation

From Platform.sh

Sign up

Get your free trial by clicking the link below.

Get your Upsun free trial

If you already have an app running somewhere else, you want to migrate it to Upsun and deploy it. To do so, follow these steps.

Before you begin Anchor to this heading

You need:

  • An app that works and is ready to be built
  • Code in Git
  • A Upsun account – if you don’t already have one, register.
  • The Upsun CLI installed locally

1. Export from previous system Anchor to this heading

Start by exporting everything you might need from your current app. This includes data in databases, files on a file system, and for some apps, such as Drupal, configuration that you need to export from the system into files.

2. Create a project Anchor to this heading

If you do not already have an organization created on Upsun, create one:

upsun org:create

Then run the following command to create a project:

upsun project:create

When prompted, fill in details like the project name, region, and the name of your organization.

Create a new project from scratch.

If you do not already have an organization created to put the project, you’ll first be instructed to create one.

Once you have done so, select that organization from the dropdown, and select Create from scratch.

In the form, fill in details like the project name and region. You’ll be able to define resources for the project after your first push.

3. Add configuration Anchor to this heading

The exact configuration you want depends on your app. You likely want to configure three areas:

When you’ve added your configuration, make sure to commit it to Git.

4. Optional: Define a resource initialization strategy Anchor to this heading

By default, when you first deploy your project, Upsun allocates default resources to each of your containers. If you don’t want to use those default resources, define your own resource initialization strategy before pushing your code.

Alternatively, you can amend those default container resources after your project is deployed.

5. Push your code Anchor to this heading

The way to push your code to Upsun depends on whether you’re hosting your code with a third-party service using a source integration. If you aren’t, your repository is hosted in Upsun and you can use the CLI or just Git itself.

  1. Get your project ID by running the following command:

    upsun projects
  2. Add Upsun as a remote repository by running the following command:

    upsun project:set-remote PROJECT_ID
  3. Push to the Upsun repository by running the following command:

    upsun push

When you try to push, any detected errors in your configuration are reported and block the push. After any errors are fixed, a push creates a new environment.

Set up the integration for your selected service:

Then push code to that service as you do normally. Pushing to a branch creates an environment from that branch.

Note that the source integration doesn’t report any errors in configuration directly. You have to monitor those in your project activities.

  1. Add an SSH key.
  2. In the Console, open your project and click Code .
  3. Click Git.
  4. From the displayed command, copy the location of your repository. It should have a format similar to the following:
abcdefgh1234567@git.eu.upsun.com:abcdefgh1234567.git
  1. Add Upsun as a remote repository by running the following command:
git remote add upsun REPOSITORY_LOCATION
  1. Push to the Upsun repository by running the following command:
git push -u upsun DEFAULT_BRANCH_NAME

When you try to push, any detected errors in your configuration are reported and block the push. After any errors are fixed, a push creates a new environment.

6. Import data Anchor to this heading

Once you have an environment, you can import the data you backed up at step 1. The exact process may depend on the service you use.

For SQL databases, for example, you can use a version of this command:

upsun sql < BACKUP_FILE_NAME

For any potential more details, see the specific service.

7. Import files Anchor to this heading

Your app may include content files, meaning files that aren’t intended to be part of your codebase so aren’t in Git. You can upload such files to mounts you created. Upload to each mount separately.

Suppose you have the following mounts defined:

.platform.app.yaml
mounts:
    'web/uploads':
        source: local
        source_path: uploads
    'private':
        source: local
        source_path: private

For instance:

.upsun/config.yaml
applications:
    myapp:
        mounts:
            'web/uploads':
                source: storage
                source_path: uploads
            'private':
                source: tmp
                source_path: private

Then, to upload your files, run a command similar to the following:

upsun mount:upload --mount web/uploads --source ./uploads
upsun mount:upload --mount private --source ./private

Alternatively, you can upload to your mounts using a different SSH method.

Optional: Add variables Anchor to this heading

If your app requires environment variables to build properly, add them to your environment.

What’s next Anchor to this heading

Now that your app is ready to be deployed, you can do more:

Is this page helpful?