Shelly Cloud will shut down on March 31, 2016. All services you use will be operational until then. Read our announcement.
Please remember to turn off your cloud as soon as you finish migration (remember to remove your private IP endpoints too).
We don't want to charge you for redundant resources.

Rack-based Apps

Introduction

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

Requirements

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

  1. Configuration file config.ru 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
    end

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://github.com/shellycloud/sample-rack-app.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 https://shellycloud.com/documentation/requirements#shelly-dependencies

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 git@git.shellycloud.com:rack-123.git
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