One-Click Deploy
The fastest way to get Spree running on Render:- Web — Rails app serving the API and admin panel
- Worker — Sidekiq for background jobs
- PostgreSQL — database
- Redis — caching, jobs, Action Cable
Prerequisites
- Render account with a credit card on file
- GitHub account
Custom Deployment
If you need to customize the backend (add gems, models, etc.), start from the Spree Starter template:- Go to spree/spree-starter and click Use this template > Create a new repository
- Clone your new repository and make your changes
- In the Render dashboard, click New > Blueprint and select your repository
-
Render reads the
render.yamlfrom your repo and creates all services. Review and click Deploy Blueprint.
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:db:seed. Change them immediately after first login.
Environment Variables
Render setsDATABASE_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:- Asset Storage (Amazon S3 / Cloudflare R2)
- Set environment variables (SMTP, SSL, etc.)
- Configure CDN
- Configure caching

