Back to Spree

Render

docs/developer/deployment/render.mdx

5.4.23.0 KB
Original Source

One-Click Deploy

The fastest way to get Spree running on Render:

This creates all required services automatically:

  • Web — Rails app serving the API and admin panel
  • Worker — Sidekiq for background jobs
  • PostgreSQL — database
  • Redis — caching, jobs, Action Cable

The database is seeded on first deploy. Your store is ready in a few minutes.

Prerequisites

Custom Deployment

If you need to customize the backend (add gems, models, etc.), start from the Spree Starter template:

  1. Go to spree/spree-starter and click Use this template > Create a new repository

  2. Clone your new repository and make your changes

  3. In the Render dashboard, click New > Blueprint and select your repository

  4. Render reads the render.yaml from your repo and creates all services. Review and click Deploy Blueprint.

The included render.yaml handles:

  • Build: bundle install, asset precompilation, db:prepare, db:seed
  • Web: Puma with health check on /up
  • Worker: Sidekiq with shared SECRET_KEY_BASE
  • PostgreSQL 18 and Redis

After Deployment

Admin Dashboard

Access your admin panel at:

https://<your-app-name>.onrender.com/admin

Default credentials are created during db:seed. Change them immediately after first login.

Environment Variables

Render sets DATABASE_URL, REDIS_URL, and SECRET_KEY_BASE automatically from the blueprint. For additional configuration (SMTP, file storage, Sentry, etc.), see Environment Variables.

Production Sizing

The free/starter plans work for trying Spree. For production workloads, we recommend:

ServicePlanResourcesAuto-scaling
WebPro4 GB RAM, 2 CPU1–2 instances
WorkerStandard2 GB RAM, 1 CPU
PostgreSQLPro 4 GB4 GB RAM, 1 CPU
Redis (jobs)Standard1 GB RAM
Redis (cache)Standard1 GB RAM

To enable auto-scaling, add this to the web service in your render.yaml:

yaml
- type: web
  name: spree
  plan: pro
  scaling:
    minInstances: 2
    maxInstances: 3
    targetMemoryPercent: 80
    targetCPUPercent: 80

Next Steps

Render provides ephemeral storage — uploaded files (product images, etc.) won't persist across deploys. Set up cloud storage:

Before going to production: