Deploy Saleor
Saleor 3.23: headless GraphQL commerce API with the admin dashboard.
dashboard
Just deployed
Redis
Just deployed
/data
Just deployed
/var/lib/postgresql/data
Just deployed
/app/media
Deploy and Host Saleor on Railway
Saleor is a headless, GraphQL-first commerce platform written in Python. It handles products, variants, multiple channels, currencies and warehouses, checkout, orders, promotions, gift cards and payments through apps and webhooks, and comes with a React admin dashboard. It is a composable alternative to Shopify Plus and Medusa.
About Hosting Saleor
This template runs the official ghcr.io/saleor/saleor:3.23.36 API and saleor-dashboard:3.23.34 with Railway Postgres and Redis. The API service also runs the Celery worker and scheduler, because Saleor signs tokens and webhooks with an RSA key that both must share; the key is generated on first boot and kept on the API's volume with media uploads. Migrations run on every start, and a staff admin is created from DJANGO_SUPERUSER_EMAIL and a generated password. CORS allows the dashboard's domain. The stack needs roughly 1 GB of RAM. Connect a storefront, such as Saleor's Next.js starter, to the GraphQL endpoint.
Common Use Cases
- A headless commerce backend for a custom storefront
- Multi-channel, multi-currency catalogs and orders
- Extending commerce with apps and webhooks
Dependencies for Saleor Hosting
ghcr.io/saleor/saleor:3.23.36andghcr.io/saleor/saleor-dashboard:3.23.34(official images)- Railway Postgres and Redis
- A Railway volume at
/app/mediaon the API
Deployment Dependencies
Implementation Details
| Service | Source | Networking | Storage |
|---|---|---|---|
| api | ghcr.io/saleor/saleor:3.23.36 (uvicorn + Celery) | public domain on 8000 | volume at /app/media |
| dashboard | ghcr.io/saleor/saleor-dashboard:3.23.34 | public domain on 80 | none |
| Postgres | Railway Postgres | private | Railway volume |
| Redis | Railway Redis | private | Railway volume |
Open https:///dashboard/ and sign in with the admin email and password. The GraphQL endpoint is https:///graphql/.
| Variable (api) | Default | Purpose |
|---|---|---|
DJANGO_SUPERUSER_EMAIL | admin@example.com | Staff admin created on first boot |
DJANGO_SUPERUSER_PASSWORD | generated | Its password |
SECRET_KEY | generated | Django secret |
ALLOWED_CLIENT_HOSTS | dashboard domain | CORS origins |
SALEOR_BOOT | start script | Key generation, migrations, admin, worker and server |
Notes:
- The RSA key lives at
/app/media/.rsa_private_key.pem; keep the volume, or existing tokens and webhook signatures stop verifying. - Configure
EMAIL_URLfor order and account emails.
This is a community-maintained deployment package and does not imply affiliation with or endorsement by Saleor Commerce.
Why Deploy Saleor on Railway?
Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.
By deploying Saleor on Railway, you are one step closer to supporting a complete full-stack application with minimal burden. Host your servers, databases, AI agents, and more on Railway.
Template Content
