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.

PostgresSQL (or any other SQL database)

Make sure you have PostgreSQL installed on your machine.
If you don’t, you can install Docker and run:

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 and run:

docker run --name redis -p 6379:6379 -d redis

Installation

1

Clone the repository

Terminal
git clone https://github.com/gitroomhq/gitroom
2

Copy environment variables

Copy the .env.example file to .env and fill in the values

.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
3

Install the dependencies

Terminal
npm install
4

Setup postgres & redis via docker compose

Terminal
docker compose -f "docker-compose.dev.yaml" up
5

Generate the prisma client and run the migrations

Terminal
npm run prisma-db-push
6

Run the project

Terminal
npm run dev

You have to follow all the tabs in the “Developers” menu to install Gitroom