--- 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 i.g. postgresql://postiz-local:postiz-local-pwd@0.0.0.0:5432/postiz-db-local" 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