Skip to main content

Overview

This quickstart guides you through building and deploying your own application to Control Plane. You’ll containerize a sample Node.js application, push it to your org’s private image registry at Control Plane, and deploy it as a workload. What you’ll accomplish:
  • Install the Control Plane CLI
  • Containerize a sample application using Buildpacks
  • Push the image to your organization’s private registry
  • Deploy the application as a workload

Prerequisites

Step 1: Install the CLI

The CLI is required to build and push images to your org’s private registry at Control Plane.
npm install -g @controlplane/cli
Requires Node.js version 16+.
Verify the installation:
cpln --version

Step 2: Authenticate

Log in to Control Plane:
cpln login
This opens your browser for authentication. After successful login, set your default organization:
cpln profile update default --org YOUR_ORG_NAME

Step 3: Download the Sample Application

Download and extract the sample Node.js application: Extract the archive and navigate to the directory:
tar -xvf cpln_app.tgz && cd cpln_app
The application is a web app that displays the environment variables of the running process, including Control Plane variables such as cloud provider and location.

Step 4: Build and Push the Image

Build and push the image to Control Plane’s private registry:
cpln image build --name my-app:1.0 --push
The cpln image build command uses Buildpacks to automatically detect your application type and build the image. No Dockerfile required! If your application has an existing Dockerfile, the command will use that instead.
The image is now available in your organization’s private registry at //image/my-app:1.0.

Step 5: Create the Workload

1

Navigate to Workloads

Click Workloads in the left menu, then click New.
2

Configure workload basics

  1. Enter the name my-app
  2. Select quickstart-gvc from the GVC dropdown
3

Configure container

  1. Click Containers in the left pane
  2. Select Control Plane as the image source
  3. In the select image dropdown, type my-app and select my-app:1.0
  4. Under Ports, set Protocol to http and Number to 8080
4

Configure firewall and create

  1. Click Firewall in the left pane
  2. Click Make Public
  3. Click Create

Step 6: Access Your Application

1

Wait for deployment

The workload shows Ready in Workload Health (1-2 minutes).
2

Open the application

Click Open next to the Canonical Endpoint. Your application displays the Control Plane environment variables including the location and provider.

Updating Your Application

To deploy a new version, update your code and build with a new tag:
cpln image build --name my-app:1.1 --push
Then update your workload to use the new image:
Navigate to your workload, click Containers, select the new tag, and click Update.

What You’ve Learned

  • Private registry stores your images securely within your organization
  • Image references use //image/ prefix for CLI or full path for IaC tools
  • Buildpacks automatically containerize your application without a Dockerfile
  • Environment variables like CPLN_LOCATION and CPLN_PROVIDER are injected automatically

Continue

3. Configure a Custom Domain

Map your own domain to your workload for production-ready URLs.

Clean Up

To delete just the my-app workload created in this quickstart:
Navigate to Workloads, select my-app, and from Actions click Delete.
To delete images, navigate to Images in the Console, select the image name, and from Actions click Delete to remove all tags. With the CLI, delete each tag individually: cpln image delete my-app:1.0.