# Setup WSL2 Environment for Windows

**Pre-requisite**&#x20;

* OS: Windows 11
* graphics cards installer compatible on your device

**Steps**

1. [Install WSL](https://docs.microsoft.com/en-us/windows/wsl/install)&#x20;

   `wsl --install`
2. Install **Ubuntu 20.04 LTS** from Microsoft store&#x20;

   **Note:** *This will be the default terminal that we will be using so make sure all the commands are run under Ubuntu terminal*
3. Set [SSH key](https://docs.github.com/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent)&#x20;

   `ssh-keygen -t ed25519 -C "your_email@example.com"`\
   \
   1\. When you're prompted to "Enter a file in which to save the key," press Enter. This accepts the default file location.\
   2\. At the prompt, type a secure passphrase.\
   \
   go to the file directory where the ssh key is saved\
   `/c/Users/you/.ssh/id_algorithm`\
   \
   Go to your **Github settings > SSH Key & GPG Keys** \
   then Paste the generated key under .ssh folder
4. Install **Remote-wsl** on your VSCode extension
5. run this command `sudo apt update && sudo apt dist-upgrade`
6. Clone Project repository using SSH&#x20;
7. On your root folder \
   run this command

   ```
   sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose^^
   ```
8. Install [Docker ](https://docs.docker.com/desktop/windows/install/)inside wsl
9. Install [AWS CLI ](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)
10. Configure aws \
    `aws configure --profile identifi_qa`\
    **access key**: AKIAR73M5IQAJDI7TGPN\
    **secret key**: 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\
    **region**: ap-southeast-1\
    **output**: json
11. Run aws login <br>

    ```
    aws ecr get-login-password --region ap-southeast-1 | docker login --username AWS --password-stdin 137130492928.dkr.ecr.ap-southeast-1.amazonaws.com
    ```
12. run the following on your terminal\
    **Note:** *If you may encounter some unknown commands all you have to to is install it*

    ```
    sudo usermod -aG docker ${USER}
    ```

    ```
    sudo apt-get update -y
    ```

    ```
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    ```

    ```
    sudo apt-key fingerprint 0EBFCD88
    ```

    ```
    sudo add-apt-repository \
       "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
       $(lsb_release -cs) \
       stable"
    ```

    ```
    sudo apt-get update -y
    ```

    ```
    sudo apt-get install -y docker-ce
    ```

    ```
    sudo e2fsck /dev/sdb -y
    ```

    ```
    sudo e2fsck /dev/sdb -p
    ```

    ```
    wsl --shutdown
    ```

    ```
    wsl.exe -l -v
    ```

    ```
    wsl --set-default ubuntu
    ```

    ```
    ls -lad /tmp
    ```

    ```
    sudo usermod -aG docker $USER
    ```

    ```
    aws ecr get-login-password --region ap-southeast-1 | docker login --username AWS --password-stdin 137130492928.dkr.ecr.ap-southeast-1.amazonaws.com
    ```

    ```
    sudo groupadd docker
    ```

    ```
    sudo usermod -aG docker ${USER}
    ```

    ```
    su -s ${USER}
    ```

    ```
    docker run hello-world
    ```

    ```
    aws ecr get-login-password --region ap-southeast-1 | docker login --username AWS --password-stdin 137130492928.dkr.ecr.ap-southeast-1.amazonaws.com
    ```

    ```
    sudo docker-compose up -d
    ```

    Open the test folder directory of the project and install the following packages<br>

    ```
    npm install
    ```

    ```
    sudo apt install libgtk-3-0
    ```

    ```
    sudo apt-get install libatk1.0-0
    ```

    ```
    sudo apt-get install -y libgbm-dev
    ```

    ```
    sudo apt install xvfb
    ```
13.

````
```
````

````
sudo apt-get install curl
```

```
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash
```

```
command -v nvm
```
````

14\. Install required node version use in the project then check node and npm version

````
```
node -v 
```

```
npm --version
```
````

15\. Run Docker command\
`docker-compose down` : to stop running the containers\
`docker-compose pull` : to pull the latest docker image of the project\
`docker-compose up -d` : to start and run the application\
`docker container ls` : to verify if the docker container is running
16\. Check if you run able to run the test by running `npx cypress open`
17\. Visit on your browser the project application: localhost:9000/login
