Shelly Cloud will shut down on March 31, 2016. All services you use will be operational until then. Read our announcement.

Rack-based Apps


Shelly Cloud supports rack compatible applications. It means that you can deploy applications written in frameworks such as sinatra or camping.


In order to deploy rack-based application to Shelly Cloud, the application must meet the following requirements:

  1. Configuration file must be present. It's common that rack-based frameworks generate this file. If you don't have it in your app's root directory, check your frameworks documentation.
  2. Minimal set of gems.
    source :rubygems
    gem "rack"
    gem "rake"
    gem "thin"
  3. File named Rakefile in your project's root directory with dummy db:migrate and db:setup tasks.
    namespace :db do
      task :migrate
      task :setup

Sample Rack-based Application

You can check out sample rack-based application on our github account. It's very minimal example and doesn't need database server.

Here is how deployment of this app looks like.

$ git clone git://
$ cd sample-rack-app
$ shelly add --code-name rack-123 --databases none
Checking Shelly Cloud requirements

  ✓ Gem 'shelly' is not a part of Gemfile
  ϟ Gem 'shelly-dependencies' is missing, we recommend to install it
    See more at

Select organization for this cloud:

existing organizations:
1) example
Or leave empty to create a new organization

Organization: example
Select region for this cloud:

available regions:
1) EU
2) NA

Region: EU
Cloud 'rack-123' created in 'example' organization

Running: git remote add shelly
Creating Cloudfile

Project is now configured for use with Shelly Cloud:
You can review changes using
  git status

When you make sure all settings are correct, add changes to your repository:
  git add .
  git commit -m "Application added to Shelly Cloud"

Deploy to your cloud using:
  git push shelly master

$ git add .
$ git commit -m "Added ShellyCloud Cloudfile"
$ git push shelly master
 ---> Received push to cloud 'rack-123'
 ---> Checking Gemfile
 ---> Creating code package... done.
 ---> Push accepted
 ---> Start your cloud using: `shelly start --cloud rack-123`

$ shelly start --cloud rack-123
Starting cloud rack-123.

 ---> Launching server app1 started
 ---> Launching server app1 finished
 ---> Configuration on server app1 started
 ---> Configuration on server app1 finished
 ---> Deployment on server app1 started
 ---> Deployment on server app1 finished

Starting cloud successful