Self-Hosting
Deploy Parser Run to your own infrastructure.
Requirements
- • Node.js 22+ (or Docker)
- • PostgreSQL 14+ database
- • 1GB RAM minimum (2GB recommended)
- • OpenAI API key for the agent
Docker Deployment
The easiest way to deploy Parser Run is with Docker.
Docker Compose
docker-compose.yml
version: "3.8"
services:
parserrun:
image: parserrun/app:latest
ports:
- "3000:3000"
environment:
- DATABASE_URL=postgresql://postgres:password@db:5432/parserrun
- OPENAI_API_KEY=sk-...
- AUTH_SECRET=your-secret-key
- NODE_ENV=production
depends_on:
- db
db:
image: postgres:16-alpine
environment:
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=password
- POSTGRES_DB=parserrun
volumes:
- postgres_data:/var/lib/postgresql/data
volumes:
postgres_data:Run
docker-compose up -dAccess Parser Run at http://localhost:3000
Vercel Deployment
Deploy to Vercel with a managed PostgreSQL database (Neon recommended).
1. Create Neon Database
Sign up at neon.tech and create a new project. Copy the connection string.
2. Deploy from GitHub
# Fork the repo, then:
vercel --prod3. Add Environment Variables
In Vercel dashboard, add all required environment variables (see below).
Manual Node.js
Deploy on any server with Node.js.
# Clone repository
git clone https://github.com/parser-run/parser-mono
cd parser-mono
# Install dependencies
pnpm install
# Build
pnpm build
# Set environment variables
export DATABASE_URL="postgresql://..."
export OPENAI_API_KEY="sk-..."
export AUTH_SECRET="your-secret"
export NODE_ENV="production"
# Run migrations
pnpm db:push
# Start server
pnpm startEnvironment Variables
| Variable | Required | Description |
|---|---|---|
| DATABASE_URL | Yes | PostgreSQL connection string |
| OPENAI_API_KEY | Yes | OpenAI API key for the agent |
| AUTH_SECRET | Yes | Secret for session encryption |
| NODE_ENV | No | Environment (production, development) |
| GOOGLE_CLIENT_ID | No | Google OAuth client ID |
| GOOGLE_CLIENT_SECRET | No | Google OAuth client secret |
| GITHUB_CLIENT_ID | No | GitHub OAuth client ID |
| GITHUB_CLIENT_SECRET | No | GitHub OAuth client secret |
| STRIPE_SECRET_KEY | No | Stripe key for billing |
| NEON_API_KEY | No | Neon API for database provisioning |
Database Setup
Parser Run uses Drizzle ORM for database management.
Initialize Tables
# Push schema to database (creates tables)
pnpm db:push
# Or generate and run migrations
pnpm db:generate
pnpm db:migrateDatabase Tables
- •
users— User accounts - •
api_keys— API key management - •
scrape_projects— Project configs - •
scrape_jobs— Job execution - •
scraped_records— Extracted data - •
html_archives— Page snapshots - •
chat_threads— Conversations - •
chat_messages— Message history
Health Check
Parser Run exposes a health endpoint for monitoring:
curl https://your-instance.com/api/health
# Response: { "status": "ok", "database": "connected" }Scaling
For high-volume deployments:
- • Horizontal scaling — Run multiple instances behind a load balancer
- • Database — Use Neon's autoscaling or a dedicated PostgreSQL cluster
- • Background jobs — Scraping runs asynchronously, scale workers independently
- • HTML archives — Configure S3/R2 for storage instead of database