Installation
This guide covers the complete installation process for PIPELINE, including system requirements, database setup, environment configuration, and verification steps.Looking for a faster setup? Check out the Quickstart guide for a streamlined 5-10 minute installation.
System Requirements
Required
- Node.js ≥ 18.0.0 (or Bun ≥ 1.0.0)
- Git for version control
- PostgreSQL database (via Supabase)
- Modern browser (Chrome, Firefox, Safari, Edge)
Recommended
- Bun runtime for optimal performance
- Supabase CLI for database migrations
- VS Code with TypeScript extensions
- macOS
- Linux
- Windows
Project Setup
1. Clone the Repository
2. Install Dependencies
PIPELINE uses Bun for optimal performance. While npm/yarn/pnpm should work, Bun is the officially supported runtime.
3. Verify Installation
Database Setup
PIPELINE uses Supabase (managed PostgreSQL) for data storage with Row-Level Security (RLS) policies.1. Create Supabase Project
Sign up for Supabase
- Go to supabase.com
- Click Start your project
- Sign in with GitHub, GitLab, or email
Create a new project
- Click New Project
- Choose your organization (or create one)
- Fill in project details:
- Name:
pipeline-jobs(or your preferred name) - Database Password: Generate a strong password
- Region: Choose closest to your location
- Pricing Plan: Free tier works for development
- Name:
- Click Create new project
2. Get API Credentials
Navigate to API settings
In your Supabase project dashboard:
- Click Settings (gear icon) in the sidebar
- Click API under Project Settings
3. Apply Database Migrations
PIPELINE includes 14 migrations that create:- 6 tables (jobs, events, insights, scraper_runs, audit_log, audit_alerts)
- 5 enums (job_status, job_source, event_type, insight_type, scraper_status)
- 20+ indexes for query performance
- RLS policies for data security
- Triggers for automation
- Audit logging for change tracking
- Full-text search with weighting
- Supabase CLI (Recommended)
- Supabase Dashboard
The first time you run
supabase login, it will open your browser for authentication.4. Verify Database Setup
Check tables exist
In Supabase Dashboard → Table Editor, verify these tables:
- ✅
jobs- Job applications - ✅
events- Activity timeline - ✅
insights- AI-generated insights - ✅
scraper_runs- Scraper telemetry - ✅
audit_log- Change history - ✅
audit_alerts- Security alerts
Verify RLS policies
Click on any table → Policies tab. You should see policies like:
Users can view own jobsUsers can insert own jobsUsers can update own jobsUsers can delete own jobs
Environment Configuration
1. Create Environment File
2. Configure Required Variables
Open.env.local and fill in your Supabase credentials:
.env.local
Only Supabase variables are required to get started. AI services, Discord, and other integrations are optional.
3. Optional: Configure AI Services
For AI match scoring and insights (coming in Phase 2):.env.local
4. Optional: Configure Integrations
.env.local
Development Server
Start the Server
- Local: http://localhost:3000
- Network:
http://YOUR_LOCAL_IP:3000
The dev server includes:
- ⚡ Fast Refresh for instant updates
- 🔍 TypeScript type checking
- 🎨 Tailwind CSS hot reload
- 🐛 Detailed error overlay
Verify Installation
Open in browser
Navigate to http://localhost:3000You should see the PIPELINE landing page with:
- Hero section with “Treat job hunting like DevOps”
- Sign Up / Log In buttons
- Terminal aesthetic
Post-Installation Setup
1. Configure Email Confirmations (Development)
By default, Supabase requires email confirmation for new users:- Disable for Development
- Configure SMTP
For local development, you can disable email confirmation:
- Go to Supabase Dashboard → Authentication → Settings
- Scroll to User Signups
- Toggle Enable email confirmations to OFF
- Click Save
2. Generate TypeScript Types (Optional)
Generate TypeScript types from your database schema:Types are already included in the repository and match migration 014. You only need to regenerate if you modify the schema.
3. Run Tests (Optional)
Verify everything is working:4. Enable RLS Testing (Optional)
Test Row-Level Security policies:Building for Production
Create Production Build
- Type-checks all TypeScript files
- Compiles Next.js pages and API routes
- Optimizes images and assets
- Generates static pages where possible
- Creates production-ready bundles
For deployment instructions, see the Deployment Guide.
Project Structure
Understanding the codebase:Troubleshooting
Common Installation Issues
Bun installation fails
Bun installation fails
macOS/Linux:Windows:
- Ensure PowerShell execution policy allows scripts
- Run PowerShell as Administrator
- Try WSL2 if issues persist
npm/bun install hangs
npm/bun install hangs
TypeScript errors after installation
TypeScript errors after installation
Supabase CLI not found
Supabase CLI not found
macOS/Linux:Windows:
Database migrations fail
Database migrations fail
Check connection:Re-link project:Apply migrations with debug:Reset and retry (destructive):
Environment variables not loading
Environment variables not loading
Check file name:Verify values:
- Must be
.env.local(not.envor.env.development)
Port 3000 already in use
Port 3000 already in use
Find and kill process:Or use different port:
Getting Help
If you’re still having issues:- Check existing issues: GitHub Issues
- Review documentation: See docs/
- Join Discord: Get help from the community
- Open an issue: Provide details about your environment and error messages
Next Steps
Configuration
Configure AI services, integrations, and feature flags.
Architecture
Learn about PIPELINE’s architecture and design decisions.
API Reference
Explore API endpoints and data models.
Deployment
Deploy PIPELINE to production (Vercel, Netlify, self-hosted).
Development Workflow
Recommended Setup
-
VS Code Extensions:
- ESLint
- Prettier
- Tailwind CSS IntelliSense
- TypeScript and JavaScript Language Features
-
Git Hooks:
-
Database Backups: