Quick Start

Welcome to the Cycle quick start guide! The goal of this guide is to take a new Cycle user from either a new and empty hub (or one they've been invited to) all the way through deploying and viewing their first container!

During this process, if you were to encounter any issues, have any questions, or just want to chat about what you're building, please don't hesitate to reach out to our team through the public slack or our community forum.

To get your first container online we'll need to complete the following steps:

  1. Integrate with a Provider
  2. Provision a Server
  3. Create an Image Source and Image
  4. Create an Environment
  5. Deploy the Container
  6. Point DNS to the Container

Integrate with a Provider

In order to provision a new compute node server, a provider integration is required. In this guide Vultr is used, but if another provider is desired there are guides on adding them here:

To create the required credentials, a Vultr Account is needed.

After creating the account and logging in, locate the Account tab from the main, left-hand navigation. This will open a submenu where you will select API. API access has to be enabled which can be done by pressing the Enable button. Before leaving this page make sure to press the Allow All IPv4 and Allow All IPv6 buttons which makes it possible for the Cycle platform to provision infrastructure on your request.

Add Credentials To Cycle

With the API key copied, head back to the Cycle portal and select Hub from the main, left-hand navigation. There is a sub-menu option that says Integrations, select this and then click on Vultr from the list of infrastructure providers. Use the Add Integration button to open the add integration wizard and then paste in the API key that was copied from Vultr. After clicking the Add button to submit, the integration should move into a live state.

Provision a Server

Now that the provider has been added and verified, you need to provision a server to run your container. We will use one of the clusters that exists by default so there is no need to create one.

In the main left-hand navigation, go to Infrastructure, then click Servers. In the first column of the page, click Deploy to open the Add Server modal. Select the provider you added to the hub integration, choose a location, and then click Next.

Server selection is done by using the ^ to increase or v to decrease the number of servers which are shown on the right hand side in Orders Summary. Be sure to choose either Production or Development from the cluster dropdown and then submit using the Deploy button.

Hold to Press

This may be the first interaction with Press to Hold buttons in the portal so far. There are many buttons in the portal that must be held down in order to be submitted. These buttons are generally scoped to places where accidentally submitting a choice may feel overly punishing, and hope to provide some respite to the user that such mistakes are hard to make on this platform.

After using the Deploy button, the server will go through the provisioning, configuration, and liveness states; finally landing in the state live.

Create an Image Source and Image

While the server is coming online, an image source and image can be created. For this guide, use the offical getting started image from our Cycle platform DockerHub cycleplatform/getting-started:latest.

The first step in this process is to create the image source. To start, head over to Images on the main navigation and then click Sources from the sub-navigation. In the first column, select the Create button which opens the create modal.

Use the following for the form fields:

FieldValue
NameDemo
TypeDockerHub
Image Namecycleplatform/getting-started
Taglatest

Then submit and the image source will create. Now click the Import Image button at the top of the page to import a copy of this image.

Create an Environment

Check that the server is in the live state by going back to the Servers page under Infrastructure. If its not, please wait for that state before proceeding.

The next step in our journey is to create an environment.

Environments are how containers are networked together on Cycle. Containers are deployed into an environment, and all of the instances, regardless of what server, datacenter, or provider they are running on, will have a private, encrypted layer 2 network built between them automatically.

In other words, an environment can be thought of as a global VPC that spans all the nodes in the same cluster. Using this abstraction, networks between containers are built implicitly, simply by being part of the same environment.

To create the environment, click Environments from the main left-hand navigation. Next, open the environment create wizard using the Create button in the first column.

Use the following for the form fields:

FieldValue
NameWebsite
ClusterEither production or development, whichever was chosen during the Server provisioning earlier.

Now submit using the Create Environment button.

Deploy the Container

The container image was already imported earlier, so all that is left is to fill out the container deployment wizard form. From the environment thats been created, use the Deploy Container button in the top right hand of the page.

Update the following fields, leaving any field not mentioned as its default:

FieldValue
Namegs-website
Recent Images > ImageThere should only be one option here from the image that was created, select that image.
Public NetworkEnable

For a deeper dive into each individual field check out this page from the portal documentation.

After the fields are updated, use the Deploy Container button to deploy the container.

Deploying the container opens the container modal for the first time. Just to show where this modal is, exit this modal using Esc or the X character outside the modal (clicking off to the side also works). If its not already selected, click the Containers tab from the horizontal navigation in the environment and then the container name to re-open the modal.

Close the modal again and navigate to the tab that says Dashboard from the horizontal navigation. From here, choose and press the Start All button at the top of the screen. Doing this will start the environment services and containers. The load balancer will start because the container has public network set to enabled. Once started, there will be a set of IP's. Save the IPv4 address of the load balancer to a notepad or workspace as it will be used in the next step.

Point DNS to the Container

The server is online, the image has been created and used to create a container that is now running in the environment alongside the necessary environment services. The only thing left to do for that container to be accessible through the browser (or by cURL if thats simpler) is to set up DNS.

For this guide, its simplest to set up a non-hosted zone, but once the guide is completed it is suggested to learn about hosted zones as well as they unlock quite a few powerful features. This setup will just use basic HTTP (no https) but gets us from start to finish faster and with no need to manage nameserver records.

Before handling the Cycle side of things, head over to a domain manager where an A record can be added for a domain or sub-domain. Create a new A record entry and paste in the value of the load balancer IP copied eariler to the IP field on the record. Make a note of the domain / sub-domain used.

Now, head over to DNS from the main, left-hand navigation and then Zones from the sub-navigation menu. Use the Create button from the first column to open the zone create wizard.

For the Origin field on the form, use the full origin for the domain copied earlier.

For example: website.yourdomain.com

And then click Next

Select Non-Hosted Zone from the two tiles and submit this second page using the Configure button followed by the Review button and then finally Create Zone.

After creating, the zone will be selected. In the top right corner there is a button for Add Record, use this button to open the record create wizard.

Use the following settings on the record create wizard.

FieldValue
Record TypeLinked
Name@ This value assigns the record to the origin that was set during the zone create.
EnvironmentWebsite (or if a different name was used for the env, then use that name from the list)
AssociationLink to Container
Containergs-website (or if a different name was used for the container, use that name from the list).

Submit the record create using the Create button.

The A record tells DNS nameservers how to route to the load balancer, and the linked record teaches the load balancer that requests coming in for this domian need to go to this container.

Open a new browser tab and put the domain in. This should now render the website. If you get stuck or have questions reach out to our team through the public slack or our community .

We use cookies to enhance your experience. You can manage your preferences below.