--- title: 'Quickstart' --- ## Prerequisites To run the project you need to have multiple things: - Node.js (version 18+) - PostgresSQL (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/). ### PostgresSQL (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 ``` ```bash Terminal npm install ``` ```bash Terminal npm run prisma-db-push ``` ```bash Terminal docker compose -f "docker-compose.dev.yaml" up ``` ```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