Deploying your first Rails app

What you’ll need

Before you can deploy your app please check you have the following:

An account with your cloud provider of choice. Cloud 66 supports AWS, Google Cloud, Microsoft Azure, DigitalOcean, Hetzner, Linode,Latitude.sh, OVH, Packet, Rackspace, and Vultr.

Click on any of the links above for instructions on linking your cloud provider to your Cloud 66 account.

Rails version support

We support every version of Rails from 2.6.3 and upwards, including versions 6.x.x The version installed during deployment is based on the requirements of your application. Versions earlier than 2.6.3 may work but will have some compatibility issues with Ubuntu 18.04 and 20.04.

If you’re already using Cloud 66 just click New Application → Rails (Rack frameworks) button on the dashboard.

Deploy a new Rails app

Defining your application

Step 1: Choose a source

The first thing we need is access to your code, so that we can build and deploy it for you. The easiest option is to give us (read-only) access to a Github repo. To do this:

  1. Click Get Started
  2. On the next page click Link with Github
  3. We’ll send you to our app on Github (you’ll need to sign in)
  4. Once you’re signed in, click Configure & then select the account you wish to link to Cloud 66
  5. Install and authorize our Github app (you can restrict our access to specific repos if needed)
  6. You will be redirected back to your Cloud 66 dashboard and you can move on to Step 2.

Using a non-Github host

If you’d prefer to use another git host, or your own self-hosted repository:

  1. Click I’d rather enter a git repo URL.
  2. Copy the SSH key
  3. Open your repo and add the key to the settings (usually found under SSH or SSH keys)
  4. Come back to Cloud 66 and click the green Next… button

Step 2: Add repo details

Now that we have access to your code, we can set up your application:

  1. Choose the repo you want to deploy and set the branch
  2. Choose an environment for your application
  3. Give your application a name (this will be used to label your application throughout the Cloud 66 dashboard, and will not be visible to public users.)
  4. Click Analyze

Step 3: Configure app

Once the analysis is complete you’ll see a yellow Information Box that you can use to verify the analysis is correct.

Rails application - analysis information

If there are any problems you can make changes and click Reanalyze my code. If necessary, you can also add environment variables.

In App Configuration you can make changes to application configuration parameters.

Rails application - Ruby version and Framework configuration

Advanced Configurations

You can configure many aspects of your application using Cloud 66 Toolbelt or a manifest file.

Step 4: Configure servers for deployment

A. Add deployment target

We need access to your cloud account in order to provision and manage servers on your behalf. How you configure that access differs from provider to provider. Click the link to your provider below if you need help.

Amazon Web Services

  • AWS Access key ID — You get this info from your AWS account Dashboard. (more help)
  • AWS Secret Access Key — You get this info from your AWS account dashboard, when you create your AWS account. (more help)
  • Give this cloud key a name — This is to give you the option of deploying to multiple AWS accounts. If you are deploying to a single account only, you can leave it as default.

DigitalOcean

  • Give this cloud key a name — this is to give you the option of deploying to multiple accounts with the same cloud provider. If you only have 1 account you can leave it as default.
  • Click Add Cloud — this will redirect you to the DigitalOcean dashboard. You'll need to login to DigitalOcean to finish adding the key.

Google Compute Engine

  • GCE Client Email — You get this info from your GCE account Dashboard. Under Service AccountsAPI'sCredentials (more help)
  • GCE Project Id — You get this info from your GCE Dashboard. It's located at the top of the Overview page. (more help)
  • GCE Key — This is a JSON file you need to upload, you get this from your GCE Dashboard.

Hetzner Cloud

  • Hetzner API key — You can find this under Access → API tokens → Generate API Token (more help)

Linode

  • Give this cloud key a name — this is to give you the option of deploying to multiple Linode different Linode accounts. If you only have one account you can leave it as default.
  • Linode API Key — You get this information from your Linode Cloud Dashboard. my profileAPI Keys tab.

Latitude.sh

  • Latitude.sh API Key — You can find this under Settings & Billing → API Keys → Create API key (more help)

Microsoft Azure

  • Azure Subscription ID — You get this info from your Azure cloud Dashboard. (more help)
  • Client ID — You get this info from your Azure Dashboard.
  • Client Secret — You get this info from your Azure Dashboard.
  • Tenant ID — You get this info from your Azure Dashboard.

OVH Cloud

  • API region — You need to specify which API region your project uses
  • OVH Project ID — You can find this on your OVH project dashboard (more help)

Packet

  • Packet API Key — You get this info from your Packet Cloud Dashboard.

Rackspace

  • Rackspace Username — You get this info from your Rackspace Cloud Dashboard.
  • Rackspace API Key — You get this info from your Rackspace Cloud Dashboard. (more help)
  • Rackspace user base — Select either UK or US.

Vultr

  • You will need to explicity grant Cloud 66 access via the Vultr firewall. You can either allow access from all IP addresses, or authorized IP addresses if you prefer.
  • Vultr API key — You can find this under Account → API (more help)

Your Own Servers

  • Registered Servers — First you need to Register your server as a deployment target with Cloud 66. Click on the Add Registered Servers link. You can also navigate to the Registered Servers page under Account Settings.
  • Copy & run the command — Run the provided command in the terminal on your server. Once this has successfully completed you can then approve the server and it will become available as a Cloud 66 deployment target.

To add cloud credentials click the Add a Deployment Target button. This will open a panel that will let you configure access to your provider.

Click the green Add Deployment Target button once complete.

B. Specify servers

Next you need to specify where your servers will be situated, how large they should be, and where your data will be stored:

  1. Choose a Server Region
  2. We will suggest a size for your application server - you can change it as needed
  3. Specify whether your datastore will share the app server (not recommended for Production), or have its own server. (You can also use an existing external database server if you prefer)

Choose where to deploy your database

For production environments we always recommend separate servers. If you need fine grained control for more advanced deployments you can use a manifest file.

Step 5: Deploy your app

When you’re satisfied with your servers, click the Start Deployment button. During the build and deployment process you can view the log to see what’s happening behind the scenes.

You can also close the window and come back later. We will email you once the application is deployed (or if it fails).

Server build states

In order to allow you to start working with your new app as soon as possible, there are two build states (or stages) for application servers:

  1. Ready - server is available to use, with the minimum required configuration
  2. Optimized - all the latest packages are installed & optimized

Build state progress bars

Servers will automatically progress from “ready” to “optimized”.

What’s next?