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.
# 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.
Runs Puma (or Falcon) behind Nginx/Caddy on a VM
S3-compatible bucket for Active Storage uploads and variants
Caches the asset pipeline output and Storage URLs
On-the-fly variants without per-request processing
Anycast DNS for the apex, www and email records
# 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
Ship Rails on Edge
30-day trial. Bring your `bin/rails new` or your existing monolith.