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.
Production Sizing
The free/starter plans work for trying Spree. For production workloads, we recommend:| Service | Plan | Resources | Auto-scaling |
|---|---|---|---|
| Web | Pro | 4 GB RAM, 2 CPU | 2–3 instances |
| Worker | Standard | 2 GB RAM, 1 CPU | — |
| PostgreSQL | Pro 4 GB | 4 GB RAM, 1 CPU | — |
| Redis (jobs) | Standard | 1 GB RAM | — |
| Redis (cache) | Standard | 1 GB RAM | — |
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

