Deploy Medusa, the open-source Shopify alternative with modular commerce APIs for custom storefronts, multi-region support, and headless architecture.
Grab the automated bash script from GitHub to follow along with the video.
wget https://raw.githubusercontent.com/mhmdali94/Docker/main/ecommerce/medusa/medusa-ubuntu.sh
chmod +x medusa-ubuntu.sh
sudo bash medusa-ubuntu.sh
The script installs Docker, pulls the Medusa, PostgreSQL, and Redis images, and starts all containers. The Medusa API will be available on port 9000 and the Admin UI on port 7001.
wget https://raw.githubusercontent.com/mhmdali94/Docker/main/ecommerce/medusa/medusa-ubuntu.sh
chmod +x medusa-ubuntu.sh
sudo bash medusa-ubuntu.sh
Open your browser and navigate to the Medusa Admin panel. Create your administrator account with a secure email and password to gain full control over the store:
http://<your-server-ip>:7001
In the Admin UI, navigate to Products and create your product catalog. Add product variants for different sizes, colors, or configurations. Set pricing per variant and configure inventory levels. Organize products into Collections for a structured storefront experience.
Connect the Medusa Next.js Starter or your custom frontend to the Medusa Store API on port 9000. All product listings, cart, checkout, and order flows are driven by Medusa's API endpoints:
http://<your-server-ip>:9000/store/products
| Port | Purpose |
|---|---|
| 9000 | Medusa Admin & Store API |
| 7001 | Medusa Admin UI (React Dashboard) |
| 5432 | PostgreSQL database (internal) |
| 6379 | Redis cache & queue (internal) |
Medusa is an open-source composable commerce engine for developers who want full control over their e-commerce backend. It provides a Node.js API with modules for products, orders, payments, inventory, and customers — all customizable and extensible, designed to power headless storefronts.
Medusa is the open-source alternative to Shopify Plus or Commerce.js for developers who cannot accept vendor lock-in or SaaS pricing at scale. You own the backend, customize every business logic rule, and connect any payment provider, fulfillment service, or CMS.
Medusa runs on port 9000. Serve it behind a reverse proxy with HTTPS. The admin panel at /app is included. PostgreSQL (port 5432) and Redis (port 6379) should never be exposed publicly — they communicate with Medusa internally within the Docker network.
Alternatives include Shopify (SaaS, easy but costly at scale), WooCommerce (WordPress plugin, PHP), Saleor (GraphQL-first, Python), and Commerce Layer (cloud, API-first). Choose Medusa for a Node.js-native composable commerce engine with a modern developer experience.
Avoid Medusa if you need a ready-made storefront with minimal development — Shopify or WooCommerce are faster to launch. Medusa is a backend engine requiring frontend development to build the actual store UI.
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.
Medusa is a headless commerce engine — it provides the backend API and admin dashboard but not the storefront. You build the storefront separately. Medusa provides official Next.js starter storefronts on GitHub that you can clone and customize to accelerate development.
Medusa has official payment provider plugins for Stripe, PayPal, Klarna, Adyen, and MobilePay. You can also implement custom payment providers by following the Medusa payment provider interface. The plugin architecture makes adding new providers straightforward.
Yes. Medusa supports regions, each with its own currency, tax rates, and shipping options. You assign product prices per region and currency, enabling a store that shows EUR prices in Europe and USD prices in North America with different tax rules applied automatically.
Yes, with a plugin or custom implementation. Medusa's order management handles digital product orders, and you implement the delivery mechanism (email with download link, license key generation) via a custom fulfillment provider plugin or workflow automation.
Medusa requires PostgreSQL. It does not support SQLite or MySQL. The Docker Compose setup includes a PostgreSQL container automatically. Redis is also required for queues and event processing — include a Redis container in your deployment.
WooCommerce is a WordPress plugin providing a fully coupled store (PHP, MySQL, WordPress theme). Medusa is a headless Node.js API engine with no built-in frontend. Medusa gives more flexibility for custom storefronts and integrations, while WooCommerce is faster to set up with a wider theme and plugin ecosystem.
Medusa v2 introduces publishable API keys that can scope API access to specific sales channels, enabling multi-storefront setups from one instance. Each storefront uses a different publishable key and sees only its assigned products and settings.
Medusa uses a module system. Create custom modules for new business logic, subscribe to events with subscribers, extend default services with service factories, or add custom API routes. All customizations are defined in code and loaded automatically by Medusa on startup.