---
title: "Set up freeCodeCamp on Windows Subsystem for Linux (WSL)"
---

> Documentation Index
> Fetch the complete documentation index at: https://contribute.freecodecamp.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Set up freeCodeCamp on Windows Subsystem for Linux (WSL)

This guide covers some common steps with the setup of WSL2.

Once some of the common issues with WSL2 are addressed, you should be able to follow [this local setup guide](/how-to-setup-freecodecamp-locally/) to work with freeCodeCamp on Windows running a WSL distro like Ubuntu.

> **Note**
>
> Before you follow these instructions make sure your system meets the requirements.

> **System Requirements**
>
> - **Hardware**:
>   - A fast CPU (6+ cores)
>   - At least 12+ GB RAM
>   - 20+ GB of free disk space
>   - (Optional) 30-50 Mbps internet connection
> - **Operating System**: A version of Windows that meets the [WSL system requirements](https://learn.microsoft.com/en-us/windows/wsl/install).
> - **WSL**: Your Linux distribution must run in WSL 2 mode.

## Enable WSL

Follow the instructions on the [official documentation](https://docs.microsoft.com/en-us/windows/wsl/install-win10) to install WSL2.

## Install Ubuntu

1. We recommend using an Ubuntu LTS release supported by [Playwright](https://playwright.dev/docs/intro#system-requirements) with WSL2.

   Playwright, the end-to-end testing library used by freeCodeCamp, supports specific Ubuntu and Debian releases. Check its system requirements before choosing a release.

   You may use other non-Debian-based distributions, they all come with their own 'gotchas' that are beyond the scope of this guide.

   Here is how you can [run a linux flavour](https://learn.microsoft.com/en-us/windows/wsl/install#ways-to-run-multiple-linux-distributions-with-wsl) of your choice

2. Update the dependencies for the OS

   ```bash
   sudo apt update
   sudo apt upgrade -y

   # cleanup
   sudo apt autoremove -y
   ```

## Set up Git

Check that Git is installed in your Ubuntu distribution:

```bash
git --version
```

If Git is not installed, run `sudo apt install git`.

(Optional but recommended) You can now proceed to [setting up your ssh keys](https://help.github.com/articles/generating-an-ssh-key) with GitHub.

## Installing a Code Editor

We recommend installing [Visual Studio Code](https://code.visualstudio.com) on Windows with its WSL extension. Follow the [official VS Code WSL guide](https://code.visualstudio.com/docs/remote/wsl) to connect to your Ubuntu distribution.

**You will edit and store your code in your Ubuntu distribution, with VS Code installed on Windows.**

## Installing Node.js and pnpm

We recommend you install the LTS release for Node.js with [node version manager - `nvm`](https://github.com/nvm-sh/nvm#installing-and-updating). Once installed use this command to install and use the latest Node.js LTS version:

```bash
nvm install --lts
```

For instructions on installing and using a different version of Node.js, please refer to the [nvm docs](https://github.com/nvm-sh/nvm#usage).

Node.js comes bundled with `npm`, which you can use to install `pnpm`:

```bash
npm install -g pnpm
```

## Optimize memory allocation

The default settings for your WSL installation can vary. Allocate memory and swap space according to your workload and the resources available on your machine.

Follow the [official WSL configuration guide](https://learn.microsoft.com/en-us/windows/wsl/wsl-config) to configure these limits and apply your changes.

## Set up freeCodeCamp Locally

Now that you have installed the pre-requisites, follow [our local setup guide](/how-to-setup-freecodecamp-locally/) to clone, install and set up freeCodeCamp locally on your machine.

## Troubleshooting

Here are some useful links:

- Official FAQ for [Windows Subsystem for Linux](https://docs.microsoft.com/en-us/windows/wsl/faq).
- Getting help from [our community](/troubleshooting-development-issues/#getting-help).

> **More Help**
>
> We are unable to provide help related to WSL and installing a linux system on it beyond this guide since it is out of scope for this project.
>
> If you face any issues with the setup, we highly recommend using online resources like StackOverflow, Reddit etc.

Source: https://contribute.freecodecamp.org/how-to-setup-wsl/index.mdx
