Getting Started
Complete guide to install, configure, and launch your GrabURL marketplace
Prerequisites
Required software and services
Node.js 18+
Download from nodejs.org
PostgreSQL 14+
Database for storing domains, sales, and users
Redis (Optional)
For rate limiting and caching (recommended for production)
Quick Start (5 Minutes)
Step 1: Install Dependencies
# Navigate to project directory
cd ~/projects/graburl
# Install dependencies
npm installStep 2: Environment Variables
Copy .env.example to .env:
cp .env.example .envRequired Variables:
# Database
DATABASE_URL="postgresql://user:password@localhost:5432/graburl"
# Auth
NEXTAUTH_SECRET="your-secret-key-here"
NEXTAUTH_URL="http://localhost:3000"
# Email (Resend)
RESEND_API_KEY="re_..."
EMAIL_FROM="noreply@yourdomain.com"
# 2FA Encryption
TWO_FACTOR_ENCRYPTION_KEY="generate-with-command-below"Generate Encryption Key:
node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"Step 3: Database Setup
# Create database
createdb graburl
# Generate Prisma client
npx prisma generate
# Apply database schema
npx prisma db push
# (Optional) Seed with sample data
npm run db:seedStep 4: Start Development Server
npm run devOpen http://localhost:3000 in your browser
Step 5: Create Admin User
npm run admin:createFollow the prompts to create your first admin user
Optional: Redis Setup
Recommended for production environments
Redis provides distributed rate limiting and caching. Features gracefully fallback if Redis is unavailable.
Option 1: Docker (Recommended)
docker run -d -p 6379:6379 --name redis redis:7-alpineOption 2: Cloud (Upstash)
Sign up at upstash.com and add your Redis URL to
.env:REDIS_URL="redis://your-upstash-url"Next Steps
Common Issues
Database connection error
Verify PostgreSQL is running and DATABASE_URL is correct
Prisma client errors
Run
npx prisma generate againPort 3000 already in use
Change port:
PORT=3001 npm run dev