Set up your development environment
This document will guide you to set up your development environment to efficiently and properly use Medusa.
Prerequisite Background Knowledge
JavaScript
Medusa is built with JavaScript. If you’re not familiar with JavaScript, it is the language that runs in your browser to create dynamic web applications and has over the past decade gained a lot of traction as a backend language. If you wish to customize or extend Medusa, it is highly recommended that you learn how JavaScript works.
You can learn more about JavaScript with the Basic JavaScript course from freeCodeCamp.
Express
Medusa uses Express, a Node.js web application framework, to create your ecommerce server. It facilitates creating REST APIs in Node.js. If you’re interested in customizing Medusa or understanding more about how it works, you should learn more about Express.
You can learn more about Node.js and Express with the Free 8-hour-long Node.js + Express course from freeCodeCamp.
SQL
SQL is a programming language used to interact with relational databases and store data in your ecommerce server. To understand how different entities relate to each other in Medusa it is helpful to have a good understanding of SQL.
You can learn more about SQL and relational databases with the SQL and Databases course from freeCodeCamp.
Command Line Interface (CLI)
To install and use Medusa, you’ll need to be familiar with CLI tools. If you’re not familiar with the command line, it is a text interface for your computer. It is used to run commands such as starting a program, performing a task, or interfacing with the files on your computer.
If you have never used the command line before you can check out this tutorial to get the basics in place.
Additional Information
To get a further understanding of what powers Medusa you can lookup these concepts:
Installations
To get your development environment ready you need to install the following tools:
Node.js
info
Node.js is an environment that can execute JavaScript code outside of the browser, making it possible to run on a server.
Node.js has a bundled package manager called NPM. NPM helps you install "packages" which are small pieces of code that you can leverage in your Node.js applications. Medusa's core is itself a package distributed via NPM and so are all of the plugins that exist around the core.
Node.js is the environment that makes it possible for Medusa to run, so you must install Node.js on your computer to start Medusa development.
caution
Medusa supports versions 14 and 16 of Node.js. You can check your Node.js version using the following command:
node -v
- Windows
- Linux
- macOS
You can install the executable directly from the Node.js website.
For other approaches, you can check out Node.js’s guide.
You can use the following commands to install Node.js on Ubuntu:
#Ubuntu
sudo apt update
sudo apt install nodejs
For other Linux distributions, you can check out Node.js’s guide.
You can use the following commands to install Node.js on macOS:
- Homebrew
- Without Homebrew
brew install node
curl "https://nodejs.org/dist/latest/node-${VERSION:-$(wget -qO- https://nodejs.org/dist/latest/ | sed -nE 's|.*>node-(.*)\.pkg</a>.*|\1|p')}.pkg" > "$HOME/Downloads/node-latest.pkg" && sudo installer -store -pkg "$HOME/Downloads/node-latest.pkg" -target "/"
For other approaches, you can check out Node.js’s guide.
tip
Make sure that you have Xcode command line tools installed; if not, run the following command to install it: xcode-select --install
Git
info
Git is a version control system that keeps track of files within a project and makes it possible to do things like going back in history if you have made mistakes or collaborate with teammates without overriding each other's work.
Medusa uses Git behind the scenes when you create a new project so you'll have to install it on your computer to get started.
- Windows
- Linux
- macOS
To install Git on Windows, you need to download the installable package.
For Debian/Ubuntu, you can use the following command:
apt-get install git
As for other Linux distributions, please check git’s guide.
You should already have Git installed as part of the Xcode command-line tools.
However, if for any reason you need to install it manually, you can install it with Homebrew:
brew install git
You can also check out git’s guide for more installation options.
PostgreSQL
info
PostgreSQL is an open-source relational database system with more than 30 years of active development. It is robust, reliable, and ensures data integrity so there's no need to worry about those when you scale your project.
Although you can use an SQLite database with Medusa which would require no necessary database installations, it is recommended to use a PostgreSQL database for your server.
tip
After installing PostgreSQL, check out the Configure your Server documentation to learn how to configure PostgreSQL to work with Medusa.
- Windows
- Linux
- macOS
You can download the PostgreSQL Windows installer from their website.
If you’re using Ubuntu, you can use the following commands to download and install PostgreSQL:
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update
sudo apt-get -y install postgresql
For other distributions, you can check out PostgreSQL’s website for more guides.
You can download PostgreSQL on your macOS using the installer on their website.
Redis
info
Redis is an open-source in-memory data structure store. It can be used for distributing and emitting messages and caching, among other purposes.
Medusa uses Redis as the event queue in the server. If you want to use subscribers to handle events such as when an order is placed and perform actions based on the events, then you need to install and configure Redis.
If you don’t install and configure Redis with your Medusa server, then it will work without any events-related features.
tip
After installing Redis, check out the Configure your Server documentation to learn how to configure Redis to work with Medusa.
- Windows
- Linux
- macOS
To use Redis on Windows, you must have Windows Subsystem for Linux (WSL2) enabled. This lets you run Linux binaries on Windows.
After installing and enabling WSL2, if you use an Ubuntu distribution you can run the following commands to install Redis:
sudo apt-add-repository ppa:redislabs/redis
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install redis-server
## Start Redis server
sudo service redis-server start
If you use Ubuntu you can use the following commands to install Redis:
curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list
sudo apt-get update
sudo apt-get install redis
## Start Redis server
sudo service redis-server start
For other distributions, you can check out Redis’ guide on this.
You can install Redis on macOS using Homebrew with the following command:
brew install redis
## Start Redis server
brew services start redis
To install Redis without Homebrew you can check out Redis’s guide on installing it from source.
Medusa CLI
The final installation required to get started with Medusa is the Medusa CLI. It is an NPM package you can install globally on your machine to get instant access to commands that help you manage and run your Medusa project.
You can install Medusa’s CLI with the following command:
- npm
- Yarn
npm install @medusajs/medusa-cli -g
yarn global add @medusajs/medusa-cli
Code editor
If you don't already have a code editor of choice, we recommend using VSCode as it is a widely used IDE (Integrated Development Environment) by developers.
Here are some other options:
It is not important which editor you use as long as you feel comfortable working with it.
What’s Next 🚀
- Learn how to configure your Medusa server.
- Learn how to install a storefront with Next.js or Gatsby.
- Learn how to install the Medusa Admin.