Run Ruby apps on cPanel via the Ruby Selector. mod_passenger, Bundler, Rails-friendly. The Ruby version is set server-wide.
The cPanel Setup Ruby App tool registers a Ruby app under your account and serves it through mod_passenger running inside Apache.Ruby is different from Node and Python in one important way: Passenger only ships one Ruby version per server. Every Ruby app on the box runs that version. You can’t mix 3.2 and 3.3 the way you can mix Node 20 and 22.
Need a specific Ruby version? Open a ticket. We’ll tell you what’s installed and, if it’s an option on your plan, schedule an upgrade. Power-plan accounts have more flexibility.
Passenger couldn’t boot the Rack app. Check the Passenger log file if you set one. Common causes: missing config.ru, gem version mismatch, bundle install not run yet.
Gem 'X' not found at runtime, but `bundle list` shows it
The runtime is using a different gem path than your shell. Run bundle install --deployment from inside the app directory, then restart the app.
Asset precompilation OOMs on a Rails app
assets:precompile can blow past 1 GB on large apps. Compile assets locally and rsync public/assets/ up, or run with RAILS_ENV=production NODE_OPTIONS=--max-old-space-size=512 bundle exec rake assets:precompile.
Boot times out after 60 seconds
Long Rails initializers can exceed the default Passenger timeout. Bump it in .htaccess:
PassengerStartTimeout 120
Gemfile.lock platform mismatch
Bundler complains about a missing platform when installing. Add the linux platform to the lockfile from your dev machine: