Getting Started

Complete visual guide to install, configure, and launch your GrabURL marketplace in 5 minutes

New to GrabURL?
This guide will walk you through the complete setup process with screenshots and code examples. If you encounter any issues, check our FAQ page or contact support.

Prerequisites

Required Software
Install these before proceeding
Node.js 18 or higher
Download from nodejs.org
node --version\n# Should output: v18.x.x or higher
PostgreSQL 14+
Database for storing domains, sales, and users. Download from postgresql.org
psql --version\n# Should output: psql (PostgreSQL) 14.x or higher
Redis (Optional but Recommended)
For rate limiting and caching. Can be added later if needed.

5-Minute Quick Start

Pro Tip
Open your terminal and follow these steps in order. Each command builds on the previous one.
1

Clone and Navigate to Project

First, navigate to your projects directory and ensure you have the GrabURL repository.

cd ~/projects/graburl
2

Install Dependencies

Install all required npm packages. This will take a few minutes.

npm install # You should see output like: # added 523 packages in 45s
3

Configure Environment

Copy the example environment file and update it with your credentials.

cp .env.example .env # Then edit .env with your favorite editor nano .env
4

Setup Database

Create your PostgreSQL database and run migrations.

createdb graburl npx prisma generate npx prisma db push
5

Start Development Server

Launch the Next.js development server. Your site will be available at http://localhost:3000

npm run dev # Server running at: # http://localhost:3000

Environment Configuration

Required Environment Variables
Add these to your .env file
Security Notice
Never commit your .env file to version control! It contains sensitive credentials.

Database Connection

.env
DATABASE_URL="postgresql://username:password@localhost:5432/graburl"

# Replace:
# - username: your PostgreSQL username
# - password: your PostgreSQL password
# - localhost: your database host (use localhost for local development)

Authentication

.env
NEXTAUTH_SECRET="your-super-secret-key-here"
NEXTAUTH_URL="http://localhost:3000"

# Generate a secure secret:
# Run this command and paste the output:
node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"

Email Service (Resend)

.env
RESEND_API_KEY="re_..."
EMAIL_FROM="noreply@yourdomain.com"

# Get your API key from: https://resend.com

2FA Encryption

.env
TWO_FACTOR_ENCRYPTION_KEY="generate-with-command-below"

# Generate:
node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"
Optional Variables
For production deployment, you'll also need Stripe/Razorpay keys and Redis URL. See the Integrations guide for details.

Database Setup

Create Database
# Create a new PostgreSQL database
createdb graburl

# Verify it was created
psql -l | grep graburl
Run Migrations

Generate the Prisma client and push the schema to your database:

# Generate Prisma Client
npx prisma generate

# Apply schema to database
npx prisma db push

# (Optional) Open Prisma Studio to view your database
npx prisma studio
Success!
If you see "Your database is now in sync with your schema", you're ready to go!
Optional: Redis Setup
Recommended for production - adds caching and rate limiting

Option 1: Docker (Recommended)

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

Option 2: Cloud (Upstash)

1. Sign up at upstash.com
2. Create a Redis database
3. Copy the connection string

.env
REDIS_URL="redis://your-upstash-url"
Without Redis, the app will use in-memory fallbacks. Features will work but won't scale across multiple servers.

Create Your First Admin User

npm run admin:create

Follow the prompts to create your admin account. You'll use this to access the admin dashboard at /admin

Start the Development Server

npm run dev
You're Live!
Open your browser to http://localhost:3000 to see your marketplace!
Common Issues & Solutions
Database connection error

Verify PostgreSQL is running: pg_isready
Check your DATABASE_URL format in .env

Prisma client errors

Regenerate the client: npx prisma generate

Port 3000 already in use

Use a different port: PORT=3001 npm run dev

Environment variables not loading

Restart your development server after changing .env
Ensure the file is named exactly .env (not .env.txt)

Need Help?

If you're still having issues: