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.
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:
CREATE EXTENSION postgis;
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:
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
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