Chajio Cloud
App Hosting

Ruby on Rails Hosting

Push a Rails app to GitHub and Chajio Cloud installs your gems, precompiles your assets and runs Puma on two replicas, with free SSL and a managed PostgreSQL database.

$ git push origin main
▸ Ruby version 3.4.12 from Gemfile.lock
▸ bundle install, without development and test
▸ Detected rails app (rails gem found)
▸ rake assets:precompile
▸ web: bin/rails db:prepare && bin/rails server
✓ Live on 2 replicas: https://my-app.live.chajio.cloud

How it works

How we build and run your Ruby on Rails app

  1. Detect

    A Gemfile marks a Ruby app, and the rails gem marks it as Rails. Delete the Dockerfile that rails new creates: without it, a build takes minutes rather than most of the 45-minute limit.

  2. Install

    Bundler installs the gems Gemfile.lock pins, leaving out the development and test groups. The Ruby version comes from Gemfile.lock too.

  3. Build

    rake assets:precompile runs, so your stylesheets, images and JavaScript are ready before the app starts.

  4. Run

    The web: line in your Procfile prepares the database, then starts Puma on PORT. The new version takes visitors once /up answers.

Get ready

Getting your Ruby on Rails app ready

Procfile
web: bin/rails db:prepare && bin/rails server --port "$PORT"

Runs your migrations, then starts Puma. Without a Procfile, nothing runs your migrations.

Gemfile
source "https://rubygems.org"

ruby file: ".ruby-version"

Then run bundle lock and commit Gemfile.lock. It gains a RUBY VERSION section, which is what the build reads: .ruby-version on its own is not, and without a version you get a default that may not be yours.

config/database.yml
production:
  <<: *default
  url: <%= ENV["DATABASE_URL"] %>

Replace the whole production: section. rails new expects four databases; a managed database is one, so Solid Cache, Queue and Cable move into it, as the Rails guide shows.

Environment tab
SECRET_KEY_BASE=output-of-bin/rails-secret
SOLID_QUEUE_IN_PUMA=true

Generate the key with bin/rails secret, or set RAILS_MASTER_KEY to the contents of config/master.key instead. The second line runs your background jobs inside Puma.

Works with

What you can run

Rails 8

Tested with Rails 8.1 on Ruby 3.4.

Solid Queue

Background jobs, run inside Puma.

Solid Cache

Rails.cache, in your PostgreSQL database.

Solid Cable

Action Cable broadcasts, through the database.

Hotwire

Turbo and Stimulus, as rails new sets them up.

PostgreSQL

Managed for you, and handed over as DATABASE_URL.

In production

Running your Ruby on Rails app in production

One database, not four

In production, Rails 8 expects separate databases for its cache, queue and cable. A managed database is one database, so turn their schema files into migrations and drop the settings that point elsewhere.

Jobs run inside Puma

There is no separate worker process. With SOLID_QUEUE_IN_PUMA=true, Solid Queue runs your jobs inside the web server; without it, jobs are queued and nothing runs them.

One crash on the first deploy is normal

Both copies run db:prepare on the empty database at once, and the one that loses stops with ConcurrentMigrationError. It restarts by itself and is ready about 20 seconds later; the deploy still succeeds.

Memory

A Rails app with jobs running in Puma used 170 to 285 MB per copy in our tests, and took 20 to 30 seconds to start. Allow at least 512 MB per copy.

Every plan

Included on every plan

2 replicas of every app

Two copies behind a load balancer, so a restart or a failed machine never takes you offline.

A managed database

PostgreSQL, MariaDB or MongoDB, with its own standby replica on another machine.

Deploy on every push

Connect GitHub once; every push to your branch builds and goes live.

One-click rollbacks

Go back to any earlier successful deployment from the Deployments tab.

Free SSL, your domain

Certificates issued and renewed for you, plus a free .live.chajio.cloud address.

Build and runtime logs

Watch builds as they run, and see what your app prints as it serves visitors.

CPU, memory and network

Metrics for every app, from the last 15 minutes to the last 30 days.

Zero-downtime deploys

A new version takes visitors only once its health check passes.

Pricing

Ruby on Rails hosting plans

Free Plan

5GB DB Storage · 2GB RAM

Free 1st month

Then $3.50/mo

  • 2 vCPU
  • 2 Apps
  • 1 Database
  • 2 App Replicas (HA)
  • 2 Database Replicas (HA)
  • PostgreSQL, MariaDB or MongoDB
  • Deploy from GitHub
  • Auto-deploy on push
  • One-click rollbacks
  • Deployment history
  • Build & runtime logs
  • CPU, RAM, disk & network metrics
  • Disk usage tracking
  • Environment variables
  • Custom domain
  • Free SSL
Start Free

Growth Plan

10GB DB Storage · 2GB RAM

$8.99/mo
  • 3 vCPU
  • 4 Apps
  • 2 Databases
  • 2 App Replicas (HA)
  • 2 Database Replicas (HA)
  • PostgreSQL, MariaDB or MongoDB
  • Deploy from GitHub
  • Auto-deploy on push
  • One-click rollbacks
  • Deployment history
  • Build & runtime logs
  • CPU, RAM, disk & network metrics
  • Disk usage tracking
  • Environment variables
  • Custom domain
  • Free SSL
Choose Growth
Most Popular

Business Plan

20GB DB Storage · 4GB RAM

$18.99/mo
  • 4 vCPU
  • 6 Apps
  • 3 Databases
  • 2 App Replicas (HA)
  • 2 Database Replicas (HA)
  • PostgreSQL, MariaDB or MongoDB
  • Deploy from GitHub
  • Auto-deploy on push
  • One-click rollbacks
  • Deployment history
  • Build & runtime logs
  • CPU, RAM, disk & network metrics
  • Disk usage tracking
  • Environment variables
  • Custom domain
  • Free SSL
Choose Business

Pro Plan

30GB DB Storage · 8GB RAM

$37.98/mo
  • 8 vCPU
  • 10 Apps
  • 5 Databases
  • 2 App Replicas (HA)
  • 2 Database Replicas (HA)
  • PostgreSQL, MariaDB or MongoDB
  • Deploy from GitHub
  • Auto-deploy on push
  • One-click rollbacks
  • Deployment history
  • Build & runtime logs
  • CPU, RAM, disk & network metrics
  • Disk usage tracking
  • Environment variables
  • Custom domain
  • Free SSL
Go Pro

FAQ

Ruby on Rails hosting questions

No, and we recommend deleting it. It works, but in our tests it took over 35 minutes to build, close to the 45-minute limit, while the same app built in about 6 minutes without it. Without it, add a Procfile that runs db:prepare and a ruby line in your Gemfile.

The one in the RUBY VERSION section of Gemfile.lock. Add ruby file: ".ruby-version" to your Gemfile and run bundle lock to write it there. A .ruby-version file on its own is not read.

/up, the health route every new Rails app has. A new app has no home page in production, so the default path, /, returns 404 and the deploy never becomes ready.

No. Apps have no permanent disk, so a SQLite file would be lost on every deploy, and each of the two copies would have its own. Use the managed PostgreSQL database included in your plan.

There is no managed Redis or separate worker process, so Sidekiq has nowhere to run. Solid Queue, the Rails 8 default, keeps jobs in PostgreSQL and runs them inside Puma with SOLID_QUEUE_IN_PUMA=true.

No. HTTPS is handled before requests reach your app, and Rails already sees them as secure, with the visitor’s real IP address. Leave force_ssl and assume_ssl as rails new left them.

You can start on the Free plan: free for your first month, then $3.50 a month, with 2 vCPU, 2GB RAM, 2 apps and a managed database. The Growth, Business and Pro plans add more CPU, memory, apps and databases as you grow.

Plans are priced and billed in US dollars, and you pay by card at checkout.

Deploy your Ruby on Rails app today

Your first month is on us, with a managed database and two replicas from day one.