Ruby on Rails VPS HostingPuma, NGINX and Your Database, Ready
Rails runs best on a server you control. We install Ruby, Puma behind NGINX and PostgreSQL or MySQL on a hardened KVM VPS, or Docker if you deploy with Kamal, so you can ship with git, Capistrano or kamal deploy.
Full root & SSH NVMe storage Daily backups Anti-DDoS 99.9% uptime SLA 11 locations
-
Root and SSH access
Ruby versions, gems and native extensions.
-
Reserved vCores and RAM
Puma workers and jobs on resources that are yours.
-
NVMe storage
Fast bundle installs and asset builds.
-
Daily backups
Automatic backup of the previous 24 hours.
Why Host Rails on a VPS
Rails 8 was designed to make running your own server simple again: Kamal for deploys, and Solid Queue, Solid Cache and Solid Cable to run without extra services.
-
Kamal deploys to any server
Kamal needs only SSH and Docker, so a VPS is all it takes to deploy with zero downtime.
-
Jobs and cache in your database
Solid Queue and Solid Cache use your database, so small apps need no Redis.
-
Any Ruby version and gem
Install the Ruby your app needs and compile gems with native extensions.
-
A flat monthly price
Web, jobs and database on one server, without per-dyno or add-on billing.
How a Rails App Is Served
NGINX in front of Puma, with jobs and the database beside it.
Request from a browser or app (HTTPS)
-
Reverse proxy
NGINX (or Kamal Proxy)
HTTPS, compression and static assets, proxying to Puma.
-
App server
Puma
Workers and threads sized to your vCores and RAM.
-
Application
Rails
Your code in production mode with precompiled assets.
-
Background
Solid Queue or Sidekiq
Jobs from your database, or from Redis with Sidekiq.
-
Database
PostgreSQL or MySQL
Your data, on localhost.
Worth knowing
- Install Ruby with a version manager such as rbenv so each app uses its own version.
- Set RAILS_ENV=production and keep master.key or credentials out of the repository.
- Precompile assets on deploy; NGINX serves them with long cache headers.
- Kamal runs your app in Docker containers; tell us at order if you deploy that way.
What You Can Run
-
SaaS products
Multi-tenant Rails apps with jobs and email.
-
APIs
Rails API mode back ends for web and mobile apps.
-
Hotwire apps
Turbo and Stimulus front ends with Action Cable.
-
Internal tools
Admin panels and dashboards for your team.
-
E-commerce
Solidus or Spree stores on Rails.
-
Open-source Rails apps
Self-hosted software built on Rails.
VPS Plans for Rails
VPS-1 runs a small Rails app with its database. Production apps with background jobs and more Puma workers usually start on VPS-2.
VPS-1
Small websites, APIs, bots and development servers.
- 2 vCores
- 4 GB RAM
- 40 GB NVMe
- 500 Mbps
- Full root and SSH access
- Free initial stack installation
- Server hardening and firewall setup
- Daily backup of the previous 24 hours
- Unlimited traffic *
- Anti-DDoS protection
- Dedicated IPv4 and IPv6
- KVM virtualisation
VPS-2
Production apps, WordPress and online stores.
- 4 vCores
- 8 GB RAM
- 75 GB NVMe
- 1 Gbps
- Full root and SSH access
- Free initial stack installation
- Server hardening and firewall setup
- Daily backup of the previous 24 hours
- Unlimited traffic *
- Anti-DDoS protection
- Dedicated IPv4 and IPv6
- KVM virtualisation
VPS-3
Busy stores, SaaS products and several projects.
- 6 vCores
- 12 GB RAM
- 100 GB NVMe
- 2 Gbps
- Full root and SSH access
- Free initial stack installation
- Server hardening and firewall setup
- Daily backup of the previous 24 hours
- Unlimited traffic *
- Anti-DDoS protection
- Dedicated IPv4 and IPv6
- KVM virtualisation
VPS-4
High-traffic apps, large databases and agencies.
- 8 vCores
- 24 GB RAM
- 200 GB NVMe
- 3 Gbps
- Full root and SSH access
- Free initial stack installation
- Server hardening and firewall setup
- Daily backup of the previous 24 hours
- Unlimited traffic *
- Anti-DDoS protection
- Dedicated IPv4 and IPv6
- KVM virtualisation
* Unlimited traffic in Europe and North America. In Mumbai, Singapore and Sydney a monthly allowance applies (VPS-1 500 GB, VPS-2/VPS-3 1 TB, VPS-4 3 TB), then speed is limited to 10 Mbps until the next month.
Which Plan for Your Rails App
Each Puma worker loads your app into memory; add the job workers and database, then size from there.
| Workload | Start with | Why |
|---|---|---|
| Small app or staging | VPS-1 2 vCores · 4 GB RAM | Puma, a job worker and PostgreSQL. |
| Production app with jobs | VPS-2 4 vCores · 8 GB RAM | More Puma workers and database memory. |
| Busy app or heavy jobs | VPS-3 6 vCores · 12 GB RAM | 6 vCores for workers and jobs in parallel. |
| Several apps or large data | VPS-4 8 vCores · 24 GB RAM | 24 GB RAM and 200 GB NVMe. |
A starting point, not a limit: every plan upgrades in place, keeping your data, IP address and configuration.
Rails on a PaaS or on a VPS?
A platform deploys on git push. A VPS runs the same app, jobs and database for a flat price.
| Feature | App platform (PaaS) | Rails VPS |
|---|---|---|
| Pricing | Per dyno or instance, plus add-ons | Flat monthly plan |
| Background jobs | Extra worker instances | Same server |
| Database | Usually a paid add-on | Installed at handover |
| Deployment | git push built in | Kamal, Capistrano or git over SSH |
| Server administration | Handled by the provider | Yours, after our free setup |
| See Plans |
Your First Rails Deploy
A classic deploy over SSH; with Kamal, kamal deploy does the equivalent from your machine.
-
Get the code and gems
Production gems only.
-
Migrate the database
Run pending migrations in production.
-
Precompile assets
NGINX serves the compiled files.
-
Restart the app and jobs
Puma and the job worker pick up the new code.
# 1. Get the code and gems
cd ~/app && git pull
bundle config set --local without "development test" && bundle install
# 2. Migrate the database
RAILS_ENV=production bin/rails db:migrate
# 3. Precompile assets
RAILS_ENV=production bin/rails assets:precompile
# 4. Restart the app and jobs
sudo systemctl restart puma solid_queue
Example commands; adjust names, paths and versions to your project. Deploying and maintaining your application is yours to do (or ask us for a quote).
Installed and Secured Before You Log In
The VPS is unmanaged: after handover the server is yours to run. Before that, our engineers do the first setup once, free, so you start from a hardened server with Ruby on Rails in place.
-
Choose a plan and location
Pick the resources you need and the datacentre closest to your users.
-
Tell us your Ruby on Rails setup
Versions, database and domain: at order or right after.
-
We install and secure it
Server hardened, Ruby on Rails installed and tested, HTTPS on your domain.
-
You take over with root
SSH access to a working server, ready for your code and data.
Your Rails stack
- Ruby in the version your app needs, with a version manager
- Puma as a systemd service behind NGINX
- PostgreSQL or MySQL with a database and user for your app
- HTTPS with Let's Encrypt on your domain
- Docker ready for Kamal, or Redis for Sidekiq, on request
Yours to run after handover
- Ongoing server administration
- Application maintenance and updates
- Debugging your code
- Migrating existing sites or data
Not included in the free setup, but we can quote for it. No control panel by default: CloudPanel, HestiaCP or Virtualmin on request at no cost; cPanel and Plesk need their own licence.
Platform Specs and Locations
The same KVM platform on every plan; only the CPU, RAM, storage and port speed change.
| Virtualisation | KVM with reserved vCores and RAM |
|---|---|
| Storage | NVMe SSD on every plan |
| Network | Dedicated IPv4 and IPv6, 500 Mbps to 3 Gbps per plan |
| Operating systems | Ubuntu 26.04, 24.04 and 22.04 LTS · Debian 13, 12 and 11 · AlmaLinux · Rocky Linux · Fedora · FreeBSD |
| Access | Full root over SSH, key-based login |
| Backups | Automatic daily backup of the previous 24 hours; snapshots and longer retention on request |
| Protection | Always-on anti-DDoS mitigation |
| Availability | 99.9% uptime SLA |
Secured before we hand it over
- Non-root sudo user created for daily work
- SSH key login, password login for root disabled
- Firewall (UFW) open only for the ports you use
- Fail2ban blocking repeated login attempts
- Automatic security updates enabled
- Free Let's Encrypt SSL on your domain
- Timezone, swap and hostname configured
Asia-Pacific
- Mumbai
- Singapore
- Sydney
Europe
- London
- Limburg
- Roubaix
- Gravelines
- Strasbourg
- Milan
- Warsaw
North America
- Beauharnois
Availability per location changes with demand; we confirm your location before setup. In Mumbai, Singapore and Sydney each plan includes a monthly traffic allowance (VPS-1 500 GB, VPS-2 and VPS-3 1 TB, VPS-4 3 TB); beyond it, speed is limited to 10 Mbps until the next month.
Who a Rails VPS Suits
-
Rails developers
Kamal or Capistrano deploys to a server you control.
-
Startups on Rails
App, jobs and database on one flat-price server.
-
Teams leaving app platforms
Apps where dyno and add-on pricing has added up.
Security and Performance for Rails
Security
- Keep master.key and credentials out of the repository.
- Run bundle audit and keep Rails on a supported release.
- Force SSL in production and set secure cookie options.
- Bind Puma to localhost or a Unix socket; only NGINX listens publicly.
Performance
- Size Puma workers to your vCores and threads to your database pool.
- Enable YJIT on supported Ruby versions.
- Serve precompiled assets from NGINX with long cache headers.
- Move slow work to background jobs.
Questions Before You Deploy
Not covered here? Ask an engineer before you order.
Deploy Your Rails App on Your Own Server
Choose a plan, tell us your Ruby version and database, and start from Puma, NGINX and HTTPS ready.