Deploy Saleor, the GraphQL-first headless commerce platform built for high performance, flexible product catalogs, and multi-channel sales.
Grab the automated bash script from GitHub to follow along with the video.
wget https://raw.githubusercontent.com/mhmdali94/Docker/main/ecommerce/saleor/saleor-ubuntu.sh
chmod +x saleor-ubuntu.sh
sudo bash saleor-ubuntu.sh
The script installs Docker, pulls the Saleor API, Dashboard, PostgreSQL, and Redis images, and starts all services. Saleor API and Admin Dashboard will be available on port 8000.
wget https://raw.githubusercontent.com/mhmdali94/Docker/main/ecommerce/saleor/saleor-ubuntu.sh
chmod +x saleor-ubuntu.sh
sudo bash saleor-ubuntu.sh
Open your browser and navigate to the Saleor Dashboard. The default staff login credentials are printed in the installer output. Log in and change the password immediately:
http://<your-server-ip>:8000/dashboard/
Navigate to Channels in the Dashboard and create your first sales channel with a currency and country. Then go to Catalog → Products to add your product catalog with variants, pricing per channel, and stock levels. Assign products to the channel to make them available.
Use the built-in GraphQL Playground to explore and test the Saleor API. Query products, create orders, and manage checkout flows — all through a single GraphQL endpoint:
http://<your-server-ip>:8000/graphql/
| Port | Purpose |
|---|---|
| 8000 | Saleor API & Admin Dashboard |
| 5432 | PostgreSQL database (internal) |
| 6379 | Redis cache & queue (internal) |
Saleor is an open-source headless e-commerce platform built with Python (Django) and GraphQL. It provides a powerful GraphQL API for all commerce operations, a React-based admin dashboard, and is designed for high-performance storefronts built with modern JavaScript frameworks.
Saleor's GraphQL-first design makes it ideal for frontend teams using Apollo or similar clients. It avoids REST API under-fetching and over-fetching by letting storefronts query exactly what they need. The modern architecture supports complex product structures, multi-channel selling, and custom extensions.
Saleor runs on port 8000. Place it behind a reverse proxy with HTTPS. The PostgreSQL database (port 5432), Redis (port 6379), and Celery worker should never be exposed publicly — all communicate internally within the Docker network.
Alternatives include Medusa (Node.js, composable), WooCommerce (WordPress, PHP), Shopify (SaaS), and Commerce Layer (cloud, API-first). Choose Saleor for a GraphQL-first Python commerce engine with multi-channel support and a modern developer experience.
Avoid Saleor if your team has no Python experience — debugging and extending Saleor requires Django knowledge. Also avoid for simple stores where WooCommerce or PrestaShop would launch much faster with less infrastructure complexity.
PrismaTechWork provides end-to-end infrastructure services — from initial deployment and security hardening to ongoing monitoring, automated backups, and dedicated support. Whether you need a single-server setup or a multi-site network, our team ensures your infrastructure is built right, secured properly, and maintained reliably.
GraphQL allows storefronts to request exactly the data they need in one query, avoiding REST API problems like under-fetching (needing multiple API calls) and over-fetching (receiving unnecessary data). For complex storefronts with many data requirements, GraphQL reduces API calls significantly and improves performance.
A channel represents a sales outlet — for example, your main website, a mobile app, or a marketplace listing. Each channel can have its own currency, pricing, product availability, and order settings. This allows one Saleor instance to power multiple storefronts with different configurations.
No — Saleor is a headless commerce engine. The storefront must be built separately. Saleor provides an official React storefront starter on GitHub built with Next.js that you can use as a starting point. Saleor also has a companion React admin dashboard that is self-hosted separately.
Saleor uses a Saleor Apps system for payment integrations. Official payment apps exist for Stripe, Adyen, Braintree, and others. Install a payment app by deploying it as a separate service and registering it in the Saleor dashboard. Custom payment apps can be built following the Saleor App API.
Saleor supports highly complex product structures. Define product types with any combination of attributes (color, size, material, custom fields). Products can have multiple variants based on attribute combinations. Attributes support various types: text, numeric, boolean, date, file, and referenced objects like other products.
Yes. Saleor has built-in translation support. In the dashboard, translate product names, descriptions, categories, and other content into multiple languages. The API returns translations based on the requested language code in the query.
Saleor Apps are external microservices that extend Saleor's functionality via webhooks and a permissions API. They can add payment gateways, tax calculations, fulfillment services, and more. Apps are registered in the Saleor dashboard and communicate with Saleor via its API.
Pull the new Saleor Docker image, review the changelog for migration instructions, stop the containers, run database migrations with python manage.py migrate inside the container, then restart. Always test upgrades in a staging environment first, especially for major version changes.