110 lines
3.1 KiB
Plaintext
110 lines
3.1 KiB
Plaintext
---
|
|
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.<br />
|
|
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.<br />
|
|
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
|
|
|
|
### Clone the repository
|
|
|
|
```bash
|
|
git clone https://github.com/gitroomhq/gitroom
|
|
```
|
|
|
|
### Copy environment variables
|
|
|
|
Copy the `.env.example` file to `.env` and fill in the values
|
|
|
|
```bash
|
|
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
|
|
```
|
|
|
|
### Install the dependencies
|
|
|
|
```bash
|
|
npm install
|
|
```
|
|
|
|
### Generate the prisma client and run the migrations
|
|
|
|
```bash
|
|
npm run prisma-db-push
|
|
```
|
|
|
|
### Run the project
|
|
|
|
```bash
|
|
npm run dev
|
|
```
|
|
|
|
You have to follow all the tabs in the "Developers" menu to install Gitroom
|
|
|
|
<CardGroup cols={2}>
|
|
<Card title="How it works" icon="screwdriver-wrench" href="/howitworks">
|
|
Learn the architecture of the project
|
|
</Card>
|
|
<Card title="Email notifications" icon="envelope" href="/emails">
|
|
Set up email for notifications
|
|
</Card>
|
|
<Card title="GitHub" icon="code-branch" href="/github">
|
|
Set up github for authentication and sync
|
|
</Card>
|
|
<Card title="Providers" icon="linkedin" href="/providers/x/x">
|
|
Set up providers such as Linkedin, X and Reddit
|
|
</Card>
|
|
</CardGroup>
|