Saleor на VPS: современная платформа для интернет-магазинов

16.02.2026
19:35

Saleor — это не просто ещё одна CMS для e-commerce. Это API-first платформа которая даёт полный контроль над архитектурой магазина, позволяет строить любой фронтенд и масштабироваться без ограничений. Но именно эта гибкость делает Saleor требовательным к серверу и навыкам разработчика.

В этом руководстве покажем для кого подходит Saleor, как установить его на VPS THE.Hosting и что нужно знать перед стартом проекта. Без маркетинга и теории — только практика и реальные требования.

Что такое Saleor

Saleor — open-source headless ecommerce платформа построенная на Python/Django с GraphQL API. Существует с 2012 года, активно развивается и имеет 21,800+ звёзд на GitHub. Используется брендами в publishing, fashion и других high-volume нишах.

Архитектура платформы:

Saleor состоит из трёх независимых компонентов. Backend (Core) — Python/Django приложение которое предоставляет GraphQL API для всех операций: управление товарами, заказами, клиентами, платежами, доставкой. Dashboard — React-приложение для администраторов магазина с полным управлением каталогом, заказами и настройками. Storefront — фронтенд магазина который вы создаёте сами на любой технологии (React, Vue, Next.js, мобильные приложения).

Все три компонента взаимодействуют только через GraphQL API. Backend не знает ничего про фронтенд и наоборот. Это классическая headless архитектура которая даёт максимальную гибкость но требует разработки.

Ключевые особенности:

GraphQL-first подход означает что весь функционал доступен через мощный и гибкий API. Вы запрашиваете только те данные которые нужны — ни больше ни меньше. Мультиканальность из коробки позволяет управлять несколькими витринами с разными ценами, валютами, складами и ассортиментом через один бэкенд. Поддержка более 30 языков и мультивалютность делают глобальную торговлю простой с первого дня.

Платформа расширяется через webhooks и apps вместо традиционных плагинов. Приложения разворачиваются независимо от ядра что снижает downtime и упрощает разработку. Dashboard можно кастомизировать добавляя собственные UI элементы через 45+ точек монтирования.

Когда выбирать Saleor

Saleor не универсальное решение. Это платформа для команд которые готовы инвестировать в разработку ради полного контроля и гибкости.

Saleor идеально подходит если:

Вам нужен полностью кастомный фронтенд. Стандартные темы WooCommerce или Shopify не дают нужного UX, вы хотите уникальный дизайн или необычные сценарии покупок. Вы строите омниканальную коммерцию с продажами через веб, мобильные приложения, маркетплейсы, голосовых ассистентов или IoT устройства. Все каналы работают с единым бэкендом через API.

Вы планируете масштабирование и высокие нагрузки. У вас тысячи товаров, сложная логистика с несколькими складами, интеграции с ERP/CRM/WMS и ожидаемый трафик от сотен тысяч пользователей. Вы хотите контролировать весь стек технологий без vendor lock-in. Открытый исходный код Python/Django который можно модифицировать как угодно.

Saleor НЕ подходит если:

У вас нет команды разработчиков. Saleor требует программирования для настройки фронтенда и интеграций. Это не Shopify где можно за час собрать магазин из готовых блоков. Вам нужен быстрый старт. От установки до первых продаж пройдёт минимум несколько недель разработки. Бюджет ограничен. Хоть платформа бесплатная разработка фронтенда и инфраструктура на VPS обойдутся дороже чем SaaS решения на старте.

Вы хотите out-of-box магазин. Saleor даёт API и инструменты но не готовый магазин с темами и плагинами. Ищете что-то более готовое — посмотрите на WooCommerce, PrestaShop или Sylius (который тоже headless но с более традиционным подходом).

Системные требования

Saleor требователен к ресурсам из-за Python/Django бэкенда и необходимости запускать несколько сервисов одновременно.

Минимальные требования для тестирования:

Конфигурация 4 vCPU / 8 GB RAM / 80 GB NVMe SSD позволит поднять Saleor для разработки и тестов с небольшим каталогом. PostgreSQL 15+ обязательна как основная база данных. Redis нужен для Celery очередей и кеширования. Python 3.12+ и Node.js 20 LTS для работы бэкенда и сборки Dashboard.

Рекомендуемая конфигурация для боевого сервера:

Для реального магазина с трафиком нужно минимум 8 vCPU / 16 GB RAM / 160 GB NVMe SSD. Почему больше ресурсов? Saleor Core (Django приложение) обычно потребляет 500-600 MB RAM на процесс. Запускаем 4-6 рабочих процессов для обработки запросов — уже 3-4 GB. Dashboard после сборки занимает ~900 MB. Celery обработчики для фоновых задач — ещё 600-800 MB. PostgreSQL под нагрузкой — 2-4 GB. Redis — 500 MB минимум. Операционная система и буферы — 2 GB.

Итого реально нужно 10-12 GB RAM для комфортной работы под нагрузкой. На 8 GB тоже запустится но будут просадки при пиках трафика.

Какой VPS выбрать на THE.Hosting:

Для разработки и тестов подойдёт Standard VPS с 4 vCPU / 8 GB RAM / 90 GB NVMe за ~€15/месяц. Для боевого магазина берите Hi-CPU VPS с 8 vCPU / 16 GB RAM / 210 GB NVMe за ~€65/месяц. Если планируете высокие нагрузки (50k+ визитов в день) — сразу Dedicated сервер с 16+ CPU / 32+ GB RAM.

Все серверы THE.Hosting идут с NVMe SSD что критично для PostgreSQL производительности, полным root доступом для установки любого софта и Anti-DDoS защитой. Поддержка 24/7 поможет если возникнут проблемы с настройкой.

Установка Saleor на Ubuntu 24.04

Будем устанавливать все компоненты вручную чтобы понимать архитектуру. Docker образы есть но для боевого сервера лучше контролировать каждый сервис.

Подготовка системы

Подключаемся к серверу по SSH и обновляем систему:

sudo apt update && sudo apt upgrade -y

Устанавливаем базовые зависимости:

sudo apt install -y build-essential git curl wget \
  libpq-dev libffi-dev libssl-dev libjpeg-dev zlib1g-dev \
  libmagic1 gettext software-properties-common

Создаём отдельного пользователя для Saleor:

sudo useradd -m -s /bin/bash saleor
sudo usermod -aG sudo saleor

Установка PostgreSQL 15

sudo apt install -y postgresql postgresql-contrib
sudo systemctl start postgresql
sudo systemctl enable postgresql

Создаём базу данных:

sudo su - postgres
createuser saleor --pwprompt
createdb saleor --owner=saleor
exit

При запросе пароля задайте что-то надёжное — это база для боевого сервера.

Установка Redis

sudo apt install -y redis-server
sudo systemctl start redis
sudo systemctl enable redis

# Проверяем работу
redis-cli ping
# Должен ответить PONG

Установка Python 3.12

Ubuntu 24.04 уже идёт с Python 3.12 но проверим версию:

python3 --version

Если версия старше 3.12 устанавливаем через PPA:

sudo add-apt-repository ppa:deadsnakes/ppa -y
sudo apt update
sudo apt install -y python3.12 python3.12-venv python3.12-dev

Установка Node.js 20 LTS

Нужен для сборки Dashboard:

curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs
node --version
npm --version

# Устанавливаем pnpm (preferred package manager для Saleor)
sudo npm install -g pnpm

Установка Saleor Core

Переключаемся на пользователя saleor:

sudo su - saleor
mkdir -p ~/apps
cd ~/apps

Клонируем репозиторий:

git clone https://github.com/saleor/saleor.git
cd saleor
git checkout main

Создаём виртуальное окружение Python:

python3.12 -m venv venv
source venv/bin/activate

Устанавливаем зависимости:

pip install --upgrade pip wheel setuptools
pip install -r requirements.txt

Это займёт 5-10 минут. Django и все зависимости довольно тяжёлые.

Настройка окружения

Создаём файл .env:

nano .env

Основные переменные для production:

# Окружение
SECRET_KEY=your-secret-key-here-generate-strong-one
DEBUG=False
ALLOWED_HOSTS=your-domain.com,www.your-domain.com

# База данных
DATABASE_URL=postgres://saleor:your-password@localhost:5432/saleor

# Redis
CELERY_BROKER_URL=redis://localhost:6379/0
CACHE_URL=redis://localhost:6379/1

# Email (настройте SMTP)
EMAIL_URL=smtp://user:password@smtp.example.com:587/?tls=True

# Медиафайлы и статика
STATIC_URL=/static/
MEDIA_URL=/media/

# Домен GraphQL API
API_URI=https://api.your-domain.com/graphql/

Генерируем SECRET_KEY:

python -c "import secrets; print(secrets.token_urlsafe(50))"

Миграции и создание суперюзера

Применяем миграции базы данных:

python manage.py migrate

Создаём суперпользователя для доступа к Dashboard:

python manage.py createsuperuser

Загружаем тестовые данные (опционально для разработки):

python manage.py populatedb

Настройка systemd сервисов

Выходим из пользователя saleor:

exit

Создаём systemd unit для API сервера:

sudo nano /etc/systemd/system/saleor-api.service

Содержимое:

[Unit]
Description=Saleor GraphQL API
After=network.target postgresql.service redis-server.service
Requires=postgresql.service redis-server.service

[Service]
Type=simple
User=saleor
Group=saleor
WorkingDirectory=/home/saleor/apps/saleor
Environment="PATH=/home/saleor/apps/saleor/venv/bin"
EnvironmentFile=/home/saleor/apps/saleor/.env
ExecStart=/home/saleor/apps/saleor/venv/bin/gunicorn saleor.wsgi:application \
  --bind 127.0.0.1:8000 \
  --workers 4 \
  --worker-class uvicorn.workers.UvicornWorker \
  --access-logfile - \
  --error-logfile -
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target

Аналогично создаём сервис для Celery:

sudo nano /etc/systemd/system/saleor-celery.service
[Unit]
Description=Saleor Celery Worker
After=network.target redis-server.service
Requires=redis-server.service

[Service]
Type=forking
User=saleor
Group=saleor
WorkingDirectory=/home/saleor/apps/saleor
Environment="PATH=/home/saleor/apps/saleor/venv/bin"
EnvironmentFile=/home/saleor/apps/saleor/.env
ExecStart=/home/saleor/apps/saleor/venv/bin/celery -A saleor worker \
  --loglevel=info \
  --detach \
  --logfile=/home/saleor/logs/celery.log
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target

Создаём директорию для логов:

sudo su - saleor
mkdir ~/logs
exit

Запускаем сервисы:

sudo systemctl daemon-reload
sudo systemctl enable saleor-api saleor-celery
sudo systemctl start saleor-api saleor-celery

# Проверяем статус
sudo systemctl status saleor-api
sudo systemctl status saleor-celery

GraphQL API теперь доступен на http://localhost:8000/graphql/.

Установка Dashboard

Возвращаемся к пользователю saleor:

sudo su - saleor
cd ~/apps

Клонируем Dashboard:

git clone https://github.com/saleor/saleor-dashboard.git
cd saleor-dashboard

Устанавливаем зависимости:

pnpm install

Создаём файл .env:

nano .env

Содержимое:

API_URI=https://api.your-domain.com/graphql/
APPS_MARKETPLACE_API_URI=https://apps.saleor.io/api/v2/saleor-apps
APPS_TUNNEL_URL_KEYWORDS=

Собираем рабочую версию:

pnpm build

Сборка займёт 3-5 минут и создаст папку build со статическими файлами.

Настройка Nginx

Устанавливаем Nginx:

exit
sudo apt install -y nginx

Создаём конфигурацию для API:

sudo nano /etc/nginx/sites-available/saleor-api
server {
    listen 80;
    server_name api.your-domain.com;

    client_max_body_size 50M;

    location / {
        proxy_pass http://127.0.0.1:8000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

    location /media/ {
        alias /home/saleor/apps/saleor/media/;
    }

    location /static/ {
        alias /home/saleor/apps/saleor/static/;
    }
}

Создаём конфигурацию для Dashboard:

sudo nano /etc/nginx/sites-available/saleor-dashboard
server {
    listen 80;
    server_name dashboard.your-domain.com;

    root /home/saleor/apps/saleor-dashboard/build;
    index index.html;

    location / {
        try_files $uri $uri/ /index.html;
    }
}

Активируем конфигурации:

sudo ln -s /etc/nginx/sites-available/saleor-api /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/saleor-dashboard /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx

SSL сертификаты

Устанавливаем Certbot:

sudo apt install -y certbot python3-certbot-nginx

Получаем сертификаты:

sudo certbot --nginx -d api.your-domain.com
sudo certbot --nginx -d dashboard.your-domain.com

Certbot автоматически настроит HTTPS и редиректы.

Проверка установки

Откройте https://api.your-domain.com/graphql/ — должен загрузиться GraphQL Playground.

Откройте https://dashboard.your-domain.com — должен открыться Dashboard с формой входа.

Войдите с учётными данными суперпользователя которые создали ранее.

Первоначальная настройка

После установки нужно настроить базовые параметры магазина через Dashboard.

Настройка каналов продаж

Saleor поддерживает мультиканальность из коробки. Зайдите в Configuration → Channels и создайте первый канал. Например "Web Store" с валютой EUR и slug "default-channel". Для каждого канала можно настроить свои цены на товары, доступность складов, способы доставки и оплаты.

Добавление товаров

Перейдите в Catalog → Products → Create product. Задайте название, описание, цену, загрузите изображения. Укажите в каких каналах товар доступен и на каких складах есть. Можно настроить варианты товара (размеры, цвета) через Product Types и Attributes.

Настройка доставки

Configuration → Shipping methods → Add shipping method. Создайте зоны доставки привязав их к странам. Для каждой зоны настройте способы доставки с ценой или расчётом по весу/сумме заказа.

Настройка оплаты

Configuration → Payment methods. Saleor поддерживает интеграции через webhooks и apps. Популярные: Stripe, Braintree, PayPal. Устанавливается через Saleor Apps marketplace или кастомную интеграцию.

Webhooks для интеграций

Configuration → Webhooks. Здесь настраиваются уведомления для внешних систем. Например при создании заказа отправлять данные в CRM, при оплате отправлять в систему учёта, при обновлении товара синхронизировать с маркетплейсами.

Разработка фронтенда

Saleor не даёт готовый фронтенд — его нужно разрабатывать. Есть стартовый шаблон на Next.js который можно использовать как основу.

Saleor Storefront (пример)

sudo su - saleor
cd ~/apps
git clone https://github.com/saleor/storefront.git
cd storefront

Устанавливаем зависимости:

pnpm install

Настраиваем .env.local:

NEXT_PUBLIC_SALEOR_API_URL=https://api.your-domain.com/graphql/
NEXT_PUBLIC_STOREFRONT_URL=https://shop.your-domain.com

Разрабатываем магазин меняя компоненты в app/ и стили в styles/. GraphQL запросы к API делаются через клиент уже настроенный в проекте. Документация по GraphQL schema доступна в Playground.

Собираем и запускаем:

pnpm build
pnpm start

Для production настройте Nginx на проксирование к Next.js серверу или деплойте на Vercel/Netlify как статику если используете SSG.

Преимущества и ограничения

Что даёт Saleor:

Полная гибкость архитектуры. Вы контролируете каждый аспект магазина и можете реализовать любую бизнес-логику через API. Мощный GraphQL API с детальной типизацией и документацией позволяет строить сложные интеграции и автоматизации. Открытый исходный код на Python означает что можно модифицировать платформу под специфические требования.

Настоящий headless подход даёт возможность использовать любой фронтенд: PWA, мобильные приложения, даже голосовых ассистентов и IoT устройства. Всё работает с одним бэкендом. Мультиканальность без костылей позволяет запустить несколько магазинов с разной логикой на одной установке.

Ограничения платформы:

Требует разработки. Нет готовых тем и дизайнов. Фронтенд нужно писать с нуля или сильно дорабатывать стартовый шаблон. Высокий порог входа. Нужно знать Python/Django для бэкенда и jаvascript/React для фронтенда. GraphQL API тоже требует изучения.

Требовательность к ресурсам. Django приложения прожорливы по памяти и CPU по сравнению с PHP. Нужен хороший VPS даже для средних нагрузок. Развёртывание сложнее чем у WordPress/WooCommerce. Нужно настраивать множество сервисов и понимать как они взаимодействуют.

Производительность и оптимизация

Кеширование

Redis используется для кеширования запросов к базе данных и результатов GraphQL запросов. Настройте в .env:

CACHE_URL=redis://localhost:6379/1

Django кеширует автоматически но можно добавить кастомные правила кеширования для тяжёлых запросов.

Оптимизация PostgreSQL

Отредактируйте /etc/postgresql/15/main/postgresql.conf:

shared_buffers = 4GB
effective_cache_size = 12GB
work_mem = 64MB
maintenance_work_mem = 1GB
max_connections = 100

После изменений перезапустите PostgreSQL:

sudo systemctl restart postgresql

Масштабирование Celery

Запустите несколько Celery workers для параллельной обработки фоновых задач. Измените ExecStart в systemd unit:

ExecStart=/home/saleor/apps/saleor/venv/bin/celery -A saleor worker \
  --concurrency=8 \
  --loglevel=info

CDN для медиафайлов

Настройте django-storages для загрузки изображений товаров в S3-совместимое хранилище. Установите:

pip install django-storages boto3

В settings.py добавьте конфигурацию S3 и изображения будут загружаться напрямую в облако а не на локальный диск сервера.

Частые вопросы

Можно ли использовать Saleor без разработки?

Нет. Saleor предоставляет только API и админ-панель. Фронтенд магазина нужно разрабатывать самостоятельно или заказывать у разработчиков.

Какой минимальный VPS нужен?

Для тестов хватит 4 vCPU / 8 GB RAM. Для боевого магазина нужно минимум 8 vCPU / 16 GB RAM.

Поддерживает ли Saleor мультиязычность?

Да, встроенная поддержка 30+ языков. Контент можно переводить через Dashboard для каждого языка отдельно.

Как быстро работает Saleor?

GraphQL API отвечает за 50-200ms при правильной настройке кеширования. Frontend скорость зависит от вашей реализации но headless подход позволяет делать очень быстрые PWA.

Можно ли мигрировать с WooCommerce/Shopify?

Да но миграцию нужно программировать. Стандартных инструментов миграции нет. Экспортируйте данные из старой платформы и импортируйте через GraphQL mutations или напрямую в PostgreSQL.

Есть ли ready-made плагины?

Есть Saleor Apps marketplace с интеграциями платежей, доставки, аналитики. Но экосистема намного меньше чем у WooCommerce. Большинство интеграций нужно делать самостоятельно через webhooks и API.

Заключение

Saleor — мощная платформа для команд которые хотят полный контроль над архитектурой интернет-магазина. Современный стек (Python/Django/GraphQL), настоящий headless подход и мультиканальность делают его отличным выбором для сложных проектов и масштабируемых решений.

Но это не plug-and-play система. Требуется опыт разработки, хороший VPS и время на настройку. Если у вас есть команда разработчиков и бюджет на инфраструктуру — Saleor даст гибкость которую сложно получить в других платформах.

На серверах THE.Hosting вы получаете производительные VPS с NVMe SSD идеально подходящие для PostgreSQL, полный root доступ для установки всего стека и техподдержку 24/7 если возникнут сложности с развёртыванием.

Заказать VPS для Saleor

Другие статьи

16.02.2026
6
База знаний / Все о доменах
Домен .cc – универсальное решение для вашего проекта
16.02.2026
6
База знаний / Все о доменах
Домен .cloud – решение для технологических проектов
16.02.2026
5
База знаний / Инструкции
Sylius: установка интернет-магазина на VPS