---
title: 'Quickstart'
---
## Prerequisites
To run the project you need to have multiple things:
- Node.js (version 18+)
- PostgreSQL (or any other SQL database)
- Redis
- Resend account
- Cloudflare R2 for uploads (optional, can use local machine)
- Social Media Client and Secret (more details later)
### NodeJS (version 18+)
A complete guide of how to install NodeJS can be found [here](https://nodejs.org/en/download/).
### PostgreSQL (or any other SQL database)
Make sure you have PostgreSQL installed on your machine.
If you don't, you can install [Docker](https://www.docker.com/products/docker-desktop) and run:
```bash
docker run -e POSTGRES_USER=root -e POSTGRES_PASSWORD=your_password --name postgres -p 5432:5432 -d postgres
```
### Redis
Make sure you have Redis installed on your machine.
If you don't, you can install [Docker](https://www.docker.com/products/docker-desktop) and run:
```bash
docker run --name redis -p 6379:6379 -d redis
```
## Installation
```bash Terminal
git clone https://github.com/gitroomhq/gitroom
```
Copy the `.env.example` file to `.env` and fill in the values
```bash .env
DATABASE_URL="postgres database URL"
REDIS_URL="redis database URL"
JWT_SECRET="random string for your JWT secret, make it long"
FRONTEND_URL="By default: http://localhost:4200"
NEXT_PUBLIC_BACKEND_URL="By default: http://localhost:3000"
BACKEND_INTERNAL_URL="If you use docker, you might want something like: http://backend:3000"
X_API_KEY="Twitter API key for normal oAuth not oAuth2"
X_API_SECRET="Twitter API secret for normal oAuth not oAuth2"
LINKEDIN_CLIENT_ID="Linkedin Client ID"
LINKEDIN_CLIENT_SECRET="Linkedin Client Secret"
REDDIT_CLIENT_ID="Reddit Client ID"
REDDIT_CLIENT_SECRET="Linkedin Client Secret"
GITHUB_CLIENT_ID="GitHub Client ID"
GITHUB_CLIENT_SECRET="GitHub Client Secret"
RESEND_API_KEY="Resend API KEY"
UPLOAD_DIRECTORY="optional: your upload directory path if you host your files locally"
NEXT_PUBLIC_UPLOAD_STATIC_DIRECTORY="optional: your upload directory slug if you host your files locally"
CLOUDFLARE_ACCOUNT_ID="Cloudflare R2 Account ID"
CLOUDFLARE_ACCESS_KEY="Cloudflare R2 Access Key"
CLOUDFLARE_SECRET_ACCESS_KEY="Cloudflare R2 Secret Access Key"
CLOUDFLARE_BUCKETNAME="Cloudflare R2 Bucket Name"
CLOUDFLARE_BUCKET_URL="Cloudflare R2 Backet URL"
NX_ADD_PLUGINS=false
IS_GENERAL="true" # required for now
```
```bash Terminal
npm install
```
```bash Terminal
docker compose -f "docker-compose.dev.yaml" up
```
```bash Terminal
npm run prisma-db-push
```
```bash Terminal
npm run dev
```
You have to follow all the tabs in the "Developers" menu to install Gitroom
Learn the architecture of the project
Set up email for notifications
Set up github for authentication and sync
Set up providers such as Linkedin, X and Reddit