For Saleor
Saleor's GraphQL API and Celery on your own VMs
Free to sign up. No egress fees on any product.
Why Saleor on Edge
Saleor splits cleanly across two VMs
One GraphQL endpoint
Saleor exposes the whole store through a typed GraphQL API. Put the React Storefront, a Next.js app or a mobile client in front.Django on real VMs
Uvicorn workers on dedicated vCPUs, sized to your catalogue. No per-request pricing and no cold starts.Media through django-storages
Set a handful of AWS_* variables and Saleor writes product images and thumbnails to Edge Storage over the S3 API.Celery without surprises
Webhooks, emails and exports run on Celery backed by Redis, on the API VM or a worker VM of their own.Media and Dashboard at the edge
Product images and the static Dashboard build are served from 988 locations, with image resizing from the URL.Multi-channel on one install
Channels for different countries, currencies and warehouses share one Saleor deployment and one database.
Reference architecture
The Saleor API, with Postgres on a private network
Storefronts
React Storefront, Next.js, apps
Staff
Saleor Dashboard in the browser
uvicorn saleor.asgi
Saleor 3 API on a Performance VM
celery worker
webhooks, email, exports
postgres :5432
saleor-db, PostgreSQL 16
redis :6379
Celery broker, on the API VM
saleor-media
images and thumbnails
media.acme.com
?width=&format=auto at the edge
dashboard.acme.com
static Dashboard build
- Compute
Runs the Saleor API and Celery worker on one VM, and Postgres on another.
- Storage
Holds media through django-storages, plus the static Dashboard build.
- CDN
Serves product images and the Dashboard worldwide, straight from the buckets.
- Image optimisation
Resizes and converts product images on request, alongside Saleor's thumbnails.
- DNS
Anycast DNS for api., dashboard., media. and shop. subdomains.
- Shield
Scores signup and checkout mutations from your storefront's server code.
- Assist
A storefront sales assistant grounded in your own pages.
Deploy
Saleor from the official Docker image
- 01
Create the database and API VMs
Attach both to one private network and allow 5432 from that range only. The docker script installs Docker CE and Compose.
shell$ edge compute create --name saleor-db --size s-2vcpu-4gb \ --image ubuntu-24 --region london --script postgresql \ --script-param db_name=saleor $ edge compute create --name saleor --size s-4vcpu-8gb \ --image ubuntu-24 --region london --script docker - 02
Configure Saleor
Saleor reads its settings from the environment. The AWS_* variables switch media storage to Edge Storage.
.envDATABASE_URL=postgres://saleor:<pw>@10.185.0.2:5432/saleor CELERY_BROKER_URL=redis://redis:6379/1 SECRET_KEY=<random> ALLOWED_HOSTS=api.acme.com PUBLIC_URL=https://api.acme.com/ AWS_MEDIA_BUCKET_NAME=saleor-media AWS_S3_ENDPOINT_URL=https://storage.edge.network AWS_ACCESS_KEY_ID=<edge-access-key> AWS_SECRET_ACCESS_KEY=<edge-secret-key> AWS_MEDIA_CUSTOM_DOMAIN=media.acme.com - 03
Migrate and start the API and worker
Both compose services use ghcr.io/saleor/saleor: api runs uvicorn saleor.asgi:application, worker runs celery --app saleor.celeryconf:app worker.
shell$ docker compose run --rm api python3 manage.py migrate $ docker compose run --rm api python3 manage.py createsuperuser $ docker compose up -d api worker redis - 04
Host the Dashboard and media on the CDN
Build the Dashboard with API_URL set to your GraphQL endpoint, sync it to a bucket, and serve both buckets through one deployment.
shell$ edge storage create saleor-dashboard $ edge storage sync ./build/dashboard saleor-dashboard/ $ edge cdn create --name acme-saleor $ edge cdn domains add cdn-a1b2c3 --domain dashboard.acme.com \ --origin-type storage --storage-bucket saleor-dashboard $ edge cdn domains add cdn-a1b2c3 --domain media.acme.com \ --origin-type storage --storage-bucket saleor-media --jit-image
Prefer to hand it off? Give the job to your AI agent or have our engineers do it.
What it costs
What Saleor's backend costs a month
- No per-request or per-order fees
- Private traffic between VMs is free
- Payments settle directly with your gateway
- Billed hourly from a prepaid balance
Estimated monthly bill on Edge
Saleor API and Celery, Postgres on its own VM, ~150k visits a month
- API VM$38.47Performance: 4 vCPU, 8 GiB for the Saleor API, Celery and Redis
- Database VM$19.24Standard: 2 vCPU, 4 GiB for PostgreSQL 16
- CDN$0.753.5M requests: first 500k free, then 3M × $0.25 per million
- Storage$0.4535 GB of media and Dashboard: first 5 GB free, then 30 GB × $0.015
- DNS$0.00api., dashboard., media. and shop. records
- Egress$0.00
FAQ
Saleor on Edge, answered
How does this compare to Saleor Cloud?
Which storefront should I use?
Can the CDN cache GraphQL responses?
How do I deploy code updates?
What about payments?
Drop-in services
Add these without touching the stack
- Edge ShieldBot protection
POST /siteverify → score: 94Guard signup and checkout mutations from bots with one check in your storefront's server code.
Free for most sites. No puzzles, no widget to style.Explore - Edge AssistAI answers
<script src="…/assist.js">Give your storefront a sales assistant that answers from your own product and policy pages.
Free tier: 250 answered questions a monthExplore
Take Saleor off the request meter
Start free. Bring an existing Saleor instance or stand up a fresh one from the official image.
Free tiers hard-cap. Nothing bills until you add a card.