* initialized next.js project * finished markdown sections * added operation schema component * change page metadata * eslint fixes * fixes related to deployment * added response schema * resolve max stack issue * support for different property types * added support for property types * added loading for components * added more loading * type fixes * added oneOf type * removed console * fix replace with push * refactored everything * use static content for description * fixes and improvements * added code examples section * fix path name * optimizations * fixed tag navigation * add support for admin and store references * general enhancements * optimizations and fixes * fixes and enhancements * added search bar * loading enhancements * added loading * added code blocks * added margin top * add empty response text * fixed oneOf parameters * added path and query parameters * general fixes * added base path env variable * small fix for arrays * enhancements * design enhancements * general enhancements * fix isRequired * added enum values * enhancements * general fixes * general fixes * changed oas generation script * additions to the introduction section * added copy button for code + other enhancements * fix response code block * fix metadata * formatted store introduction * move sidebar logic to Tags component * added test env variables * fix code block bug * added loading animation * added expand param + loading * enhance operation loading * made responsive + improvements * added loading provider * fixed loading * adjustments for small devices * added sidebar label for endpoints * added feedback component * fixed analytics * general fixes * listen to scroll for other headings * added sample env file * update api ref files + support new fields * fix for external docs link * added new sections * fix last item in sidebar not showing * move docs content to www/docs * change redirect url * revert change * resolve build errors * configure rewrites * changed to environment variable url * revert changing environment variable name * add environment variable for API path * fix links * fix tailwind settings * remove vercel file * reconfigured api route * move api page under api * fix page metadata * fix external link in navigation bar * update api spec * updated api specs * fixed google lint error * add max-height on request samples * add padding before loading * fix for one of name * fix undefined types * general fixes * remove response schema example * redesigned navigation bar * redesigned sidebar * fixed up paddings * added feedback component + report issue * fixed up typography, padding, and general styling * redesigned code blocks * optimization * added error timeout * fixes * added indexing with algolia + fixes * fix errors with algolia script * redesign operation sections * fix heading scroll * design fixes * fix padding * fix padding + scroll issues * fix scroll issues * improve scroll performance * fixes for safari * optimization and fixes * fixes to docs + details animation * padding fixes for code block * added tab animation * fixed incorrect link * added selection styling * fix lint errors * redesigned details component * added detailed feedback form * api reference fixes * fix tabs * upgrade + fixes * updated documentation links * optimizations to sidebar items * fix spacing in sidebar item * optimizations and fixes * fix endpoint path styling * remove margin * final fixes * change margin on small devices * generated OAS * fixes for mobile * added feedback modal * optimize dark mode button * fixed color mode useeffect * minimize dom size * use new style system * radius and spacing design system * design fixes * fix eslint errors * added meta files * change cron schedule * fix docusaurus configurations * added operating system to feedback data * change content directory name * fixes to contribution guidelines * revert renaming content * added api-reference to documentation workflow * fixes for search * added dark mode + fixes * oas fixes * handle bugs * added code examples for clients * changed tooltip text * change authentication to card * change page title based on selected section * redesigned mobile navbar * fix icon colors * fix key colors * fix medusa-js installation command * change external regex in algolia * change changeset * fix padding on mobile * fix hydration error * update depedencies
178 lines
4.9 KiB
Plaintext
178 lines
4.9 KiB
Plaintext
---
|
||
description: 'Learn how to prepare your development environment while using Medusa. This guide includes how to install Node.js, Git, Medusa CLI tool, and PostgreSQL.'
|
||
---
|
||
|
||
import Tabs from '@theme/Tabs';
|
||
import TabItem from '@theme/TabItem';
|
||
import MedusaCliTroubleshootingSection from '../../troubleshooting/cli-installation-errors/_reusable-section.mdx'
|
||
|
||
# Prepare Development Environment
|
||
|
||
This document includes the installation instructions for the tools required to use and run Medusa.
|
||
|
||
## Node.js
|
||
|
||
Node.js is the environment that makes it possible for Medusa to run, so you must install Node.js on your machine to start Medusa development.
|
||
|
||
:::caution
|
||
|
||
Medusa supports v16+ of Node.js. You can check your Node.js version using the following command:
|
||
|
||
```bash noReport
|
||
node -v
|
||
```
|
||
|
||
:::
|
||
|
||
<Tabs groupId="operating-systems" queryString="os">
|
||
<TabItem value="windows" label="Windows" default>
|
||
|
||
You can install the executable directly from [the Node.js website](https://nodejs.org/en/#home-downloadhead).
|
||
|
||
For other approaches, you can check out [Node.js’s guide](https://nodejs.org/en/download/package-manager/#windows-1).
|
||
|
||
</TabItem>
|
||
<TabItem value="linux" label="Linux">
|
||
|
||
You can use the following commands to install Node.js on Ubuntu:
|
||
|
||
```bash
|
||
#Ubuntu
|
||
sudo apt update
|
||
sudo apt install nodejs
|
||
```
|
||
|
||
For other Linux distributions, you can check out [Node.js’s guide](https://nodejs.org/en/download/package-manager/).
|
||
|
||
</TabItem>
|
||
<TabItem value="macos" label="macOS">
|
||
|
||
You can use the following commands to install Node.js on macOS:
|
||
|
||
<Tabs groupId="homebrew" isCodeTabs={true}>
|
||
<TabItem value="homebrew" label="Homebrew">
|
||
|
||
```bash
|
||
brew install node
|
||
```
|
||
|
||
</TabItem>
|
||
<TabItem value="no-homebrew" label="Without Homebrew">
|
||
|
||
```bash
|
||
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 "/"
|
||
```
|
||
|
||
</TabItem>
|
||
</Tabs>
|
||
|
||
For other approaches, you can check out [Node.js’s guide](https://nodejs.org/en/download/package-manager/#macos).
|
||
|
||
:::tip
|
||
|
||
Make sure that you have Xcode command line tools installed; if not, run the following command to install it: `xcode-select --install`
|
||
|
||
:::
|
||
</TabItem>
|
||
</Tabs>
|
||
|
||
## Git
|
||
|
||
Medusa uses Git behind the scenes when you create a new project. So, you'll have to install it on your machine to get started.
|
||
|
||
<Tabs groupId="operating-systems" queryString="os">
|
||
<TabItem value="windows" label="Windows" default>
|
||
|
||
To install Git on Windows, you need to [download the installable package](https://git-scm.com/download/win).
|
||
|
||
</TabItem>
|
||
<TabItem value="linux" label="Linux">
|
||
|
||
For Debian/Ubuntu, you can use the following command:
|
||
|
||
```bash
|
||
apt-get install git
|
||
```
|
||
|
||
As for other Linux distributions, please check [git’s guide](https://git-scm.com/download/linux).
|
||
|
||
</TabItem>
|
||
<TabItem value="macos" label="macOS">
|
||
|
||
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:
|
||
|
||
```bash
|
||
brew install git
|
||
```
|
||
|
||
You can also check out [git’s guide](https://git-scm.com/download/mac) for more installation options.
|
||
|
||
</TabItem>
|
||
</Tabs>
|
||
|
||
## PostgreSQL
|
||
|
||
The Medusa backend uses PostgreSQL to store data of your commerce system.
|
||
|
||
<Tabs groupId="operating-systems" queryString="os">
|
||
<TabItem value="windows" label="Windows">
|
||
|
||
You can [download the PostgreSQL Windows installer](https://www.postgresql.org/download/windows/) from their website.
|
||
|
||
</TabItem>
|
||
<TabItem value="linux" label="Linux">
|
||
|
||
If you’re using Ubuntu, you can use the following commands to download and install PostgreSQL:
|
||
|
||
```bash
|
||
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](https://www.postgresql.org/download/linux/).
|
||
|
||
</TabItem>
|
||
<TabItem value="macos" label="macOS">
|
||
|
||
You can download PostgreSQL on your macOS using [the installer on their website](https://www.postgresql.org/download/macosx/).
|
||
|
||
</TabItem>
|
||
</Tabs>
|
||
|
||
## (Optional) Medusa CLI
|
||
|
||
Medusa provides a CLI tool that can aid your through your Medusa development. You can install it globally, or you can use it through `npx`.
|
||
|
||
You can install Medusa’s CLI with the following command:
|
||
|
||
```bash npm2yarn
|
||
npm install @medusajs/medusa-cli -g
|
||
```
|
||
|
||
To confirm that the CLI tool was installed successfully, run the following command:
|
||
|
||
```bash noReport
|
||
medusa -v
|
||
```
|
||
|
||
### Troubleshooting Installation
|
||
|
||
<MedusaCliTroubleshootingSection />
|
||
|
||
---
|
||
|
||
## Install Medusa Backend
|
||
|
||
Once you're done installing the necessary tools in your environment, check out the [Medusa Backend Quickstart](./install.mdx) to install your Medusa backend.
|