Ruby Hosting With Passenger, Puma, and Automated Deploy Hooks
Deploy on Apache or NGINX with Passenger, Puma, or Unicorn. Bundler resolves gems on every deploy, deploy hooks handle migrations, and autoscaling adjusts resources within the limits you set.
Gems resolve automatically from your Gemfile on every deploy — no manual install steps.
Post-deploy rake tasks run automatically — database migrations, asset compilation, setup scripts.
Set RAILS_ENV per environment — staging and production stay isolated with no config bleed between deploys.
Deploy from GitHub, GitLab, or Bitbucket with automatic build triggers.
From Gemfile to production
Deploy — Gem-driven deploys
Push code or upload an archive. Bundler resolves gems, rake_deploy runs db:migrate and asset tasks, and pre/post deploy hooks handle smoke checks or asset precompilation. Automation & CI/CD →
Run — App server choice
Apache or NGINX with Passenger (default), Puma, or Unicorn. Match the server to your workload. Scaling controls →
Scale — Autoscale within limits
Set reserved cloudlets (128 MiB RAM + 400 MHz CPU each) and a scaling limit. The platform scales within those limits and bills only for resources used.
An LB is added automatically when Ruby servers scale out. Autoscaling & cost controls →
Common patterns include Rails apps behind an LB, API-only backends, and background job workers. Browse pre-configured stacks in the Marketplace.
Ship Ruby apps without managing servers
Artifact / archive
Remote VCS repository
Auto-redeploy
Deploy your first Ruby app in minutes
Use the calculator to estimate your baseline, then add headroom for traffic spikes and background workers.
Start with a single node, then scale into load-balanced clusters as traffic grows. A typical Ruby starter uses 3 reserved cloudlets (~384 MiB RAM) and a scaling limit of 16. Use the calculator to model your Rails app. Need a managed database? See Database Hosting.
Control Ruby versions, secrets, and domains from one place
Ruby environments run in isolated containers. You control the runtime version, environment variables, domains, SSL, and network rules from the dashboard.
- Ruby version switching – Change versions from the dashboard without redeploying.
- Environment variables – Manage RAILS_ENV, database URLs, API keys, and secrets through platform controls instead of config files in source.
- Private gem repositories – Bundler resolves from private sources and rubygems.org, so enterprise gems stay in your dependency graph.
- Custom domains – Bind your domain with a CNAME (behind a shared load balancer) or an A-record (public IP). Use swap-domain workflows for zero-downtime cutovers.
- SSL – Use the built-in Let’s Encrypt add-on for automatic certificates, or upload your own.
- SSH and log access – Connect via SSH for debugging or browse platform log files from the dashboard.
- Container firewall – Set inbound/outbound rules per container. Network isolation is on by default between environments.
Work across Ruby web, data, and storage tiers from one screen.
Topology view shows load balancers, app nodes, databases, storage, and an active terminal for live ops.
Tail Ruby-related logs without leaving the dashboard.
Log viewer shows node logs with tail, clear, and download controls for faster debugging.
Scale Rails up and down automatically
Vertical scaling adjusts RAM and CPU within your cloudlet limits. Horizontal scaling adds or removes Ruby nodes based on real-time metrics:
- CPU, RAM, Network, Disk I/O, Disk IOPS – Each metric has its own trigger threshold. Set them independently or combine them.
- Stateless scale-out – New nodes launch from the base image template, which works well for web and API workloads.
- Stateful scale-out – New nodes copy from the primary container, preserving local state. Useful for workers with on-disk queues.
- Automatic load balancer – The platform adds an LB layer when Ruby nodes exceed one.
- Host distribution – Same-role Ruby nodes run on separate physical hosts, so a single hardware failure does not take down all containers.
Clone full environments for staging, or export and import between regions for migration and A/B testing.
Need help planning your Rails app’s baseline and scaling limits? Chat with an engineer.
Architect Ruby for production traffic
Rails app
LB → Ruby nodes → DB
Scale Rails nodes behind a load balancer. Keep sessions in Redis or Memcached for clean horizontal scaling.
API-only
Stateless Rails API
API-mode Rails with Puma behind a load balancer. Store sessions in Redis so any node can serve any request.
Web + workers
Split background jobs
Run web traffic through Puma/Passenger nodes and background jobs (Sidekiq, Resque) as separate node groups.
Common Questions
Which Ruby application servers are available?
Apache or NGINX with Passenger (default). NGINX is also configurable with Puma or Unicorn for different concurrency models.
Is Bundler supported?
Yes. Bundler is preinstalled on all Ruby nodes. Gems resolve automatically from your Gemfile during deployment.
How do I deploy my Ruby app?
Deploy from archives (local upload or external URL) or remote Git repositories. See Automation & CI/CD.
What is rake_deploy and how does it work?
A rake_deploy file in your app root lists rake tasks (one per line) that execute automatically after deployment. Use it for database migrations, asset compilation, and setup tasks.
How does RAILS_ENV work on the platform?
You can set RAILS_ENV to development, production, or test during deployment. Ruby applications deploy at the root path (/) -- subdirectory context deployments are not supported.
How does scaling work and how do I set baseline/max cost guardrails?
Reserve a baseline for normal traffic and set a burst ceiling. Ruby processes scale within those bounds without manual intervention. Autoscaling & cost controls covers limit configuration.
How do load balancers work with Ruby apps?
A load balancer is added automatically when you scale out Ruby servers. Both stateless (base image) and stateful (master copy) scale-out modes are available.
Which databases can I connect to?
MySQL, MariaDB, PostgreSQL, and NoSQL options run as managed nodes. ActiveRecord and Sequel connect with the standard adapters. Database Clusters has replication details.
When should I choose Kubernetes instead of Ruby on App Hosting?
Kubernetes is the better fit when you need container orchestration beyond what the managed platform provides -- service discovery, custom scheduling, or multi-service stacks. Kubernetes Hosting has the details.
Can you help migrate an existing Rails app?
We can help plan a Ruby migration, including Gemfile review, environment parity, and deployment setup. Portability & Migration has the framework.
Can I combine rake_deploy tasks with deploy hooks?
Yes. Many teams run app-specific rake tasks with rake_deploy and use platform hooks for environment-level checks during each release.
No matching questions found.
Start your 14-day free trial
Deploy in minutes with managed autoscaling and clustering built in.
No credit card required.