Skip to main content

One-Click Deploy

The fastest way to get Spree running on Render: Deploy to 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 CPU2–3 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:
- 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: