Saleor E-Commerce Platform - Infrastructure Documentation
Shopping guide, FAQs, and customer support information
Dashboard guide, product management, order processing
API reference, deployment guides, technical architecture
Customer-facing storefront (API placeholder)
Saleor Dashboard - Product & Order Management
GraphQL Playground for API testing
Staging Dashboard - Safe testing area
| Environment | External Port | Internal Port | Service |
|---|---|---|---|
| Production | 8080 | 8080 | Nginx (API + Dashboard routing) |
| Production | 8081 | 8081 | Nginx (Subdomain routing) |
| Staging | 9080 | 8080 | Nginx (API + Dashboard routing) |
| Staging | 9081 | 8081 | Nginx (Subdomain routing) |
| Path | Destination | Description |
|---|---|---|
/graphql |
Saleor API | GraphQL endpoint |
/admin |
Dashboard | Admin panel (aliased to /dashboard) |
/dashboard |
Dashboard | Admin panel (direct path) |
/media |
Saleor API | Product images and media |
/static |
Saleor API | Static files (CSS, JS) |
/health |
Saleor API | Health check endpoint |
/ |
Saleor API | Default - API root |
The Saleor Product Manager is a custom Next.js application that enables declarative product management via Markdown files. Products are defined in src/saleor-product-manager/products/ and synced to Saleor via GraphQL.
| Product | SKU | Price | Category |
|---|---|---|---|
| ๐ธ Elegant Bloom - Hand-Printed Dahlia Print | ELE/PRI/6IN |
$180.00 | Art Prints |
| ๐ฆข Eternal Flight - Handcrafted Origami Crane Print | ETE/PRI/4IN |
$80.00 | Art Prints |
| ๐ Ethereal Drift - Handcrafted Jellyfish Print | ETH/PRI/6IN |
$90.00 | Art Prints |
| Environment | URL | Description |
|---|---|---|
| Development | http://localhost:3001 |
Dev product manager UI |
| Staging | http://localhost:3002 |
Stage product manager UI |
# Sync to Development
curl -X POST http://localhost:3001/api/sync \
-H "Content-Type: application/json" \
-d '{"environment": "dev", "productsDir": "/app/products", "dryRun": false}'
# Sync to Staging
curl -X POST http://localhost:3002/api/sync \
-H "Content-Type: application/json" \
-d '{"environment": "stage", "productsDir": "/app/products", "dryRun": false}'
renewed-renaissance-saleor/
โโโ deploy/
โ โโโ 01_dev/ # Development environment
โ โโโ 02_stage/ # Staging environment (ports 9080/9081)
โ โ โโโ docker-compose.yml
โ โ โโโ nginx.conf # Path-based routing configuration
โ โ โโโ .env # Stage-specific configuration
โ โโโ 03_prod/ # Production environment (ports 8080/8081)
โ โโโ docker-compose.yml
โ โโโ nginx.conf # Path-based routing configuration
โ โโโ .env # Production configuration
โโโ src/
โ โโโ saleor-core/ # Django API backend
โ โ โโโ create_superuser.py
โ โ โโโ settings.py
โ โโโ saleor-dashboard/ # React admin panel
โ โโโ saleor-storefront/ # Next.js customer shop (planned)
โ โโโ saleor-product-manager/ # Declarative product management
โ โ โโโ products/ # Markdown product definitions
โ โ โโโ src/ # Next.js application
โ โโโ [services]/ # PostgreSQL, Redis, MailDev
โโโ docs/ # Documentation (this page!)
| Setting | Production | Staging |
|---|---|---|
| DEBUG Mode | True (temporary) | True (temporary) |
| Redis | Configured via .env | Configured via .env |
| Database | PostgreSQL | PostgreSQL |
| Celery Workers | Active (background tasks) | Active (background tasks) |
| Email Backend | MailDev (1025/1080) | MailDev (1026/1081) |
# Production
cd deploy/03_prod
docker-compose up -d
# Staging
cd deploy/02_stage
docker-compose up -d
docker-compose exec api python manage.py migrate
docker-compose exec api python manage.py createsuperuser --noinput
# All services
docker-compose logs -f
# Specific service
docker-compose logs -f api
docker-compose logs -f nginx
docker-compose logs -f worker
# Restart with new .env variables
docker-compose up -d --force-recreate api worker
# Just restart nginx
docker-compose restart nginx