> For the complete documentation index, see [llms.txt](https://docs.create-magento-app.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.create-magento-app.com/v1/getting-started/prerequisites/windows-requirements.md).

# Windows requirements

## Using WSL

{% hint style="info" %}
Since **magento-scripts\@1.6.0**
{% endhint %}

### 1. Install WSL

To install WSL2 on Windows follow [this guide](< https://docs.microsoft.com/en-us/windows/wsl/install-win10>).

{% hint style="info" %}
For [step #6 Install your Linux distribution of choice](https://docs.microsoft.com/en-us/windows/wsl/install-win10#step-6---install-your-linux-distribution-of-choice) we recommend choosing the latest Ubuntu release, as it has the best compatibility on Windows.
{% endhint %}

### 1.1 Install Windows Terminal (Optional)

On Windows with WSL, it is recommended to use [Windows Terminal](https://docs.microsoft.com/en-us/windows/terminal/get-started).\
By using it you can open different shells and access different WSL distros in the same place, which is quite handy.

### 1.2 Install Visual Studio Code (Optional)

VSCode has excellent integration with WSL, so you can run commands, edit code and debug it inside a single editor.\
[Developing in WSL](https://code.visualstudio.com/docs/remote/wsl).

![](/files/-McUVj3wq2v7f-su7w7s)

### 2. Install Docker Desktop for Windows

Download and install [Docker Desktop for Windows](https://hub.docker.com/editions/community/docker-ce-desktop-windows).

### 3. Enable WSL 2 integration in Docker Desktop settings

Go to **Docker Desktop settings > General** and make sure that **Use the WSL 2 based engine** checkbox is checked.

![](/files/-McUOZ_owueFFwA0YvX7)

Then, go to Resources >WSL Integration and enable WSL integration into your distro.

![](/files/-McUOmfYntDg4h1lLMRN)

Toggle your distro and click **Apply & Restart**.

### 4. Install platform-specific dependencies:

{% hint style="warning" %}
Since **magento-scripts 1.4.0** CMA will also check installed dependencies before starting the application, and if they are missing will provide instructions on how to install them!
{% endhint %}

Full list of dependencies for each Linux distro available [here](/v1/getting-started/prerequisites/installation-on-linux.md#1-install-platform-specific-dependencies).

{% tabs %}
{% tab title="Ubuntu" %}

```bash
apt-get install \
    libcurl4-openssl-dev \
    libonig-dev \
    libjpeg-dev \
    libjpeg8-dev \
    libjpeg-turbo8-dev \
    libpng-dev \
    libicu-dev \
    libfreetype6-dev \
    libzip-dev \
    libssl-dev \
    build-essential \
    libbz2-dev \
    libreadline-dev \
    libsqlite3-dev \
    libssl-dev \
    libxml2-dev \
    libxslt1-dev \
    libonig-dev \
    php-cli \
    php-bz2 \
    pkg-config \
    autoconf \
    libsodium-dev
```

{% endtab %}
{% endtabs %}

### 5. Install PHPBrew

{% hint style="warning" %}
Since **magento-scripts\@1.7.0** this part will be done automatically.
{% endhint %}

To install PHPBrew on Linux you will need to follow [installation](https://github.com/phpbrew/phpbrew#installation) instructions or use the commands below:

```bash
# Download PHPBrew
curl -L -O https://github.com/phpbrew/phpbrew/releases/latest/download/phpbrew.phar

# Make it executable
chmod +x phpbrew.phar

# Move PHPBrew binary to system folder.
sudo mv phpbrew.phar /usr/local/bin/phpbrew

# Initialize PHPBrew
phpbrew init
```

### 6. Prepare the environment

To work with Magento you need access keys to access the Magento repository.

1. Go to <https://marketplace.magento.com/customer/accessKeys/>
2. Generate Access Keypair

Now you have a **public key** and **private key** values.

To use them you have 2 options:

1. **Use `COMPOSER_AUTH` environmental variable**

   This option is used as a global variable on your machine.

   Replace `<public key>` and `<private key>` with your public and private key.

   ```bash
   export COMPOSER_AUTH='{
       "http-basic":{
           "repo.magento.com": {
               "username": "<public key>",
               "password": "<private key>"
           }
       }
   }'
   ```

   Add the result to your `.bashrc` or `.zshrc` and reload your terminal.
2. **Use auth.json file**

   This option is used on a per-project basis, so your credentials will be always correct no matter which project you are working on.

   Create `auth.json` file in the root of your project and inside put the following content using the same `<public key>` and `<private key>` you obtained before:

   ```
   {
       "http-basic":{
           "repo.magento.com": {
               "username": "<public key>",
               "password": "<private key>"
           }
       }
   }
   ```

### 7. Start your application

{% hint style="info" %}
Start command description can be found [here](/v1/getting-started/available-commands/start.md).\
To access Magento CLI, Composer and PHP use [cli](/v1/getting-started/available-commands/cli.md) command.
{% endhint %}

## Using VM

As an option, you can run CMA on Windows using a Linux VM running in [Virtual Box](https://www.virtualbox.org/) (free) or [VMWare Workstation Player](https://www.vmware.com/products/workstation-player.html) (paid).\
We recommend using [Ubuntu](https://ubuntu.com/download/desktop) or [Fedora](https://getfedora.org/en/workstation/download/) distros, although [Linux Mint](https://linuxmint.com/download.php), [CentOS](https://www.centos.org/download/) and distros based on `apt` , `pacman`, `yum`, `dnf` package managers should also work.\
[Installation guide](/v1/getting-started/prerequisites/installation-on-linux.md) for this option is the same as installing on a common Linux platform.
