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

# Quickstart

> Get your Chartbrew set up locally or in the cloud

## Prerequisites

**NodeJS** v20+ <i>(use only even versions)</i>

**NPM**

**MySQL** (v5+) or **PostgreSQL** (12.5+)

**Redis** (v6+)

## Getting Started

### Installation & Setup

<Note>
  The setup doesn't work in Windows PowerShell or cmd.exe. If you're using Windows, please use a bash command line like [Git Bash](https://git-scm.com/downloads) or [cygwin](https://www.cygwin.com/install.html)
</Note>

#### Create a Chartbrew database

Chartbrew works with both MySQL and PostgreSQL. You can use any of the two, but you need to create a database first.

[Follow the instruction here.](/database-configuration/#mysql)

#### Get and setup the project

```sh theme={null}
git clone https://github.com/chartbrew/chartbrew.git
cd chartbrew && npm run setup
```

### Set up the environment variables

All the environment variables that need to be set are found in the `.env-template` file in the root folder of the project. If you ran the setup above, you should already have a `.env` file there as well. If not, copy the template file and rename it `.env`.

Make sure you fill out the `production` and `development` sections accordingly.

[See the full list of variables here](/environment-variables)

### Run the project locally

Open two terminals, one for front-end and the other for back-end.

```sh theme={null}
# frontend
cd client/
npm run start

# backend
cd server/
npm run start-dev
```

### Set up Redis for automatic dataset updates

Chartbrew uses queues to update datasets automatically and it uses [Redis](https://redis.io/) to achieve this. In order for your datasets and charts to update automatically, you need to set up Redis first.

[Find out how to set up Redis on various platforms here.](https://redis.io/docs/latest/operate/oss_and_stack/install/install-redis/).

## Tech stack

**Backend**

* [NodeJS](https://nodejs.org/en/)
* [ExpressJS](https://expressjs.com/)
* [Sequelize ORM](https://sequelize.org/)
* [Nodemailer](https://nodemailer.com/about/)
* [BullMQ](https://github.com/OptimalBits/bull)
* [Redis](https://redis.io/)

**Frontend**

* [ReactJS](https://reactjs.org/)
* [Redux](https://redux.js.org/)
* [NextUI](https://nextui.org/)
* [ChartJs](https://www.chartjs.org/)

**Docs**

* [Vitepress](https://github.com/vuejs/vitepress)

## Environment variables

[See the full list of variables here](/environment-variables)
