---
title: "Deploy Rails on Edge | Classic VPS workflow, modern network"
description: "Run Ruby on Rails on Edge — Puma or Falcon on real VMs, Active Storage backed by S3-compatible Edge Storage, global CDN with zero egress."
url: https://edge.network/solutions/rails/
---

# Deploy Rails on Edge | Classic VPS workflow, modern network

For Rails

# Rails on Edge, no platform tax

Real VMs for Puma, S3-compatible Active Storage, global CDN with
zero egress fees. Keep your Capistrano or Kamal workflow,
keep your sanity.

[Start free](https://edge.network/account) [Read the deploy guide](https://edge.network/docs/compute/getting-started)

# config/storage.yml

edge:

service: S3

endpoint: https://storage.edge.run

access_key_id: <%= ENV['EDGE_KEY'] %>

secret_access_key: <%= ENV['EDGE_SECRET'] %>

bucket: rails-uploads

# config/environments/production.rb

config.active_storage.service = :edge

config.asset_host = 'https://cdn.example.com'

# Provision and front the VM

$ edge compute create --plan small ...

$ edge cdn create app.example.com ...

## Why Rails teams pick Edge

DHH was right about Linux + a VM. We've added a global CDN and S3 to make it sing.

### Puma / Falcon on real VMs

Run any Rack server you like — Puma, Falcon, Iodine — on a sized-to-fit VM. Boring, predictable, fast.

### Active Storage on S3

Configure Active Storage with the AWS adapter and point it at Edge Storage. Variants, direct uploads, the lot — works unchanged.

### PostgreSQL or MySQL alongside

Run your database on the same VM, a separate VM via private networking, or your existing managed provider. Low-latency either way.

### Image processing without queues

Skip MiniMagick / libvips per-request — let Edge Image Optimization generate variants from a URL. Active Storage stays declarative.

### Global CDN, zero egress

Front asset_host through the Edge CDN, point Active Storage URLs at it too. Fast, free egress on everything users download.

### Capistrano or Kamal

Stick with the deployment workflow you love — Capistrano, Kamal, plain SSH, all work. The Edge CLI provisions the VMs.

Reference architecture

## How Rails maps to Edge

Standard Puma + Postgres + Sidekiq, with Active Storage on object storage and the CDN out front.

Compute Runs Puma (or Falcon) behind Nginx/Caddy on a VM

Storage S3-compatible bucket for Active Storage uploads and variants

CDN Caches the asset pipeline output and Storage URLs

Image Optimization On-the-fly variants without per-request processing

DNS Anycast DNS for the apex, www and email records

Shield Guards Devise logins and signups against credential stuffing — free

# config/deploy.yml (Kamal)

service: app

image: ghcr.io/me/app

servers:

web:

- <edge-vm-ip>

env:

RAILS_ENV: production

EDGE_ENDPOINT: https://storage.edge.run

# Deploy

$ kamal deploy

## Common questions

### Does Kamal work on Edge?

Yes — Kamal provisions any VM with SSH access. Use the Edge CLI to create the VM, then point Kamal at its IP. The container-based deploys play nicely with our infrastructure.

### How does Active Storage work?

Configure the `:amazon` service with `endpoint: https://storage.edge.run` and your Edge Storage credentials. Direct uploads, variants and `service_url` all work as documented.

### Where do background jobs run?

Run Sidekiq / GoodJob / SolidQueue as systemd services on the same VM (cheap, simple) or a dedicated worker VM (scalable). Backed by Redis on Edge Compute.

### How do I deploy multi-region?

Provision VMs in two regions, point a multi-region DNS record at them, and have the Edge CDN serve assets globally. Active Storage stays in one region; reads are cached at the CDN.

By Stack

## Other stacks on Edge

[View all stacks →](https://edge.network/solutions/stacks)
[Node.js Express, Fastify, Hono — your runtime](https://edge.network/solutions/nodejs)[WordPress Fast, cheap and zero egress fees](https://edge.network/solutions/wordpress)[Drupal Enterprise PHP CMS, predictable bills](https://edge.network/solutions/drupal)[Ghost Modern publishing, self-hosted](https://edge.network/solutions/ghost)

## Ship Rails on Edge

Start free. Bring your `bin/rails new` or your existing monolith.

[Start free](https://edge.network/account) [Talk to an engineer](https://edge.network/contact)
