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. We don't want to charge you for redundant resources.

Supported Databases


Shelly Cloud supports PostgreSQL, MongoDB and Redis databases. All of them can be run on the same virtual server or on separate ones. It's possible to have database(s) and application on the same virtual server, what is usually enough for small and staging apps. Production and high traffic apps often need dedicated virtual server for database.

Data are backed up daily and available for download via the shelly gem. Stopping a virtual server where database server is running does not remove the data, it is persisted and available after the virtual server is started.

It's not possible to have both MySQL (MariaDB) and PostgreSQL in one application.


Supported version: 9.3

To use PostgreSQL with your application, you will need to add the pg gem to the Gemfile. There is no need to provide a config/database.yml file, as it will be automatically created with credentials of the PostgreSQL server.


Shelly Cloud supports postgis 2.1. To enable it, connect to the database with shelly dbconsole and execute:



Shelly Cloud supports PgHero. To enable it load the pg_stat_statements extension in your database. It can be done with a migration, through PgHero dashboard or starting shelly dbconsole and executing:

CREATE EXTENSION pg_stat_statements; 

MySQL (MariaDB)

Supported version: MariaDB 10.0

To use MySQL (MariaDB) with your application, you will need to add the mysql2 gem to the Gemfile. There is no need to provide a config/database.yml file, as it will be automatically created with credentials of the MySQL server.

MariaDB is community developed, binary drop in replacement for MySQL. It means all tools compatible with MySQL will work with MariaDB. If you are concern about compatibility you can read more on MariaDB wiki page.

Performance and feature wise MariaDB offers more to end user than MySQL and it's truly Open Source, you can read about MariaDB vs MySQL on wiki page.

For convenience we use simplified kind name ('mysql') everywhere in our documentation and Cloudfile.


Supported version: 2.4.5

When a MongoDB server is present in your Cloud, two files will be automatically added to the config directory in your application's root:

  • config/mongodb.yml
  • config/mongoid.yml

Those files can be used by the mongodb and mongoid gems, so there is no configuration needed to use MongoDB in your application.


Supported version: 2.6.13

When a Redis server is present in your Cloud, the REDIS_URL environment variable will contain the url needed to connect to your Redis server. This means that most of Redis client gems (redis, ohm) will work out of the box.

When using redis gem, Redis::connect method is making use of ENV['REDIS_URL'].

redis = Redis.connect

Additionally we generate config/redis.yml on your application servers which can be used to configure other tools for interacting with Redis.


When a Redis server is stopped, data is persisted and ready to use when the server is started again. Snapshots to disk are made as follows:

  • after 15 minutes if at least 1 key has changed
  • after 5 minutes if at least 10 keys have changed
  • after 1 minute if at least 10000 keys have changed
  • before closing server