---
title: 'Quickstart'
---
At the moment it is necessary to build the project locally - some dependencies
like redis and postgres can run as docker containers, but there is no docker
container for Postiz just yet.
## 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) & Redis
Make sure you have PostgreSQL installed on your machine.
#### Option A) Postgres and Redis as Single containers
You can install [Docker](https://www.docker.com/products/docker-desktop) and run:
```bash Terminal
docker run -e POSTGRES_USER=root -e POSTGRES_PASSWORD=your_password --name postgres -p 5432:5432 -d postgres
docker run --name redis -p 6379:6379 -d redis
```
#### Option B) Postgres and Redis as docker-compose
Download the [docker-compose.yaml file here](https://raw.githubusercontent.com/gitroomhq/postiz-app/main/docker-compose.dev.yaml),
or grab it from the repository in the next step.
```bash Terminal
docker compose -f "docker-compose.dev.yaml" up
```
## Build Postiz
```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
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