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:
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. Generated URLs (images and attachments in API responses, email links) automatically use Render’s RENDER_EXTERNAL_HOSTNAME (<your-app-name>.onrender.com). When you attach a custom domain, set RAILS_HOST to it — it takes precedence.

Production Sizing

The free/starter plans work for trying Spree. For production workloads, we recommend: To enable auto-scaling, add this to the web service in your render.yaml:

Next Steps

Render provides ephemeral storage — uploaded files (product images, etc.) won’t persist across deploys. Set up cloud storage: Before going to production: