docs: enhance contributing guidelines with detailed setup instructions and environment variable configuration

This commit is contained in:
Maze Winther
2025-06-24 01:55:40 +02:00
parent 5bff26d3e5
commit f2879be973

View File

@ -13,30 +13,101 @@ Thank you for your interest in contributing to OpenCut! This document provides g
## Development Setup ## Development Setup
### Prerequisites ### Prerequisites
- Node.js 18+ - Node.js 18+
- Bun (latest version) - Bun (latest version)
- Docker (for local database) - Docker (for local database)
### Local Development ### Local Development
1. Copy `.env.example` to `.env.local` and configure your environment variables
2. Start the database: `docker-compose up -d` (run from project root) 1. Start the database and Redis services:
3. Navigate to the web app: `cd apps/web`
4. Run database migrations: `bun run db:migrate` ```bash
5. Start the development server: `bun run dev` # From project root
docker-compose up -d
```
2. Navigate to the web app directory:
```bash
cd apps/web
```
3. Copy `.env.example` to `.env.local`:
```bash
# Unix/Linux/Mac
cp .env.example .env.local
# Windows Command Prompt
copy .env.example .env.local
# Windows PowerShell
Copy-Item .env.example .env.local
```
4. Configure required environment variables in `.env.local`:
**Required Variables:**
```bash
# Database (matches docker-compose.yaml)
DATABASE_URL="postgresql://opencut:opencutthegoat@localhost:5432/opencut"
# Generate a secure secret for Better Auth
BETTER_AUTH_SECRET="your-generated-secret-here"
BETTER_AUTH_URL="http://localhost:3000"
# Redis (matches docker-compose.yaml)
UPSTASH_REDIS_REST_URL="http://localhost:8079"
UPSTASH_REDIS_REST_TOKEN="example_token"
# Development
NODE_ENV="development"
```
**Generate BETTER_AUTH_SECRET:**
```bash
# Unix/Linux/Mac
openssl rand -base64 32
# Windows PowerShell (simple method)
[System.Web.Security.Membership]::GeneratePassword(32, 0)
# Cross-platform (using Node.js)
node -e "console.log(require('crypto').randomBytes(32).toString('base64'))"
# Or use an online generator: https://generate-secret.vercel.app/32
```
**Optional Variables (for Google OAuth):**
```bash
# Only needed if you want to test Google login
GOOGLE_CLIENT_ID="your-google-client-id"
GOOGLE_CLIENT_SECRET="your-google-client-secret"
```
5. Run database migrations: `bun run db:migrate`
6. Start the development server: `bun run dev`
## How to Contribute ## How to Contribute
### Reporting Bugs ### Reporting Bugs
- Use the bug report template - Use the bug report template
- Include steps to reproduce - Include steps to reproduce
- Provide screenshots if applicable - Provide screenshots if applicable
### Suggesting Features ### Suggesting Features
- Use the feature request template - Use the feature request template
- Explain the use case - Explain the use case
- Consider implementation details - Consider implementation details
### Code Contributions ### Code Contributions
1. Create a new branch: `git checkout -b feature/your-feature-name` 1. Create a new branch: `git checkout -b feature/your-feature-name`
2. Make your changes 2. Make your changes
3. Navigate to the web app directory: `cd apps/web` 3. Navigate to the web app directory: `cd apps/web`