# Developer prerequisites

{% hint style="info" %}
**TL;DR: 4 requirements to fix and learn before we start.**

* [ ] Computer
* [ ] Bash
* [ ] Git
* [ ] Docker
  {% endhint %}

## Computer hardware and OS

**Requirement:** Intel Mac or PC (Windows with a CPU that supports virtualisation, or Linux)

**Why:** Naviga Web has been verified to work with Mac and PC with Intel CPU. Intel Mac is preferred but not required. [We have a list with hardware examples, proven to work fine with Naviga Web development.](https://docs.navigaglobal.com/everyware/developer-documentation/developer-prerequisites/developer-hardware-suggestions)

Running on Windows requires [some extra preparations](https://docs.navigaglobal.com/everyware/developer-documentation/developer-prerequisites/setup-on-windows).

Mac: **Verify** that your Mac has Intel processor with:  > About this Mac > Processor

<div align="left"><img src="https://3066417513-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-L_HLbYnejnUK_QQoiMy%2Fuploads%2FpK4E2GEWfE6LZV3ug8fI%2Fimage.png?alt=media&#x26;token=2eccbed7-bd91-41a0-8820-01e18a296ad1" alt=""></div>

PC with Windows: **Verify** that your Windows version and build match the [requirements for running WSL 2](https://docs.microsoft.com/sv-se/windows/wsl/install-manual#step-2---check-requirements-for-running-wsl-2) with: Control Panel > System

<div align="left"><img src="https://3066417513-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-L_HLbYnejnUK_QQoiMy%2Fuploads%2FwBFBBzWgwOnYEXuk764e%2FWindows%20system.png?alt=media&#x26;token=2d009882-a336-4757-926a-d543fb48b779" alt=""></div>

## Bash

**Requirement:** Bash is included with Mac, and with WSL on Windows.

**Why:** The make commands are needed to control the local Docker containers. Needed to do things like start, stop, init, update locally.

**Verify** that you have bash by running:

```bash
% bash --version 
GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin21)
Copyright (C) 2007 Free Software Foundation, Inc.
```

## Git

**Requirement:** Git client

**Why:** Git is used to access and version your code. [Working with git.](https://docs.navigaglobal.com/everyware/getting-started/deployment#git-branches)

**Verify** that you have git by running this in your code project folder:

```bash
% cd YOUR_PROJECT
% git status
On branch develop
Your branch is up to date with 'origin/develop'.

nothing to commit, working tree clean
```

## Docker

**Requirement:** Make sure you have [Docker installed](https://docs.docker.com/desktop/mac/install/) and working with Naviga Web containers.

**Why:** All that is needed to host a development instance of Naviga Web runs within Docker. This includes internal cache, database, proxy, PHP and web servers.

**Verify** that you have Docker by running:

```bash
% docker info
Client:
 Context:    default
 Debug Mode: false
 Plugins:
  buildx: Build with BuildKit (Docker Inc., v0.6.3)
  compose: Docker Compose (Docker Inc., v2.0.0)
  scan: Docker Scan (Docker Inc., v0.8.0)

Server:
 Containers: 0
  Running: 0
  Paused: 0
  Stopped: 0
...
```

## Node 10 (not required)

Starter kit asset (CSS/JavaScript) compilation use Gulp v3 requiring Node 10.23.1. If you need to compile assets locally, install [Node.js version 10](https://nodejs.org/) with [NVM](https://github.com/nvm-sh/nvm/blob/master/README.md).

**Workaround:** Without Node you can still use the bundled node version, within Docker container. It will take much longer to run.

**Verify** your Node version by running:

```bash
% node -v
v10.23.1
```
