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:
- Configuration file
config.rumust 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.
- Minimal set of gems.
source :rubygems gem "rack" gem "rake" gem "thin"
- File named
Rakefilein 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 firstname.lastname@example.org: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