> ## Documentation Index
> Fetch the complete documentation index at: https://amethyst.geoxor.moe/llms.txt
> Use this file to discover all available pages before exploring further.

# Setting up

## Prerequisites

### Shared

* Git
* Node.js v20.17.0 (LTS)
  * [nvm](https://github.com/nvm-sh/nvm) is encouraged for node version management
* Yarn

<Warning>
  Make sure you're using node.js v20.17.0 as any other version is unsupported and may cause unforeseen issues or unintended behaviour
</Warning>

#### Git

* For Windows: [https://git-scm.com/downloads/win](https://git-scm.com/downloads/win)
* Fedora: `dnf install git`
* Arch: `pacman -S git`
* Debian: `apt install git`

#### Node installation (nvm)

If you use nvm you can install Node.js v20.17.0 with the following commands:

```bash theme={null}
nvm install 20.17.0
```

```bash theme={null}
nvm use 20.17.0
```

#### Yarn Installation

After installing Node.js v20.17.0 please install yarn through npm:

```bash theme={null}
npm -g i yarn
```

<Info>
  The following command installs `yarn` as an global package in npm
</Info>

### Linux

* C/C++ development tools
  * Fedora/RHEL: `dnf group install c-development`
  * Arch: `pacman -S gcc g++`
  * Debian: `apt install gcc g++`
* libvips
  * Fedora/RHEL: `dnf install vips-devel`
  * Arch: `pacman -S libvips`
  * Debian: `apt install libvips-dev`

## Setup

Follow these steps to clone and run Amethyst on your development platform.

### Cloning the repository

<Info>
  If you have set up ssh for Github you can optionally clone the repository with ssh, if you do not know what that means, follow the HTTPS section.
</Info>

#### HTTPS

```bash theme={null}
git clone https://github.com/Geoxor/Amethyst
```

#### SSH

```bash theme={null}
git clone git@github.com:Geoxor/Amethyst.git
```

### Installing dependencies

The following command will install the required node dependencies:

```bash theme={null}
yarn
```

## Development

### Amethyst

The following command will launch the development version of Amethyst:

```bash theme={null}
yarn dev
```

### Documentation

The documentation is stored in `docs/` folder.

The following command will start local development server:

```bash theme={null}
yarn docs
```

### Linting

The following command will run the linter:

```bash theme={null}
yarn lint
```

The following command will attempt to fix linter issues automatically:

```bash theme={null}
yarn lint:fix
```

## Packaging

### Executable

The following command will package Amethyst for your platform:

```bash theme={null}
yarn package
```

Build files can be found from the `release/build` folder
